summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/fetch.mk26
-rw-r--r--package/uclibc/Makefile18
-rw-r--r--rules.mk1
-rw-r--r--target/config/Config.in.libc.choice50
-rw-r--r--target/config/Config.in.libc.default11
-rw-r--r--toolchain/uclibc-ng/Makefile.inc9
-rw-r--r--toolchain/uclibc/Makefile.inc9
-rw-r--r--toolchain/uclibc/patches/0.9.33.2/uclibc-0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch393
-rw-r--r--toolchain/uclibc/patches/uclibc-git-20140626.patch137757
9 files changed, 496 insertions, 137778 deletions
diff --git a/mk/fetch.mk b/mk/fetch.mk
index c28808476..6c3cec4a1 100644
--- a/mk/fetch.mk
+++ b/mk/fetch.mk
@@ -59,14 +59,24 @@ $(1):
filename=$$$${fullname##*/}; \
mkdir -p "$$$${fullname%%/$$$$filename}"; \
cd "$$$${fullname%%/$$$$filename}"; \
- for site in $${PKG_SITES} $${MASTER_SITE_BACKUP}; do \
- : echo "$${FETCH_CMD} $$$$site$$$$filename"; \
- rm -f "$$$$filename"; \
- if $${FETCH_CMD} $$$$site$$$$filename; then \
- : check the size here; \
- [[ ! -e $$$$filename ]] || exit 0; \
- fi; \
- done; \
+ if [ -z $${PKG_REPO} ];then \
+ for site in $${PKG_SITES} $${MASTER_SITE_BACKUP}; do \
+ : echo "$${FETCH_CMD} $$$$site$$$$filename"; \
+ rm -f "$$$$filename"; \
+ if $${FETCH_CMD} $$$$site$$$$filename; then \
+ : check the size here; \
+ [[ ! -e $$$$filename ]] || exit 0; \
+ fi; \
+ done; \
+ else \
+ rm -rf $${PKG_NAME}-$${PKG_VERSION}; \
+ git clone $${PKG_REPO} $${PKG_NAME}-$${PKG_VERSION}; \
+ rm -rf $${PKG_NAME}-$${PKG_VERSION}/.git; \
+ tar cJf $${PKG_NAME}-$${PKG_VERSION}.tar.xz $${PKG_NAME}-$${PKG_VERSION}; \
+ rm -rf $${PKG_NAME}-$${PKG_VERSION}; \
+ : check the size here; \
+ [[ ! -e $$$$filename ]] || exit 0; \
+ fi; \
exit 1
endef
diff --git a/package/uclibc/Makefile b/package/uclibc/Makefile
index e5a13ebb5..5aca96af6 100644
--- a/package/uclibc/Makefile
+++ b/package/uclibc/Makefile
@@ -21,9 +21,9 @@ NO_DISTFILES:= 1
include $(ADK_TOPDIR)/mk/package.mk
-$(eval $(call PKG_template,UCLIBC,uclibc,$(GIT_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-$(eval $(call PKG_template,UCLIBC_DEV,uclibc-dev,$(GIT_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_UCLIBC_DEV},${PKGSC_UCLIBC_DEV},${PKG_OPTS}))
-$(eval $(call PKG_template,UCLIBC_TEST,uclibc-test,$(GIT_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_UCLIBC_TEST},${PKGSC_UCLIBC_TEST},${PKG_OPTS}))
+$(eval $(call PKG_template,UCLIBC,uclibc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+$(eval $(call PKG_template,UCLIBC_DEV,uclibc-dev,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_UCLIBC_DEV},${PKGSC_UCLIBC_DEV},${PKG_OPTS}))
+$(eval $(call PKG_template,UCLIBC_TEST,uclibc-test,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_UCLIBC_TEST},${PKGSC_UCLIBC_TEST},${PKG_OPTS}))
CONFIG_STYLE:= manual
BUILD_STYLE:= manual
@@ -36,14 +36,14 @@ do-install:
cut -f 2 > $(IDIR_UCLIBC)/etc/TZ
ifneq ($(ADK_TARGET_USE_STATIC_LIBS),y)
$(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
- $(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-$(GIT_VERSION).so \
+ $(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-$(PKG_VERSION).so \
$(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
- $(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc-$(GIT_VERSION).so \
+ $(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc-$(PKG_VERSION).so \
$(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc.so.* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
-for file in libcrypt libdl libm libresolv libutil; do \
$(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH); \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(GIT_VERSION).so \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VERSION).so \
$(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH); \
done
endif
@@ -54,7 +54,7 @@ uclibc-dev-install:
${CP} ${STAGING_TARGET_DIR}/usr/lib/uclibc_nonshared.a ${IDIR_UCLIBC_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt*.o ${IDIR_UCLIBC_DEV}/usr/lib
for file in libcrypt libdl libm libresolv libutil; do \
- cd $(IDIR_UCLIBC_DEV)/$(ADK_TARGET_LIBC_PATH); ln -sf $$file-$(GIT_VERSION).so $$file.so; \
+ cd $(IDIR_UCLIBC_DEV)/$(ADK_TARGET_LIBC_PATH); ln -sf $$file-$(PKG_VERSION).so $$file.so; \
done
${KERNEL_MAKE_ENV} \
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)-$(KERNEL_RELEASE)/linux-$(KERNEL_VERSION) \
@@ -75,9 +75,9 @@ uclibc-test-install:
${INSTALL_DIR} ${IDIR_UCLIBC_TEST}/etc
echo '00:11:22:33:44:55 teeth' > ${IDIR_UCLIBC_TEST}/etc/ethers
${INSTALL_DIR} ${IDIR_UCLIBC_TEST}/opt/uclibc
- ${CP} $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(GIT_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${GIT_VERSION}/test \
+ ${CP} $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${PKG_VERSION}/test \
${IDIR_UCLIBC_TEST}/opt/uclibc
- ${CP} $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(GIT_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${GIT_VERSION}/{Rules.mak,.config} \
+ ${CP} $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${PKG_VERSION}/{Rules.mak,.config} \
${IDIR_UCLIBC_TEST}/opt/uclibc
@find ${IDIR_UCLIBC_TEST}/opt/uclibc -name \*.o -exec rm {} \;
diff --git a/rules.mk b/rules.mk
index a7902fa1b..41f93c700 100644
--- a/rules.mk
+++ b/rules.mk
@@ -52,6 +52,7 @@ ADK_VENDOR:= $(strip $(subst ",, $(ADK_VENDOR)))
ADK_DL_DIR:= $(strip $(subst ",, $(ADK_DL_DIR)))
ADK_COMPRESSION_TOOL:= $(strip $(subst ",, $(ADK_COMPRESSION_TOOL)))
ADK_KERNEL_VERSION:= $(strip $(subst ",, $(ADK_KERNEL_VERSION)))
+ADK_LIBC_VERSION:= $(strip $(subst ",, $(ADK_LIBC_VERSION)))
ADK_PARAMETER_NETCONSOLE_SRC_IP:= $(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_SRC_IP)))
ADK_PARAMETER_NETCONSOLE_DST_IP:= $(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_DST_IP)))
ADK_JFFS2_OPTS:= $(strip $(subst ",, $(ADK_JFFS2_OPTS)))
diff --git a/target/config/Config.in.libc.choice b/target/config/Config.in.libc.choice
index e95e48e96..732593ce3 100644
--- a/target/config/Config.in.libc.choice
+++ b/target/config/Config.in.libc.choice
@@ -59,3 +59,53 @@ config ADK_TARGET_LIB_UCLIBC
http://uclibc.org
endchoice
+
+choice
+prompt "Target C library version"
+depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH
+
+config ADK_TARGET_LIB_UCLIBC_NG_1_0_0
+ prompt "1.0.0beta5"
+ boolean
+ depends on ADK_TARGET_LIB_UCLIBC_NG
+
+config ADK_TARGET_LIB_UCLIBC_NG_GIT
+ prompt "git"
+ boolean
+ select ADK_DISABLE_CHECKSUM
+ depends on ADK_TARGET_LIB_UCLIBC_NG
+
+config ADK_TARGET_LIB_GLIBC_2_19
+ prompt "2.19"
+ boolean
+ depends on ADK_TARGET_LIB_GLIBC
+
+config ADK_TARGET_LIB_GLIBC_GIT
+ prompt "git"
+ boolean
+ select ADK_DISABLE_CHECKSUM
+ depends on ADK_TARGET_LIB_GLIBC
+
+config ADK_TARGET_LIB_UCLIBC_0_9_33_2
+ prompt "0.9.33.2"
+ boolean
+ depends on ADK_TARGET_LIB_UCLIBC
+
+config ADK_TARGET_LIB_UCLIBC_GIT
+ prompt "git"
+ boolean
+ select ADK_DISABLE_CHECKSUM
+ depends on ADK_TARGET_LIB_UCLIBC
+
+config ADK_TARGET_LIB_MUSL_1_0_3
+ prompt "1.0.3"
+ boolean
+ depends on ADK_TARGET_LIB_MUSL
+
+config ADK_TARGET_LIB_MUSL_GIT
+ prompt "git"
+ boolean
+ select ADK_DISABLE_CHECKSUM
+ depends on ADK_TARGET_LIB_MUSL
+
+endchoice
diff --git a/target/config/Config.in.libc.default b/target/config/Config.in.libc.default
index 6d094cf05..a7d07b937 100644
--- a/target/config/Config.in.libc.default
+++ b/target/config/Config.in.libc.default
@@ -20,6 +20,17 @@ config ADK_TARGET_LIBC
default "glibc" if ADK_glibc
default "musl" if ADK_musl
+config ADK_LIBC_VERSION
+ string
+ default "1.0.0beta5" if ADK_TARGET_LIB_UCLIBC_NG_1_0_0
+ default "1.0.3" if ADK_TARGET_LIB_MUSL_1_0_3
+ default "0.9.33.2" if ADK_TARGET_LIB_UCLIBC_0_9_33_2
+ default "2.19" if ADK_TARGET_LIB_GLIBC_2_19
+ default "git" if ADK_TARGET_LIB_UCLIBC_NG_GIT || \
+ ADK_TARGET_LIB_UCLIBC_GIT || \
+ ADK_TARGET_LIB_MUSL_GIT || \
+ ADK_TARGET_LIB_GLIBC_GIT
+
config ADK_TARGET_WITH_NPTL
boolean
default n if ADK_TARGET_LIB_UCLIBC_NG && ADK_LINUX_M68K
diff --git a/toolchain/uclibc-ng/Makefile.inc b/toolchain/uclibc-ng/Makefile.inc
index 99f6b68e3..bb8eaa477 100644
--- a/toolchain/uclibc-ng/Makefile.inc
+++ b/toolchain/uclibc-ng/Makefile.inc
@@ -2,8 +2,13 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= uClibc-ng
-PKG_VERSION:= 1.0.0beta5
+ifeq ($(ADK_LIBC_VERSION),git)
+PKG_VERSION:= git
+PKG_REPO:= http://git.uclibc-ng.org/uClibc-ng.git
+else
+PKG_VERSION:= $(ADK_LIBC_VERSION)
+PKG_SITES:= http://downloads.uclibc-ng.org/
+endif
PKG_RELEASE:= 1
PKG_MD5SUM:= 8b0e3a1ea3ada84a126a7bf6715e69d4
-PKG_SITES:= http://downloads.uclibc-ng.org/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.xz
diff --git a/toolchain/uclibc/Makefile.inc b/toolchain/uclibc/Makefile.inc
index eff931e2b..c58903290 100644
--- a/toolchain/uclibc/Makefile.inc
+++ b/toolchain/uclibc/Makefile.inc
@@ -2,8 +2,13 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= uClibc
-PKG_VERSION:= 0.9.33.2
-GIT_VERSION:= 0.9.34-git
+ifeq ($(ADK_LIBC_VERSION),git)
+PKG_VERSION:= 0.9.34-git
+PKG_REPO:= git://git.uclibc.org/uClibc.git
+else
+PKG_VERSION:= $(ADK_LIBC_VERSION)
+PKG_SITES:= http://downloads.uclibc-ng.org/
+endif
PKG_RELEASE:= 1
PKG_MD5SUM:= 73e6fe215648d02246f4d195b25fb17e
PKG_SITES:= http://uclibc.org/downloads/
diff --git a/toolchain/uclibc/patches/0.9.33.2/uclibc-0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch b/toolchain/uclibc/patches/0.9.33.2/uclibc-0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
new file mode 100644
index 000000000..0381ba801
--- /dev/null
+++ b/toolchain/uclibc/patches/0.9.33.2/uclibc-0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
@@ -0,0 +1,393 @@
+From 7fef6b983456e4c529a5239ea90715050e6f4452 Mon Sep 17 00:00:00 2001
+From: Chris Packham <chris.packham@alliedtelesis.co.nz>
+Date: Mon, 1 Oct 2012 18:12:54 +1300
+Subject: [PATCH 4/8] libc/sysdeps: add __kernel_long and __kernel_ulong
+
+Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various
+exported header files were updated to use these new types. Add the
+definitions for __kernel_long_t and __kernel_ulong_t to the relevant
+kernel_types.h headers.
+
+This change was automated with the following scriptlet
+
+ git grep --name-only 'typedef.*__kernel_old_dev_t' \
+ | xargs sed -i '/typedef.*__kernel_old_dev_t/ a\
+ typedef long\t\t__kernel_long_t;\
+ typedef unsigned long\t__kernel_ulong_t;'
+
+Whitespace in arm, avr32, hppa, sparc was then manually fixed up.
+
+Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
+--
+Here's a cleaned up patch which should get the whitespace right. I'm a
+bit iffy about the sparc changes they make sense to me but it's not a
+platform I have access to.
+
+I can break this up per arch or per maintainer if requested.
+
+ libc/sysdeps/linux/alpha/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/arm/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/avr32/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/bfin/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/c6x/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/cris/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/e1/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/h8300/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/hppa/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/i386/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/ia64/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/m68k/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/microblaze/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/mips/bits/kernel_types.h | 4 ++++
+ libc/sysdeps/linux/nios2/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/powerpc/bits/kernel_types.h | 4 ++++
+ libc/sysdeps/linux/sh/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/sh64/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/sparc/bits/kernel_types.h | 4 ++++
+ libc/sysdeps/linux/v850/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/x86_64/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/xtensa/bits/kernel_types.h | 2 ++
+ 22 files changed, 50 insertions(+)
+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ libc/sysdeps/linux/alpha/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/arm/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/avr32/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/bfin/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/c6x/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/cris/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/e1/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/h8300/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/hppa/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/i386/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/ia64/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/m68k/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/microblaze/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/mips/bits/kernel_types.h | 4 ++++
+ libc/sysdeps/linux/nios2/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/powerpc/bits/kernel_types.h | 4 ++++
+ libc/sysdeps/linux/sh/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/sh64/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/sparc/bits/kernel_types.h | 4 ++++
+ libc/sysdeps/linux/v850/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/x86_64/bits/kernel_types.h | 2 ++
+ libc/sysdeps/linux/xtensa/bits/kernel_types.h | 2 ++
+ 22 files changed, 50 insertions(+)
+
+diff --git a/libc/sysdeps/linux/alpha/bits/kernel_types.h b/libc/sysdeps/linux/alpha/bits/kernel_types.h
+index d5574c9..cd59b9d 100644
+--- a/libc/sysdeps/linux/alpha/bits/kernel_types.h
++++ b/libc/sysdeps/linux/alpha/bits/kernel_types.h
+@@ -33,6 +33,8 @@ typedef __kernel_gid_t __kernel_old_gid_t;
+ typedef __kernel_uid_t __kernel_uid32_t;
+ typedef __kernel_gid_t __kernel_gid32_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ int val[2];
+diff --git a/libc/sysdeps/linux/arm/bits/kernel_types.h b/libc/sysdeps/linux/arm/bits/kernel_types.h
+index 766a306..6b36f32 100644
+--- a/libc/sysdeps/linux/arm/bits/kernel_types.h
++++ b/libc/sysdeps/linux/arm/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef long long __kernel_loff_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ #ifdef __USE_ALL
+diff --git a/libc/sysdeps/linux/avr32/bits/kernel_types.h b/libc/sysdeps/linux/avr32/bits/kernel_types.h
+index f7d8b52..c551d57 100644
+--- a/libc/sysdeps/linux/avr32/bits/kernel_types.h
++++ b/libc/sysdeps/linux/avr32/bits/kernel_types.h
+@@ -39,6 +39,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef unsigned short __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ #ifdef __GNUC__
+ typedef long long __kernel_loff_t;
+diff --git a/libc/sysdeps/linux/bfin/bits/kernel_types.h b/libc/sysdeps/linux/bfin/bits/kernel_types.h
+index d69a875..9fec595 100644
+--- a/libc/sysdeps/linux/bfin/bits/kernel_types.h
++++ b/libc/sysdeps/linux/bfin/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef long long __kernel_loff_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ #ifdef __USE_ALL
+diff --git a/libc/sysdeps/linux/c6x/bits/kernel_types.h b/libc/sysdeps/linux/c6x/bits/kernel_types.h
+index 7557309..2c363a8 100644
+--- a/libc/sysdeps/linux/c6x/bits/kernel_types.h
++++ b/libc/sysdeps/linux/c6x/bits/kernel_types.h
+@@ -22,6 +22,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned int __kernel_old_uid_t;
+ typedef unsigned int __kernel_old_gid_t;
+ typedef unsigned int __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef unsigned int __kernel_size_t;
+ typedef int __kernel_ssize_t;
+ typedef int __kernel_ptrdiff_t;
+diff --git a/libc/sysdeps/linux/cris/bits/kernel_types.h b/libc/sysdeps/linux/cris/bits/kernel_types.h
+index f122c7f..5d31f7b 100644
+--- a/libc/sysdeps/linux/cris/bits/kernel_types.h
++++ b/libc/sysdeps/linux/cris/bits/kernel_types.h
+@@ -28,6 +28,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ #ifdef __GNUC__
+ typedef long long __kernel_loff_t;
+diff --git a/libc/sysdeps/linux/e1/bits/kernel_types.h b/libc/sysdeps/linux/e1/bits/kernel_types.h
+index 8017d85..f55a129 100644
+--- a/libc/sysdeps/linux/e1/bits/kernel_types.h
++++ b/libc/sysdeps/linux/e1/bits/kernel_types.h
+@@ -31,6 +31,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ /*
+diff --git a/libc/sysdeps/linux/h8300/bits/kernel_types.h b/libc/sysdeps/linux/h8300/bits/kernel_types.h
+index 0570675..4cfd1bf 100644
+--- a/libc/sysdeps/linux/h8300/bits/kernel_types.h
++++ b/libc/sysdeps/linux/h8300/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef long long __kernel_loff_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ #ifdef __USE_ALL
+diff --git a/libc/sysdeps/linux/hppa/bits/kernel_types.h b/libc/sysdeps/linux/hppa/bits/kernel_types.h
+index 4441f9b..6b2e794 100644
+--- a/libc/sysdeps/linux/hppa/bits/kernel_types.h
++++ b/libc/sysdeps/linux/hppa/bits/kernel_types.h
+@@ -45,6 +45,8 @@ typedef long long __kernel_off64_t;
+ typedef unsigned long long __kernel_ino64_t;
+
+ typedef unsigned int __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ #ifdef __USE_ALL
+diff --git a/libc/sysdeps/linux/i386/bits/kernel_types.h b/libc/sysdeps/linux/i386/bits/kernel_types.h
+index 9c07c72..59044b8 100644
+--- a/libc/sysdeps/linux/i386/bits/kernel_types.h
++++ b/libc/sysdeps/linux/i386/bits/kernel_types.h
+@@ -40,6 +40,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ typedef struct {
+diff --git a/libc/sysdeps/linux/ia64/bits/kernel_types.h b/libc/sysdeps/linux/ia64/bits/kernel_types.h
+index c8ef86d..e31dc65 100644
+--- a/libc/sysdeps/linux/ia64/bits/kernel_types.h
++++ b/libc/sysdeps/linux/ia64/bits/kernel_types.h
+@@ -52,5 +52,7 @@ typedef __kernel_gid_t __kernel_gid32_t;
+
+ typedef unsigned int __kernel_dev_t;
+ typedef unsigned int __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ #endif /* _ASM_IA64_POSIX_TYPES_H */
+diff --git a/libc/sysdeps/linux/m68k/bits/kernel_types.h b/libc/sysdeps/linux/m68k/bits/kernel_types.h
+index 0a77a8f..176b968 100644
+--- a/libc/sysdeps/linux/m68k/bits/kernel_types.h
++++ b/libc/sysdeps/linux/m68k/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef long long __kernel_loff_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ #ifdef __USE_ALL
+diff --git a/libc/sysdeps/linux/microblaze/bits/kernel_types.h b/libc/sysdeps/linux/microblaze/bits/kernel_types.h
+index 2a70575..a9f736b 100644
+--- a/libc/sysdeps/linux/microblaze/bits/kernel_types.h
++++ b/libc/sysdeps/linux/microblaze/bits/kernel_types.h
+@@ -44,6 +44,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned int __kernel_old_uid_t;
+ typedef unsigned int __kernel_old_gid_t;
+ typedef unsigned int __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ #ifdef __GNUC__
+ typedef long long __kernel_loff_t;
+diff --git a/libc/sysdeps/linux/mips/bits/kernel_types.h b/libc/sysdeps/linux/mips/bits/kernel_types.h
+index 9fc3b96..97faeac 100644
+--- a/libc/sysdeps/linux/mips/bits/kernel_types.h
++++ b/libc/sysdeps/linux/mips/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef int __kernel_gid32_t;
+ typedef __kernel_uid_t __kernel_old_uid_t;
+ typedef __kernel_gid_t __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+ #else
+ typedef unsigned int __kernel_dev_t;
+@@ -68,6 +70,8 @@ typedef int __kernel_gid32_t;
+ typedef __kernel_uid_t __kernel_old_uid_t;
+ typedef __kernel_gid_t __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+ #endif
+
+diff --git a/libc/sysdeps/linux/nios2/bits/kernel_types.h b/libc/sysdeps/linux/nios2/bits/kernel_types.h
+index 8b86d79..3c030e7 100644
+--- a/libc/sysdeps/linux/nios2/bits/kernel_types.h
++++ b/libc/sysdeps/linux/nios2/bits/kernel_types.h
+@@ -31,6 +31,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef unsigned short __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ typedef struct {
+diff --git a/libc/sysdeps/linux/powerpc/bits/kernel_types.h b/libc/sysdeps/linux/powerpc/bits/kernel_types.h
+index 3f3b933..1167de2 100644
+--- a/libc/sysdeps/linux/powerpc/bits/kernel_types.h
++++ b/libc/sysdeps/linux/powerpc/bits/kernel_types.h
+@@ -36,6 +36,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned int __kernel_old_uid_t;
+ typedef unsigned int __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ #else
+ typedef unsigned int __kernel_dev_t;
+ typedef unsigned int __kernel_ino_t;
+@@ -61,6 +63,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned int __kernel_old_uid_t;
+ typedef unsigned int __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+ #endif
+
+diff --git a/libc/sysdeps/linux/sh/bits/kernel_types.h b/libc/sysdeps/linux/sh/bits/kernel_types.h
+index f96e9fa..ac97261 100644
+--- a/libc/sysdeps/linux/sh/bits/kernel_types.h
++++ b/libc/sysdeps/linux/sh/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ typedef struct {
+diff --git a/libc/sysdeps/linux/sh64/bits/kernel_types.h b/libc/sysdeps/linux/sh64/bits/kernel_types.h
+index 671cc83..8cc6c61 100644
+--- a/libc/sysdeps/linux/sh64/bits/kernel_types.h
++++ b/libc/sysdeps/linux/sh64/bits/kernel_types.h
+@@ -43,6 +43,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ typedef struct {
+diff --git a/libc/sysdeps/linux/sparc/bits/kernel_types.h b/libc/sysdeps/linux/sparc/bits/kernel_types.h
+index 0cc4bc2..a10e075 100644
+--- a/libc/sysdeps/linux/sparc/bits/kernel_types.h
++++ b/libc/sysdeps/linux/sparc/bits/kernel_types.h
+@@ -32,6 +32,8 @@ typedef unsigned short __kernel_gid16_t;
+ typedef __kernel_uid_t __kernel_old_uid_t;
+ typedef __kernel_gid_t __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef __kernel_uid_t __kernel_uid32_t;
+ typedef __kernel_gid_t __kernel_gid32_t;
+ typedef int __kernel_suseconds_t;
+@@ -62,6 +64,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+ #endif
+
+diff --git a/libc/sysdeps/linux/v850/bits/kernel_types.h b/libc/sysdeps/linux/v850/bits/kernel_types.h
+index 3e851ab..780aa8a 100644
+--- a/libc/sysdeps/linux/v850/bits/kernel_types.h
++++ b/libc/sysdeps/linux/v850/bits/kernel_types.h
+@@ -41,6 +41,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+
+ typedef struct {
+ #ifdef __USE_ALL
+diff --git a/libc/sysdeps/linux/x86_64/bits/kernel_types.h b/libc/sysdeps/linux/x86_64/bits/kernel_types.h
+index de800d7..0cae08c 100644
+--- a/libc/sysdeps/linux/x86_64/bits/kernel_types.h
++++ b/libc/sysdeps/linux/x86_64/bits/kernel_types.h
+@@ -40,6 +40,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef __kernel_dev_t __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ typedef struct {
+diff --git a/libc/sysdeps/linux/xtensa/bits/kernel_types.h b/libc/sysdeps/linux/xtensa/bits/kernel_types.h
+index 44f1075..ed38f2e 100644
+--- a/libc/sysdeps/linux/xtensa/bits/kernel_types.h
++++ b/libc/sysdeps/linux/xtensa/bits/kernel_types.h
+@@ -33,6 +33,8 @@ typedef unsigned int __kernel_gid32_t;
+ typedef unsigned short __kernel_old_uid_t;
+ typedef unsigned short __kernel_old_gid_t;
+ typedef unsigned short __kernel_old_dev_t;
++typedef long __kernel_long_t;
++typedef unsigned long __kernel_ulong_t;
+ typedef long long __kernel_loff_t;
+
+ /* Beginning in 2.6 kernels, which is the first version that includes the
+--
+1.8.1.2
+
diff --git a/toolchain/uclibc/patches/uclibc-git-20140626.patch b/toolchain/uclibc/patches/uclibc-git-20140626.patch
deleted file mode 100644
index 3fd6c7e7e..000000000
--- a/toolchain/uclibc/patches/uclibc-git-20140626.patch
+++ /dev/null
@@ -1,137757 +0,0 @@
-diff -Nur uClibc-0.9.33.2/Changelog uClibc-git/Changelog
---- uClibc-0.9.33.2/Changelog 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/Changelog 1970-01-01 01:00:00.000000000 +0100
-@@ -1,804 +0,0 @@
--0.9.31 not yet released
--
-- Upgrade notices from previous versions.
-- o On x86_64 the format of /var/run/utmp changed compared to previous
-- versions. To retain compatibility with glibc we now define
-- __WORDSIZE_COMPAT32. If you are certain that you will never use
-- glibc nor run in i386 mode on your x86_64 installation, you can
-- remove this definition from wordsize.h.
-- Otherwise you have to delete /var/run/utmp on x86_64 hosts when
-- upgrading to 0.9.31
-- o The SHARED_LIB_LOADER_PREFIX was renamed to a single path
-- component called MULTILIB_DIR and defaults to 'lib'.
--
--0.9.27 12 January 2005
--
-- This has been a long time in the making... Release highlights:
-- o New stdio implementation
-- o New optimized string functions
-- o Major improvements to the shared lib loader
-- o Shared libraries work properly on powerpc
-- o Debugging works on mips
-- o New architectures: frv, nios, nios2, bfin
-- o Linux 2.6.x kernel support
-- o Lots and lots of bug fixes
--
-- This release is NOT binary compatible with uClibc 0.9.26 or any earlier
-- release, so be prepared to recompile your software if you are still using
-- an old version of uClibc.
--
-- -Erik
--
--
--
--0.9.26 3 January 2004
--
-- This simply adds a fix for a pthread bug that was noticed a few hours
-- after the previous release. Otherwise identical to 0.9.25.
--
-- This release remains binary compatible with uClibc 0.9.21-25 as long as
-- you take care to avoid any configuraton changes that will break things.
-- We _were_ planning to break binary compatibilty in this release, but
-- decided to hold those changes so we could push out a bugfix release.
--
-- We _will_ break binary compatibilty in the upcoming 0.9.27 release to
-- implement a few things we have been postponing. That should hopefully be
-- the last ABI change before we freeze the ABI for the upcoming 1.0.x
-- stable uClibc series.
--
--Release highlights:
-- o A trivial fix for a pthread bug
-- o Nothing else
--
-- -Erik
--
--
--
--0.9.25 3 January 2004
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release remains binary compatible with uClibc 0.9.21-24 as long as
-- you take care to avoid any configuraton changes that will break things.
-- We _were_ planning to break binary compatibilty in this release, but
-- decided to hold those changes so we could push out a bugfix release.
--
-- We _will_ break binary compatibilty in the upcoming 0.9.26 release to
-- implement a few things we have been postponing. That should hopefully be
-- the last ABI change before we freeze the ABI for the upcoming 1.0.x
-- stable uClibc series.
--
--Release highlights:
-- o Fixed a ton of problems found using the LTP and NIST test suites.
-- The few remaining test failures are obscure corner cases, such as
-- a few functions that fail (correctly) with incorrect errno values.
-- o Fixed a longstanding pthreads bug -- amoung other things, you no
-- longer need to explicitly add -lpthread for perl to work.
-- o Added some sh optimized string functions
-- o Added sh64 shared library support
-- o The default malloc implementation has been replaced, and will
-- now actually free memory when told to do so.
-- o Both popen() and exec*() now behave themselves per SuSv3
-- o Better 2.6.x kernel header support
-- o Added support for Position Independent Executables (PIE) on x86
-- o Lots of other minor cleanups
--
-- -Erik
--
--
--
--0.9.24 15 December 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release remains binary compatible with uClibc 0.9.21-23 as
-- long as you take care to avoid any configuraton changes that will
-- break things.
--
-- We currently plan to break binary compatibilty in the upcoming 0.9.25 to
-- implement a few things we have been postponing, which will hopefully be
-- the last change....
--
--Release highlights:
-- o Fixed several silly configuration problems
-- o Added arm optimized string functions
-- o Lots of minor cleanups
--
-- -Erik
--
--
--
--
--
--0.9.23 13 November 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release is binary compatible with uClibc 0.9.21 and 0.9.22 as
-- long as you take care to avoid any configuraton changes that will
-- break things. Enabling or disabling things like soft-float,
-- locale, wide wchar support, or changing cpu type are all good
-- examples of things that will break binary compatibility.
--
--Release highlights:
-- o Fixed several silly configuration problems that were
-- present in the 0.9.22 release.
-- o Fixed compilation problem with soft-float support on
-- several architectures.
-- o Lots of cleanup work on the powepc shared lib loader
-- thanks to Joakim Tjernlund.
-- o Updated the debian packaging for use in a standalone uClibc
-- system, rather than being a subordinate library under a
-- glibc based system.
--
-- -Erik
--
--
--
--
--
--0.9.22 8 November 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release is binary compatible with the 0.9.21 release
-- if you take care to avoid any configuraton changes that
-- might break things for you (i.e. enabling or disabling things
-- like soft-float, locale, wide wchar support, or changing cpu
-- type are all good examples of binary incompatible config options).
--
--Release highlights:
-- o Added e1, microblaze, and sh64 architectures.
-- o Much improved soft-float support
-- o Rewrote the passwd and group handing functions
-- and implemented all SuSv3 required reentrant
-- versions.
-- o Reworked and updated the Config system. You now
-- get to select your target architecture with the
-- config system.
-- o Fixed pthreads for mmuless m68k systems
-- o Added some x86 optimized string functions.
-- o Lots and lots of bugs fixed.
--
-- -Erik
--
--
--
--
--
--0.9.21 9 September 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release is not binary compatible with earlier releases.
-- Sorry about that. We have never promised to provide binary
-- compatibility until we hit version 1.0, and even then, if
-- you change your configuration.
--
--Release highlights:
-- o uClibc now has full ANSI/ISO C99 locale support (except
-- for wcsftime() and collating items in regex).
-- o Added support for using pre-generated locale data, making
-- it easy for mere mortals to use uClibc w/locale support.
-- o Lots of new tuning options added to trade size
-- for features, allowing for smaller static binaries.
-- o The "dlopen()'ing libraries that depend on libraries"
-- problem was fixed.
-- o A new scanf implementation. Well tested, but
-- brand new so watch for obscure bugs...
-- o Reworked and updated the Config system, adding several
-- nice new features which we now use.
-- o Lots and lots of sundry bug fixes and cleanups.
--
-- -Erik
--
--
--
--
--
--0.9.20 30 June 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release remains binary compatible with 0.9.18 and 0.9.19.
--
--
--Release highlights:
-- o Some ldd, profiling, and gcc wrapper updates
-- o Updated to support and compile with gcc 3.3
-- o Several needed mips updates
-- o Building under cygwin should now work...
-- o Prevent non-PIC code getting into PIC libs
-- o Added mmap64 support
-- o mmu-less systems now get a 16k default thread stack size
-- which is much more sane than the old 2 MB default...
-- o Implemented syscall() for powerpc
-- o Optionally struct tm extension support
-- o Lots of other sundry little fixes and cleanups.
-- o Prevent buffer overflows in the passwd and group functions.
--
-- -Erik
--
--
--
--
--
--0.9.19 3 March 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
-- This release remains binary compatible with 0.9.18 (except
-- for mips, but then mips was unusable in stock 0.9.18 anyways).
--
--
--Release highlights:
-- Stefan Allius
-- o Some Makefile and warning fixes
-- David Airlie
-- o Fixed gcc wrapper handling of ctor/dtor stuff when used in
-- with and w/o the nostdinc and nostdlib options
-- Erik Andersen
-- o Fixed a number of system call kernel type/user type translation
-- problems that scrambled a handful of system calls.
-- o Fixup powerpc syscalls to eliminate warnings with gcc-3.2
-- o Fixed several ioctl special cases for powerpc
-- o Checked in forgotten mips kernel_types.h changes
-- o Fixed mips shared library loader bug that caused segfaults
-- o Major update to the pthreads library. Should improve performance.
-- o Fixed uClibc's shared library loader so we can properly debug
-- applications using pthreads (must use gdb 5.3 or newer which
-- was compiled using uClibc).
-- o Made uClibc's ldd act just the glibc provided one (i.e. relying
-- on the shared lib loader to do the work) when it is possible to
-- doi so, and only rummage about the ELF headers when we have no
-- other choice (such as when using 'ldd' on cross compiled stuff).
-- Miles Bader
-- o header file updates for v850 architecture
-- o Fixed v850 crt0.S __uClibc_main argument stack space
-- Jeffrey Damick
-- o Fixed res_init() so it properly reloads /etc/resolv.conf
-- Vadim Lebedev
-- o Fixed ARM setjmp when floating point was disabled
-- David McCullough
-- o Removed debug (-g) when building crti.o and crtn.o, as
-- debug would mess up the build for SH4 and probably others.
-- o Fixed SH setjmp when floating point was enabled
--
--
-- -Erik
--
--
--
--
--
--0.9.18 12 February 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
--
-- Once again, this release is _NOT_ binary compatible with earlier
-- releases. I _think this will be the last time (with the possible
-- exception of some future changes to our locale support...)
--
--
--Release highlights:
-- Stefan Allius
-- o fixed a compile problem when large file support was disabled
-- o fixed dlib_pic.o to compile with proper flags
-- o fixed a shared lib loader compile warning
-- o Made adding libgcc functions to uClibc optional
-- Erik Andersen
-- o Fixed scandir64 to not free the wrong pieces of memory
-- which caused segfaults
-- o Fixed mismatches between kernel and libc dirent structures
-- o Fixed mismatches between the size of uClibc's struct dirent
-- and struct dirent64 so that when _FILE_OFFSET_BITS=64 we
-- do not lose part of the filename
-- o Fixed getdents64.c so the build will not break when compiling
-- vs a 2.0.x Linux kernel when UCLIBC_HAS_LFS is enabled
-- o Create stub crti.o and crtn.o files when UCLIBC_CTOR_DTOR is disabled
-- o Fixed licenses for a few files that erroneously were listed as GPL
-- but were really LGPL after discussing with authors
-- o sigaction for x86 had an extra and unwanted sigaction syscall
-- o Fixed debugging of arm binaries by adding a .note.ABI-tag section
-- Miles Bader
-- o header file updates for v850 architecture
-- o Fixed v850 clone syscall
-- Christian Krause
-- o Fixed pthread_cond_timedwait to properly uses rt singals
-- when available
-- Christophe Massiot
-- o Added mips _flush_cache syscall
-- David McCullough
-- o Added m68k brk syscall
-- Marshall M. Midden
-- o Fixed pipe implementation for mips
--
--
-- -Erik
--
--
--
--
--
--0.9.17 25 January 2003
--
--See Changelog.full for the complete list of who did what.
--
--Note:
--
-- I have always reserved the right to make binary incompatible changes as
-- needed prior to the "1.0" release. This release is a good example of
-- that. A few bugs turned up that needed to be fixed and the only good way
-- to fix them was to change some fundamental data structure sizes. So I did
-- just that. As a result, this release is _NOT_ binary compatible with
-- earlier releases -- you will need to recompile your applications.
--
--
--Release highlights:
-- Stefan Allius
-- o fixed a number of shared library loader bugs
-- o setjmp, longjmp, clone, and vfork cleanups for the SH architecture
-- o Don't build the config system with ncurses unless asked to
-- Tobias Anderberg
-- o cris architecture updates
-- Erik Andersen
-- o Changed 'struct stat' and 'struct stat64' so they use types that
-- are consistant with use elsewhere in the library. Without this,
-- subtle bugs would occur due to comparing signed and unsigned
-- types (for example, GNU tar wouldn't work)
-- o Fixed dlopen so it works with staticly linked apps
-- o Fixed sigaction on arm architecture so sa_restorer works properly
-- o Fixed sigaction on x86 architecture for (fixed debugging threads)
-- o Fixed a wide char related segfault in the regular expression code
-- o Powerpc pread and pwrite are now implemented correctly
-- o Powerpc syscall mechanism re-implemented
-- o Sparc architecture and syscall mechanism fixed up so things compile
-- o usershell reimplemented
-- o Fixed global destructors for staticly linked applications
-- o Added dynamic atexit support (needed for full C++ ctor/dtor support)
-- o The ldd utility now acts more like the GNU utility
-- o Added a stub libnsl library to make stupid configure scripts bahave
-- o Always build crt1.o as well as crt0.o to minimize the need to mess
-- with the compiler
-- o Rewrote powerpc crt0.S to properly handle ctors/dtors
-- o Removed unimplemented and legacy stuff from our header files to
-- make configure behave better
-- o Made the lib loader also support libs in /usr/X11R6/lib by default
-- o Config system updates
-- o networking function updates
-- o Large file support updates
-- o Lots of other little bug fixes and cleanups
-- Nick Fedchik
-- o Support ether_aton
-- Nathan Field
-- o Fixed pthread_mutex_lock and pthread_mutex_unlock so they
-- actually work as advertised on mips
-- o Fixed several nasty pthread bugs fixing debugging
-- Brett Hunt
-- o Fixed potential segfaults during 'make menuconfig'
-- Jay Kulpinski
-- o Fixed a subtle problem in the DNS resolver that prevented
-- uncompressed DNS lookup responses from working
-- David McCullough
-- o Fixed pclose error handling
-- David Meggy
-- o fixed the problem where arm binaries would crash on start
-- that Erik stupidly caused right before the last release.
-- Manuel Novoa III
-- o Major locale support update!
-- o Allow people to use pregenerated locale data instead of generating
-- approx 40Mb of glibc locales to get the 300+ locales currently
-- supported.
-- o locale dependent collation support
-- o Fixed locale support tools to work when cross-compiling
-- o Added the *wprintf functions
-- o Added the wcsto{inttype} functions
-- o Added iconv() and a mini iconv utility
-- o Added hsearch and hsearch_r
-- o Fixed a silly bug allowing wprintf %s to work correctly.
-- o Fixed fdopen when used with "a" (append).
-- o Fixed stdio file position handing to be sure fell() always
-- gives correct results
-- Luc Van Oostenryck
-- o Fixed a buffer overflow in getlogin_r
-- Yoshinori Sato
-- o Hitachi h8300 architecture update
-- Ronald Wahl
-- o Powerpc shared library relocation fixes
--
-- -Erik
--
--
--
--0.9.16 8 November 2002
--
--See Changelog.full for the complete list of who did what.
--
--Release highlights:
-- o CRIS architecture and shared library support from Tobias Anderberg
-- o New uClibc configuration system
-- o shared library global constructors and destructors initialization
-- ordering fixed by Stefan Allius
-- o More SuperH architecture fixes from Stefan Allius
-- o uClibc now compiles with newer versions of gcc (i.e. RedHat 8.0)
-- o uClibc no longer requires perl to compile
-- o mips dlopen was fixed by Steven J. Hill
-- o pty and tty handling fixes
-- o Manuel Novoa added support for a new /etc/TZ file for globally
-- setting the system timezone.
-- o Manuel also fixed up a number of remaining wide char issues.
-- o Lots of other little bug fixes and cleanups
--
-- -Erik
--
--
--
--0.9.15 27 August 2002
--
--This is a minor bugfix release.
--
--See Changelog.full for the complete list of who did what.
--Release highlights:
-- o Eliminated the HAS_LONG_LONG option. gcc always supports
-- long long, and the option never excluded all long long anyways.
-- o ctype.h no longer allows multiple argument evaluation in
-- compliance with ANSI/ISO C99
-- o Obscure printf fixes -- one involving %o and one involving %f.
-- o Bugfixes for locking and reentrance in password/group functions
-- o Directly use kernel types for most items, eliminating needless
-- translation and fixing several bugs.
-- o Directly use kernel struct stat -- no more translating
-- o More superH (sh) architecture merging from Stefan Allius
-- o Errno values and strerror are now correct on alpha, sparc, and mips
-- o Fixed an obscure bug with fclose when custom streams are enabled.
-- o Lots of other little bug fixes and cleanups
--
-- -Erik
--
--
--
--0.9.14 12 August 2002
--
--This is a minor bugfix release.
--
--See Changelog.full for the complete list of who did what.
--Release highlights:
-- o Fix a compile error when RPC and Pthread support
-- were both enabled.
-- o Eliminate duplicate define warnings in wstring.c.
-- o Fix potentially broken preprocessor comparisons.
-- o Erik was an idiot and broke thread locking in exit(),
-- atexit() and friends. Fix that.
-- o Fix the gcc wrapper to use crtbeginS.o and crtendS.o when
-- compiling PIC code (crtbegin.o and crtend.o) otherwise.
--
-- -Erik
--
--
--
--
--0.9.13 9 August 2002
--
--Security Fixes
-- o There was an off-by-one buffer overflow in the group
-- handling code, fix thanks to Joseph Chiu.
-- o There was an integer overflow bug in calloc, per
-- http://online.securityfocus.com/bid/5398
-- o There was an integer overflow bug in the xdr_array
-- RPC code, per http://online.securityfocus.com/bid/5356
--
--See Changelog.full for the complete list of who did what.
--Release highlights:
-- o Add full shared library support for Hitachi SuperH (sh)
-- thanks to Stefan Allius and Edie C. Dost
-- o Lots of reentrance cleanups (we should now be fully
-- reentrant when compiled with pthread support).
-- o Miles Bader implemented a new mmap based malloc which is much
-- smarter than the old "malloc-simple", and actually works, unlike
-- the old "malloc". This is now the default for mmu-less systems
-- and should greatly help reduce memory fragmentation and wastage.
-- o Reworked syscall handling for i386 and ARM, smaller and cleaner.
-- o Support for the syscall() function on i386 and ARM
-- o The uClibc g++ wrapper now automagically adds the proper include
-- search path and and libraries.
-- o Lots of shared library loader updates
-- o dlopen'd shred libraries not properly run destructors
-- when ctor/dtor support is enabled
-- o pread/pwrite/pread64/pwrite64 now all work as expected
-- o Lots and lots of other bug fixes and cleanups.
--
-- -Erik
--
--
--
--
--0.9.12 20 June 2002
--
--See Changelog.full for the complete list of who did what.
--Release highlights:
-- o Add full shared library support for mips (big and little
-- endian), thanks to a lot of hard work from Steven J. Hill
-- o i960 architecture support, thanks to Martin Proulx
-- o An initial alpha port (works, but needs some cleanup)
-- o Fixes shared library support for powerpc
-- o Fixes for mmu-less systems
-- o Much improved thread locking and reentrance.
-- o More gcc wrapper updates. XFree86 really does link
-- this time around. It still didn't last time.
-- o Libcrypt now passes conformance tests
-- o Nearly complete locale supporti thanks to a lot
-- of hard work by Manuel Novoa III. This stuff is
-- _way_ smaller than glibc's
-- o Completely new time handling functions also by Manuel
-- o Lots of other bug fixes and cleanups.
--
-- -Erik
--
--
--
--
--Erik Andersen:
--0.9.11 10 April 2002
--
--Release highlights:
-- o Lots of bug fixes
-- o Much better large file support
-- o Several gcc wrapper bug fixes, so things like iproute2 and
-- XFree86 should now link properly.
-- o Fixes a stdio thread locking bug that could cause random
-- deadlocks on s*printf calls when threading was enabled.
--
--Erik Andersen:
-- o Added a generic implementation of truncate64.c and ftruncate64.c
-- o Added missing creat64, glob64, mkstemp64, getrlimit64, setrlimit64
-- o Removed internal erroneous use of __USE_FILE_OFFSET64
-- o Made libpthread compile on sparc and powerpc
-- o Made libpthread soname and symlinks match the other libraries.
-- o Added finite() to the C89 math lib, since some math functions use it.
-- o Added missing function pointer to error.c (some apps wanted it)
-- o Fixed initfini build for arches where gcc tries to be sneaky
-- o Fixed m68k/bits/setjmp.h which I has broken in the last release.
-- o Fixed a buffer overflow in the dynamic library loader
-- o Fixed a stdio thread locking bug that could cause random
-- deadlocks on s*printf calls when threading was enabled.
-- o Implemented sqrtf(), needed for libstdc++ on arm
--Miles Bader:
-- o Make clean fixes to not blindly wipe all symlinks
-- o Re-enabled clnt_perror()
-- o Re-implemented swab()
--Dwayne Fontenot:
-- o Many updates to the uClibc Working Application List
--Steven J. Hill:
-- o Many updates to the mips dynamic loader. Not yet working but
-- getting very close now.
-- o Fixed locking bug in getttyent()
-- o Support libpthread on mips
--Richard June:
-- o Fixed several bugs in utmp code (pututline was only writing the
-- first sizeof-a-pointer bytes to the utmpfile).
-- o setutent() was only opening utmp readonly.
--m4@brecis.COM:
-- o Fixed a silly typing problem with the getuid syscall.
--Manuel Novoa III:
-- o Fixed stdio FILE read/write auto-transition bugs.
-- o Better stdio errno handling
-- o Changed setvbuf() to more closely match glibc's behavior
-- o Fixed getpass() to not echo passwords to the console
-- o Fixed locale ISblank flag.
-- o Fixed an arg promotion handling bug in _do_one_spec for %c reported
-- by Ilguiz Latypov.
--Kensuke Otake:
-- o Implemented swab()
--Yoshinori Sato:
-- o Fixed h8300 architecture support for pthreads and changes to
-- the include files
--David Schleef:
-- o Made powerpc assembly code PIC-compatible
-- o Removed powerpc R_PPC_REL24 handling, since it was deceptively useless.
--John Traill:
-- o Several types on powerpc, such as dev_t, are different than on other
-- architectures. John spotted this, which fixed a _ton_ of problems since
-- anything calling stat() was previously broken.
--Jim Treadway:
-- o Eliminated use of alarm() from the DNS resolver by converting
-- it to use select instead (much cleaner).
--
--
--
--
--
--
--
--
--0.9.10 21 March 2002
--
--Major new features:
-- o pthreads support (derived from glibc 2.1.3's linuxthreads library)
-- by Stefan Soucek and Erik Andersen
-- o pthreads support for MMU-less systems, by Stefan Soucek
-- o Complete rewrite of all stdio functions for standards compliance,
-- small size, pthreads support, wide/narrow stream support, large
-- file support, unbuffered support, etc, etc by Manuel Novoa III
-- o gcc wrapper reworked by Erik Andersen. Now operated correctly in
-- all known cases, and now wraps g++ as well for C++ support.
-- o constructor/destructor support, for C++ by Erik Andersen.
-- o Eliminated duplicate include/bits header files, by Erik Andersen.
-- Now all common include/bits headers are grouped together.
--
--
--Erik Andersen:
-- o Lots of changes and improvements to the shared library loader
-- o Cleaned up a piles of bugs
-- o Fixed a segfault when scandir was called on empty directories.
-- o Several syscalls added: pread/pwrite
-- o Makefile/build system cleanups
-- o Sighandling fixes
-- o pthreads support (with Stefan Soucek)
-- o Added ldexp to the C89 math library, per POSIX
-- o fclose() EINTR handling is now correct per IEEE Std 1003.1-2001
-- o Support isblank()
-- o Reworked libcrypt to avoid leaking private symbols into the namespace
-- o Added strtof(), strtold(), updwtmp(), strptime()
-- o Fix ldso build for older arm cross compilers
--Miles Bader:
-- o atexit cleanups
-- o fixed gcc wrapper handling of -M* options
-- o Fixed truncate64/ftruncate64 to restrict them to 64-bit systems,
-- since we can't be sure that the _syscall macros can cope with 64
-- bit args on 32 bit arches.
-- o Large File support on the v850
-- o Fixed v850 headers after Erik messed them up
-- o Eliminate include/features.h namespace pollution
--M. R. Brown:
-- o Fixed pthread support for SH, and fixed SH vfork as well
-- o Fixed SH headers after Erik messed them up
--Geoffrey Espin:
-- o Mips architecture cleanups. Now works perfectly
-- with busybox, vi, ash, etc...
-- o Merged in the random number support (rand, srand, etc) from glibc.
--Thomas Fritzsche:
-- o Fixes DNS resolver bug from 0.9.9
--Steven J. Hill:
-- o Fixed build to support both mips and mipsel
-- o Beginnings of a mips ldso port
--Andrew Ip:
-- o Support for gnu error() functions
--David McCullough:
-- o Coldfire platform updates: clone, setjmp
-- o Fixed simple malloc to work on systems with an MMU
--Manuel Novoa III:
-- o Rewrote all stdio functions for standards compliance, small size,
-- pthreads support, wide/narrow stream support, large file support,
-- unbuffered support, etc, etc, etc.
-- o Rewrote the various string to int functions to be smaller, more
-- standards compilant, and reduce dependance on libgcc.a.
--Yoshinori Sato:
-- o ptrace for the Hitachi h8300 fix
--David Schleef:
-- o Debian packaging updates
-- o Check for proper 16-byte aliged stack pointer on powerpc
--Stefan Soucek:
-- o pthreads support for MMU-less systems
-- o pthreads support (with Erik Andersen)
--Brian Stafford:
-- o Rewrote strcasecmp() per SUSv2.
--Bart Visscher:
-- o Added missing IPV6 support and reentrant networking function
-- additions so iptables now runs with IPV6 support.
--
--
--
--
--
--
--0.9.9 February 4, 2002
--
--Erik Andersen:
-- o A bunch of doc updates. Major update to the working
-- apps list.
-- o Added a configurator script (extra/Configs/uClibc_config_fix.pl)
-- which can simplify configuring uClibc.
-- o Fixed setjmp/longjmp on x86,arm,powerpc,mips,and sparc.
-- Hitting ^C in ash kills client apps now, not ash.
-- o Reworked signal handling code so it now passes POSIX
-- conformance tests.
-- o Fixed sleep and usleep to work correctly when
-- interrupted by signals.
-- o Made getopt behave the same when staticly linking
-- as when dynamicly linking. It was using different
-- implementations depending on how apps were linked.
-- o Added missing inttypes.h header file
-- o Eliminate all C++ style comments from header files
-- o Support statvfs and statfs
-- o Support getmntent_r
-- o Scandir and scandir64 were calling malloc without
-- checking for ENOMEM
-- o Fixed stpcpy function declaration
-- o Many large file support improvements.
-- o Fixed fcntl to work when DOLFS is enabled
-- o Fixed termios code to do the Right Thing(tm)
-- o Allow regex to be excluded at compile time
-- o Implemented mempcpy
-- o Build ldd and readelf for the target system and for the
-- host system
-- o Fix several cases where get-needed-libgcc-objects.sh
-- could fail, breaking the shared uClibc library.
-- o Include all shared library loader objects into a
-- single C file, thereby reducing its size further.
-- o Reworked the shared library linking process to be more
-- flexible so that gcc and ld can more easily be built to
-- target uClibc library.
-- o Better error checking in the Makefiles. Be more pedantic
-- about tar, chmod, etc to avoid system dependent failures.
-- o We can now autodetect the target architecture
-- o Hide references to wchar_t so GNU autoconf
-- configure scripts won't get confused and try to
-- enable wide char support.
-- o Fixed stdio.h so apps can use varargs.h if they want to.
-- o Added brk/sbrk support for ARM, powerpc, mips, and sparc
-- and set them to default to the much faster brk using malloc
-- o Added missing syscalls: get_kernel_syms, fcntl64,
-- fdatasync, sched_setparam, sched_getparam,
-- sched_setscheduler, sched_getscheduler,
-- sched_get_priority_max, sched_get_priority_min,
-- sched_rr_get_interval, sigaltstack, sendfile,
-- pivot_root, sigsuspend, setfsuid, and setfsgid
-- o Force DOPIC be true when HAVE_SHARED is true.
-- o Fixed hstrerror()
-- o Implemented gethostent(), sethostent(), and endhostent()
-- o Added arch specific support so that sparc and mips actually
-- compile and work
--Miles Bader:
-- o Fixes for the v850 architecture: crt0, setjmp,
-- arch autodetection, etc.
-- o Fixed `make install' to not build ldso stuff on
-- non-shared-library systems.
--Michael E Brown:
-- o Allow the gcc wrapper to support setting DEVEL_PREFIX
-- and BUILD_DIR at runtime (no more need to recompile).
--M. R. Brown and Erik Andersen:
-- o Fixed the SH port so it now works. Tested and shown
-- working on an SH4 Dreamcast system.
--Kim Heino:
-- o Made 'make clean' remove generated bits/syscall.h
--David McCullough:
-- o SH architecture updates. Added brk, sbrk,
-- o Fixed simple malloc to work on systems with an MMU
-- o Taught getutent to return NULL if utmp doesn't exist.
-- o Added insque/remque support
-- o Fixed DNS resolver version number so apps won't get
-- confused and use the wrong API.
-- o Added Config selectable shadow password support
--Yoshinori Sato
-- o Contributed support for the Hitach H8/300H architecture
--Cédric Schieli:
-- o Add support for inet_netof, inet_lnaof, inet_makeaddr
-- and hstrerror.
--David Schleef:
-- o Added libstrip, a nifty script to automagically
-- strip unneeded content from the uClibc shared
-- libraries.
--Martin Sieper
-- o Added getw() and putw()
-- o Added missing header files -- lastlog.h, sgtty.h,
-- netipx/ipx.h, sys/perm.h
--Stefan Soucek:
-- o Add rcmd support, i.e. rsh, rlogin, etc.
-- o Fix rcmd to avoid alloca, which is dangerous
-- on mmu-less systems
--spudmonkey@racsa.co.cr:
-- o Eliminate a buffer overflow in the shared library loader
--Brian Stafford:
-- o Enable support for Unix98 PTYs, and add option
-- to disable old style PTYs.
--
--
-diff -Nur uClibc-0.9.33.2/Changelog-2010 uClibc-git/Changelog-2010
---- uClibc-0.9.33.2/Changelog-2010 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/Changelog-2010 2014-07-25 20:36:04.409322131 +0200
-@@ -0,0 +1,804 @@
-+0.9.31 2 April 2010
-+
-+ Upgrade notices from previous versions.
-+ o On x86_64 the format of /var/run/utmp changed compared to previous
-+ versions. To retain compatibility with glibc we now define
-+ __WORDSIZE_COMPAT32. If you are certain that you will never use
-+ glibc nor run in i386 mode on your x86_64 installation, you can
-+ remove this definition from wordsize.h.
-+ Otherwise you have to delete /var/run/utmp on x86_64 hosts when
-+ upgrading to 0.9.31
-+ o The SHARED_LIB_LOADER_PREFIX was renamed to a single path
-+ component called MULTILIB_DIR and defaults to 'lib'.
-+
-+0.9.27 12 January 2005
-+
-+ This has been a long time in the making... Release highlights:
-+ o New stdio implementation
-+ o New optimized string functions
-+ o Major improvements to the shared lib loader
-+ o Shared libraries work properly on powerpc
-+ o Debugging works on mips
-+ o New architectures: frv, nios, nios2, bfin
-+ o Linux 2.6.x kernel support
-+ o Lots and lots of bug fixes
-+
-+ This release is NOT binary compatible with uClibc 0.9.26 or any earlier
-+ release, so be prepared to recompile your software if you are still using
-+ an old version of uClibc.
-+
-+ -Erik
-+
-+
-+
-+0.9.26 3 January 2004
-+
-+ This simply adds a fix for a pthread bug that was noticed a few hours
-+ after the previous release. Otherwise identical to 0.9.25.
-+
-+ This release remains binary compatible with uClibc 0.9.21-25 as long as
-+ you take care to avoid any configuraton changes that will break things.
-+ We _were_ planning to break binary compatibilty in this release, but
-+ decided to hold those changes so we could push out a bugfix release.
-+
-+ We _will_ break binary compatibilty in the upcoming 0.9.27 release to
-+ implement a few things we have been postponing. That should hopefully be
-+ the last ABI change before we freeze the ABI for the upcoming 1.0.x
-+ stable uClibc series.
-+
-+Release highlights:
-+ o A trivial fix for a pthread bug
-+ o Nothing else
-+
-+ -Erik
-+
-+
-+
-+0.9.25 3 January 2004
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release remains binary compatible with uClibc 0.9.21-24 as long as
-+ you take care to avoid any configuraton changes that will break things.
-+ We _were_ planning to break binary compatibilty in this release, but
-+ decided to hold those changes so we could push out a bugfix release.
-+
-+ We _will_ break binary compatibilty in the upcoming 0.9.26 release to
-+ implement a few things we have been postponing. That should hopefully be
-+ the last ABI change before we freeze the ABI for the upcoming 1.0.x
-+ stable uClibc series.
-+
-+Release highlights:
-+ o Fixed a ton of problems found using the LTP and NIST test suites.
-+ The few remaining test failures are obscure corner cases, such as
-+ a few functions that fail (correctly) with incorrect errno values.
-+ o Fixed a longstanding pthreads bug -- amoung other things, you no
-+ longer need to explicitly add -lpthread for perl to work.
-+ o Added some sh optimized string functions
-+ o Added sh64 shared library support
-+ o The default malloc implementation has been replaced, and will
-+ now actually free memory when told to do so.
-+ o Both popen() and exec*() now behave themselves per SuSv3
-+ o Better 2.6.x kernel header support
-+ o Added support for Position Independent Executables (PIE) on x86
-+ o Lots of other minor cleanups
-+
-+ -Erik
-+
-+
-+
-+0.9.24 15 December 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release remains binary compatible with uClibc 0.9.21-23 as
-+ long as you take care to avoid any configuraton changes that will
-+ break things.
-+
-+ We currently plan to break binary compatibilty in the upcoming 0.9.25 to
-+ implement a few things we have been postponing, which will hopefully be
-+ the last change....
-+
-+Release highlights:
-+ o Fixed several silly configuration problems
-+ o Added arm optimized string functions
-+ o Lots of minor cleanups
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.23 13 November 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release is binary compatible with uClibc 0.9.21 and 0.9.22 as
-+ long as you take care to avoid any configuraton changes that will
-+ break things. Enabling or disabling things like soft-float,
-+ locale, wide wchar support, or changing cpu type are all good
-+ examples of things that will break binary compatibility.
-+
-+Release highlights:
-+ o Fixed several silly configuration problems that were
-+ present in the 0.9.22 release.
-+ o Fixed compilation problem with soft-float support on
-+ several architectures.
-+ o Lots of cleanup work on the powepc shared lib loader
-+ thanks to Joakim Tjernlund.
-+ o Updated the debian packaging for use in a standalone uClibc
-+ system, rather than being a subordinate library under a
-+ glibc based system.
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.22 8 November 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release is binary compatible with the 0.9.21 release
-+ if you take care to avoid any configuraton changes that
-+ might break things for you (i.e. enabling or disabling things
-+ like soft-float, locale, wide wchar support, or changing cpu
-+ type are all good examples of binary incompatible config options).
-+
-+Release highlights:
-+ o Added e1, microblaze, and sh64 architectures.
-+ o Much improved soft-float support
-+ o Rewrote the passwd and group handing functions
-+ and implemented all SuSv3 required reentrant
-+ versions.
-+ o Reworked and updated the Config system. You now
-+ get to select your target architecture with the
-+ config system.
-+ o Fixed pthreads for mmuless m68k systems
-+ o Added some x86 optimized string functions.
-+ o Lots and lots of bugs fixed.
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.21 9 September 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release is not binary compatible with earlier releases.
-+ Sorry about that. We have never promised to provide binary
-+ compatibility until we hit version 1.0, and even then, if
-+ you change your configuration.
-+
-+Release highlights:
-+ o uClibc now has full ANSI/ISO C99 locale support (except
-+ for wcsftime() and collating items in regex).
-+ o Added support for using pre-generated locale data, making
-+ it easy for mere mortals to use uClibc w/locale support.
-+ o Lots of new tuning options added to trade size
-+ for features, allowing for smaller static binaries.
-+ o The "dlopen()'ing libraries that depend on libraries"
-+ problem was fixed.
-+ o A new scanf implementation. Well tested, but
-+ brand new so watch for obscure bugs...
-+ o Reworked and updated the Config system, adding several
-+ nice new features which we now use.
-+ o Lots and lots of sundry bug fixes and cleanups.
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.20 30 June 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release remains binary compatible with 0.9.18 and 0.9.19.
-+
-+
-+Release highlights:
-+ o Some ldd, profiling, and gcc wrapper updates
-+ o Updated to support and compile with gcc 3.3
-+ o Several needed mips updates
-+ o Building under cygwin should now work...
-+ o Prevent non-PIC code getting into PIC libs
-+ o Added mmap64 support
-+ o mmu-less systems now get a 16k default thread stack size
-+ which is much more sane than the old 2 MB default...
-+ o Implemented syscall() for powerpc
-+ o Optionally struct tm extension support
-+ o Lots of other sundry little fixes and cleanups.
-+ o Prevent buffer overflows in the passwd and group functions.
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.19 3 March 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+ This release remains binary compatible with 0.9.18 (except
-+ for mips, but then mips was unusable in stock 0.9.18 anyways).
-+
-+
-+Release highlights:
-+ Stefan Allius
-+ o Some Makefile and warning fixes
-+ David Airlie
-+ o Fixed gcc wrapper handling of ctor/dtor stuff when used in
-+ with and w/o the nostdinc and nostdlib options
-+ Erik Andersen
-+ o Fixed a number of system call kernel type/user type translation
-+ problems that scrambled a handful of system calls.
-+ o Fixup powerpc syscalls to eliminate warnings with gcc-3.2
-+ o Fixed several ioctl special cases for powerpc
-+ o Checked in forgotten mips kernel_types.h changes
-+ o Fixed mips shared library loader bug that caused segfaults
-+ o Major update to the pthreads library. Should improve performance.
-+ o Fixed uClibc's shared library loader so we can properly debug
-+ applications using pthreads (must use gdb 5.3 or newer which
-+ was compiled using uClibc).
-+ o Made uClibc's ldd act just the glibc provided one (i.e. relying
-+ on the shared lib loader to do the work) when it is possible to
-+ doi so, and only rummage about the ELF headers when we have no
-+ other choice (such as when using 'ldd' on cross compiled stuff).
-+ Miles Bader
-+ o header file updates for v850 architecture
-+ o Fixed v850 crt0.S __uClibc_main argument stack space
-+ Jeffrey Damick
-+ o Fixed res_init() so it properly reloads /etc/resolv.conf
-+ Vadim Lebedev
-+ o Fixed ARM setjmp when floating point was disabled
-+ David McCullough
-+ o Removed debug (-g) when building crti.o and crtn.o, as
-+ debug would mess up the build for SH4 and probably others.
-+ o Fixed SH setjmp when floating point was enabled
-+
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.18 12 February 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+
-+ Once again, this release is _NOT_ binary compatible with earlier
-+ releases. I _think this will be the last time (with the possible
-+ exception of some future changes to our locale support...)
-+
-+
-+Release highlights:
-+ Stefan Allius
-+ o fixed a compile problem when large file support was disabled
-+ o fixed dlib_pic.o to compile with proper flags
-+ o fixed a shared lib loader compile warning
-+ o Made adding libgcc functions to uClibc optional
-+ Erik Andersen
-+ o Fixed scandir64 to not free the wrong pieces of memory
-+ which caused segfaults
-+ o Fixed mismatches between kernel and libc dirent structures
-+ o Fixed mismatches between the size of uClibc's struct dirent
-+ and struct dirent64 so that when _FILE_OFFSET_BITS=64 we
-+ do not lose part of the filename
-+ o Fixed getdents64.c so the build will not break when compiling
-+ vs a 2.0.x Linux kernel when UCLIBC_HAS_LFS is enabled
-+ o Create stub crti.o and crtn.o files when UCLIBC_CTOR_DTOR is disabled
-+ o Fixed licenses for a few files that erroneously were listed as GPL
-+ but were really LGPL after discussing with authors
-+ o sigaction for x86 had an extra and unwanted sigaction syscall
-+ o Fixed debugging of arm binaries by adding a .note.ABI-tag section
-+ Miles Bader
-+ o header file updates for v850 architecture
-+ o Fixed v850 clone syscall
-+ Christian Krause
-+ o Fixed pthread_cond_timedwait to properly uses rt singals
-+ when available
-+ Christophe Massiot
-+ o Added mips _flush_cache syscall
-+ David McCullough
-+ o Added m68k brk syscall
-+ Marshall M. Midden
-+ o Fixed pipe implementation for mips
-+
-+
-+ -Erik
-+
-+
-+
-+
-+
-+0.9.17 25 January 2003
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Note:
-+
-+ I have always reserved the right to make binary incompatible changes as
-+ needed prior to the "1.0" release. This release is a good example of
-+ that. A few bugs turned up that needed to be fixed and the only good way
-+ to fix them was to change some fundamental data structure sizes. So I did
-+ just that. As a result, this release is _NOT_ binary compatible with
-+ earlier releases -- you will need to recompile your applications.
-+
-+
-+Release highlights:
-+ Stefan Allius
-+ o fixed a number of shared library loader bugs
-+ o setjmp, longjmp, clone, and vfork cleanups for the SH architecture
-+ o Don't build the config system with ncurses unless asked to
-+ Tobias Anderberg
-+ o cris architecture updates
-+ Erik Andersen
-+ o Changed 'struct stat' and 'struct stat64' so they use types that
-+ are consistant with use elsewhere in the library. Without this,
-+ subtle bugs would occur due to comparing signed and unsigned
-+ types (for example, GNU tar wouldn't work)
-+ o Fixed dlopen so it works with staticly linked apps
-+ o Fixed sigaction on arm architecture so sa_restorer works properly
-+ o Fixed sigaction on x86 architecture for (fixed debugging threads)
-+ o Fixed a wide char related segfault in the regular expression code
-+ o Powerpc pread and pwrite are now implemented correctly
-+ o Powerpc syscall mechanism re-implemented
-+ o Sparc architecture and syscall mechanism fixed up so things compile
-+ o usershell reimplemented
-+ o Fixed global destructors for staticly linked applications
-+ o Added dynamic atexit support (needed for full C++ ctor/dtor support)
-+ o The ldd utility now acts more like the GNU utility
-+ o Added a stub libnsl library to make stupid configure scripts bahave
-+ o Always build crt1.o as well as crt0.o to minimize the need to mess
-+ with the compiler
-+ o Rewrote powerpc crt0.S to properly handle ctors/dtors
-+ o Removed unimplemented and legacy stuff from our header files to
-+ make configure behave better
-+ o Made the lib loader also support libs in /usr/X11R6/lib by default
-+ o Config system updates
-+ o networking function updates
-+ o Large file support updates
-+ o Lots of other little bug fixes and cleanups
-+ Nick Fedchik
-+ o Support ether_aton
-+ Nathan Field
-+ o Fixed pthread_mutex_lock and pthread_mutex_unlock so they
-+ actually work as advertised on mips
-+ o Fixed several nasty pthread bugs fixing debugging
-+ Brett Hunt
-+ o Fixed potential segfaults during 'make menuconfig'
-+ Jay Kulpinski
-+ o Fixed a subtle problem in the DNS resolver that prevented
-+ uncompressed DNS lookup responses from working
-+ David McCullough
-+ o Fixed pclose error handling
-+ David Meggy
-+ o fixed the problem where arm binaries would crash on start
-+ that Erik stupidly caused right before the last release.
-+ Manuel Novoa III
-+ o Major locale support update!
-+ o Allow people to use pregenerated locale data instead of generating
-+ approx 40Mb of glibc locales to get the 300+ locales currently
-+ supported.
-+ o locale dependent collation support
-+ o Fixed locale support tools to work when cross-compiling
-+ o Added the *wprintf functions
-+ o Added the wcsto{inttype} functions
-+ o Added iconv() and a mini iconv utility
-+ o Added hsearch and hsearch_r
-+ o Fixed a silly bug allowing wprintf %s to work correctly.
-+ o Fixed fdopen when used with "a" (append).
-+ o Fixed stdio file position handing to be sure fell() always
-+ gives correct results
-+ Luc Van Oostenryck
-+ o Fixed a buffer overflow in getlogin_r
-+ Yoshinori Sato
-+ o Hitachi h8300 architecture update
-+ Ronald Wahl
-+ o Powerpc shared library relocation fixes
-+
-+ -Erik
-+
-+
-+
-+0.9.16 8 November 2002
-+
-+See Changelog.full for the complete list of who did what.
-+
-+Release highlights:
-+ o CRIS architecture and shared library support from Tobias Anderberg
-+ o New uClibc configuration system
-+ o shared library global constructors and destructors initialization
-+ ordering fixed by Stefan Allius
-+ o More SuperH architecture fixes from Stefan Allius
-+ o uClibc now compiles with newer versions of gcc (i.e. RedHat 8.0)
-+ o uClibc no longer requires perl to compile
-+ o mips dlopen was fixed by Steven J. Hill
-+ o pty and tty handling fixes
-+ o Manuel Novoa added support for a new /etc/TZ file for globally
-+ setting the system timezone.
-+ o Manuel also fixed up a number of remaining wide char issues.
-+ o Lots of other little bug fixes and cleanups
-+
-+ -Erik
-+
-+
-+
-+0.9.15 27 August 2002
-+
-+This is a minor bugfix release.
-+
-+See Changelog.full for the complete list of who did what.
-+Release highlights:
-+ o Eliminated the HAS_LONG_LONG option. gcc always supports
-+ long long, and the option never excluded all long long anyways.
-+ o ctype.h no longer allows multiple argument evaluation in
-+ compliance with ANSI/ISO C99
-+ o Obscure printf fixes -- one involving %o and one involving %f.
-+ o Bugfixes for locking and reentrance in password/group functions
-+ o Directly use kernel types for most items, eliminating needless
-+ translation and fixing several bugs.
-+ o Directly use kernel struct stat -- no more translating
-+ o More superH (sh) architecture merging from Stefan Allius
-+ o Errno values and strerror are now correct on alpha, sparc, and mips
-+ o Fixed an obscure bug with fclose when custom streams are enabled.
-+ o Lots of other little bug fixes and cleanups
-+
-+ -Erik
-+
-+
-+
-+0.9.14 12 August 2002
-+
-+This is a minor bugfix release.
-+
-+See Changelog.full for the complete list of who did what.
-+Release highlights:
-+ o Fix a compile error when RPC and Pthread support
-+ were both enabled.
-+ o Eliminate duplicate define warnings in wstring.c.
-+ o Fix potentially broken preprocessor comparisons.
-+ o Erik was an idiot and broke thread locking in exit(),
-+ atexit() and friends. Fix that.
-+ o Fix the gcc wrapper to use crtbeginS.o and crtendS.o when
-+ compiling PIC code (crtbegin.o and crtend.o) otherwise.
-+
-+ -Erik
-+
-+
-+
-+
-+0.9.13 9 August 2002
-+
-+Security Fixes
-+ o There was an off-by-one buffer overflow in the group
-+ handling code, fix thanks to Joseph Chiu.
-+ o There was an integer overflow bug in calloc, per
-+ http://online.securityfocus.com/bid/5398
-+ o There was an integer overflow bug in the xdr_array
-+ RPC code, per http://online.securityfocus.com/bid/5356
-+
-+See Changelog.full for the complete list of who did what.
-+Release highlights:
-+ o Add full shared library support for Hitachi SuperH (sh)
-+ thanks to Stefan Allius and Edie C. Dost
-+ o Lots of reentrance cleanups (we should now be fully
-+ reentrant when compiled with pthread support).
-+ o Miles Bader implemented a new mmap based malloc which is much
-+ smarter than the old "malloc-simple", and actually works, unlike
-+ the old "malloc". This is now the default for mmu-less systems
-+ and should greatly help reduce memory fragmentation and wastage.
-+ o Reworked syscall handling for i386 and ARM, smaller and cleaner.
-+ o Support for the syscall() function on i386 and ARM
-+ o The uClibc g++ wrapper now automagically adds the proper include
-+ search path and and libraries.
-+ o Lots of shared library loader updates
-+ o dlopen'd shred libraries not properly run destructors
-+ when ctor/dtor support is enabled
-+ o pread/pwrite/pread64/pwrite64 now all work as expected
-+ o Lots and lots of other bug fixes and cleanups.
-+
-+ -Erik
-+
-+
-+
-+
-+0.9.12 20 June 2002
-+
-+See Changelog.full for the complete list of who did what.
-+Release highlights:
-+ o Add full shared library support for mips (big and little
-+ endian), thanks to a lot of hard work from Steven J. Hill
-+ o i960 architecture support, thanks to Martin Proulx
-+ o An initial alpha port (works, but needs some cleanup)
-+ o Fixes shared library support for powerpc
-+ o Fixes for mmu-less systems
-+ o Much improved thread locking and reentrance.
-+ o More gcc wrapper updates. XFree86 really does link
-+ this time around. It still didn't last time.
-+ o Libcrypt now passes conformance tests
-+ o Nearly complete locale supporti thanks to a lot
-+ of hard work by Manuel Novoa III. This stuff is
-+ _way_ smaller than glibc's
-+ o Completely new time handling functions also by Manuel
-+ o Lots of other bug fixes and cleanups.
-+
-+ -Erik
-+
-+
-+
-+
-+Erik Andersen:
-+0.9.11 10 April 2002
-+
-+Release highlights:
-+ o Lots of bug fixes
-+ o Much better large file support
-+ o Several gcc wrapper bug fixes, so things like iproute2 and
-+ XFree86 should now link properly.
-+ o Fixes a stdio thread locking bug that could cause random
-+ deadlocks on s*printf calls when threading was enabled.
-+
-+Erik Andersen:
-+ o Added a generic implementation of truncate64.c and ftruncate64.c
-+ o Added missing creat64, glob64, mkstemp64, getrlimit64, setrlimit64
-+ o Removed internal erroneous use of __USE_FILE_OFFSET64
-+ o Made libpthread compile on sparc and powerpc
-+ o Made libpthread soname and symlinks match the other libraries.
-+ o Added finite() to the C89 math lib, since some math functions use it.
-+ o Added missing function pointer to error.c (some apps wanted it)
-+ o Fixed initfini build for arches where gcc tries to be sneaky
-+ o Fixed m68k/bits/setjmp.h which I has broken in the last release.
-+ o Fixed a buffer overflow in the dynamic library loader
-+ o Fixed a stdio thread locking bug that could cause random
-+ deadlocks on s*printf calls when threading was enabled.
-+ o Implemented sqrtf(), needed for libstdc++ on arm
-+Miles Bader:
-+ o Make clean fixes to not blindly wipe all symlinks
-+ o Re-enabled clnt_perror()
-+ o Re-implemented swab()
-+Dwayne Fontenot:
-+ o Many updates to the uClibc Working Application List
-+Steven J. Hill:
-+ o Many updates to the mips dynamic loader. Not yet working but
-+ getting very close now.
-+ o Fixed locking bug in getttyent()
-+ o Support libpthread on mips
-+Richard June:
-+ o Fixed several bugs in utmp code (pututline was only writing the
-+ first sizeof-a-pointer bytes to the utmpfile).
-+ o setutent() was only opening utmp readonly.
-+m4@brecis.COM:
-+ o Fixed a silly typing problem with the getuid syscall.
-+Manuel Novoa III:
-+ o Fixed stdio FILE read/write auto-transition bugs.
-+ o Better stdio errno handling
-+ o Changed setvbuf() to more closely match glibc's behavior
-+ o Fixed getpass() to not echo passwords to the console
-+ o Fixed locale ISblank flag.
-+ o Fixed an arg promotion handling bug in _do_one_spec for %c reported
-+ by Ilguiz Latypov.
-+Kensuke Otake:
-+ o Implemented swab()
-+Yoshinori Sato:
-+ o Fixed h8300 architecture support for pthreads and changes to
-+ the include files
-+David Schleef:
-+ o Made powerpc assembly code PIC-compatible
-+ o Removed powerpc R_PPC_REL24 handling, since it was deceptively useless.
-+John Traill:
-+ o Several types on powerpc, such as dev_t, are different than on other
-+ architectures. John spotted this, which fixed a _ton_ of problems since
-+ anything calling stat() was previously broken.
-+Jim Treadway:
-+ o Eliminated use of alarm() from the DNS resolver by converting
-+ it to use select instead (much cleaner).
-+
-+
-+
-+
-+
-+
-+
-+
-+0.9.10 21 March 2002
-+
-+Major new features:
-+ o pthreads support (derived from glibc 2.1.3's linuxthreads library)
-+ by Stefan Soucek and Erik Andersen
-+ o pthreads support for MMU-less systems, by Stefan Soucek
-+ o Complete rewrite of all stdio functions for standards compliance,
-+ small size, pthreads support, wide/narrow stream support, large
-+ file support, unbuffered support, etc, etc by Manuel Novoa III
-+ o gcc wrapper reworked by Erik Andersen. Now operated correctly in
-+ all known cases, and now wraps g++ as well for C++ support.
-+ o constructor/destructor support, for C++ by Erik Andersen.
-+ o Eliminated duplicate include/bits header files, by Erik Andersen.
-+ Now all common include/bits headers are grouped together.
-+
-+
-+Erik Andersen:
-+ o Lots of changes and improvements to the shared library loader
-+ o Cleaned up a piles of bugs
-+ o Fixed a segfault when scandir was called on empty directories.
-+ o Several syscalls added: pread/pwrite
-+ o Makefile/build system cleanups
-+ o Sighandling fixes
-+ o pthreads support (with Stefan Soucek)
-+ o Added ldexp to the C89 math library, per POSIX
-+ o fclose() EINTR handling is now correct per IEEE Std 1003.1-2001
-+ o Support isblank()
-+ o Reworked libcrypt to avoid leaking private symbols into the namespace
-+ o Added strtof(), strtold(), updwtmp(), strptime()
-+ o Fix ldso build for older arm cross compilers
-+Miles Bader:
-+ o atexit cleanups
-+ o fixed gcc wrapper handling of -M* options
-+ o Fixed truncate64/ftruncate64 to restrict them to 64-bit systems,
-+ since we can't be sure that the _syscall macros can cope with 64
-+ bit args on 32 bit arches.
-+ o Large File support on the v850
-+ o Fixed v850 headers after Erik messed them up
-+ o Eliminate include/features.h namespace pollution
-+M. R. Brown:
-+ o Fixed pthread support for SH, and fixed SH vfork as well
-+ o Fixed SH headers after Erik messed them up
-+Geoffrey Espin:
-+ o Mips architecture cleanups. Now works perfectly
-+ with busybox, vi, ash, etc...
-+ o Merged in the random number support (rand, srand, etc) from glibc.
-+Thomas Fritzsche:
-+ o Fixes DNS resolver bug from 0.9.9
-+Steven J. Hill:
-+ o Fixed build to support both mips and mipsel
-+ o Beginnings of a mips ldso port
-+Andrew Ip:
-+ o Support for gnu error() functions
-+David McCullough:
-+ o Coldfire platform updates: clone, setjmp
-+ o Fixed simple malloc to work on systems with an MMU
-+Manuel Novoa III:
-+ o Rewrote all stdio functions for standards compliance, small size,
-+ pthreads support, wide/narrow stream support, large file support,
-+ unbuffered support, etc, etc, etc.
-+ o Rewrote the various string to int functions to be smaller, more
-+ standards compilant, and reduce dependance on libgcc.a.
-+Yoshinori Sato:
-+ o ptrace for the Hitachi h8300 fix
-+David Schleef:
-+ o Debian packaging updates
-+ o Check for proper 16-byte aliged stack pointer on powerpc
-+Stefan Soucek:
-+ o pthreads support for MMU-less systems
-+ o pthreads support (with Erik Andersen)
-+Brian Stafford:
-+ o Rewrote strcasecmp() per SUSv2.
-+Bart Visscher:
-+ o Added missing IPV6 support and reentrant networking function
-+ additions so iptables now runs with IPV6 support.
-+
-+
-+
-+
-+
-+
-+0.9.9 February 4, 2002
-+
-+Erik Andersen:
-+ o A bunch of doc updates. Major update to the working
-+ apps list.
-+ o Added a configurator script (extra/Configs/uClibc_config_fix.pl)
-+ which can simplify configuring uClibc.
-+ o Fixed setjmp/longjmp on x86,arm,powerpc,mips,and sparc.
-+ Hitting ^C in ash kills client apps now, not ash.
-+ o Reworked signal handling code so it now passes POSIX
-+ conformance tests.
-+ o Fixed sleep and usleep to work correctly when
-+ interrupted by signals.
-+ o Made getopt behave the same when staticly linking
-+ as when dynamicly linking. It was using different
-+ implementations depending on how apps were linked.
-+ o Added missing inttypes.h header file
-+ o Eliminate all C++ style comments from header files
-+ o Support statvfs and statfs
-+ o Support getmntent_r
-+ o Scandir and scandir64 were calling malloc without
-+ checking for ENOMEM
-+ o Fixed stpcpy function declaration
-+ o Many large file support improvements.
-+ o Fixed fcntl to work when DOLFS is enabled
-+ o Fixed termios code to do the Right Thing(tm)
-+ o Allow regex to be excluded at compile time
-+ o Implemented mempcpy
-+ o Build ldd and readelf for the target system and for the
-+ host system
-+ o Fix several cases where get-needed-libgcc-objects.sh
-+ could fail, breaking the shared uClibc library.
-+ o Include all shared library loader objects into a
-+ single C file, thereby reducing its size further.
-+ o Reworked the shared library linking process to be more
-+ flexible so that gcc and ld can more easily be built to
-+ target uClibc library.
-+ o Better error checking in the Makefiles. Be more pedantic
-+ about tar, chmod, etc to avoid system dependent failures.
-+ o We can now autodetect the target architecture
-+ o Hide references to wchar_t so GNU autoconf
-+ configure scripts won't get confused and try to
-+ enable wide char support.
-+ o Fixed stdio.h so apps can use varargs.h if they want to.
-+ o Added brk/sbrk support for ARM, powerpc, mips, and sparc
-+ and set them to default to the much faster brk using malloc
-+ o Added missing syscalls: get_kernel_syms, fcntl64,
-+ fdatasync, sched_setparam, sched_getparam,
-+ sched_setscheduler, sched_getscheduler,
-+ sched_get_priority_max, sched_get_priority_min,
-+ sched_rr_get_interval, sigaltstack, sendfile,
-+ pivot_root, sigsuspend, setfsuid, and setfsgid
-+ o Force DOPIC be true when HAVE_SHARED is true.
-+ o Fixed hstrerror()
-+ o Implemented gethostent(), sethostent(), and endhostent()
-+ o Added arch specific support so that sparc and mips actually
-+ compile and work
-+Miles Bader:
-+ o Fixes for the v850 architecture: crt0, setjmp,
-+ arch autodetection, etc.
-+ o Fixed `make install' to not build ldso stuff on
-+ non-shared-library systems.
-+Michael E Brown:
-+ o Allow the gcc wrapper to support setting DEVEL_PREFIX
-+ and BUILD_DIR at runtime (no more need to recompile).
-+M. R. Brown and Erik Andersen:
-+ o Fixed the SH port so it now works. Tested and shown
-+ working on an SH4 Dreamcast system.
-+Kim Heino:
-+ o Made 'make clean' remove generated bits/syscall.h
-+David McCullough:
-+ o SH architecture updates. Added brk, sbrk,
-+ o Fixed simple malloc to work on systems with an MMU
-+ o Taught getutent to return NULL if utmp doesn't exist.
-+ o Added insque/remque support
-+ o Fixed DNS resolver version number so apps won't get
-+ confused and use the wrong API.
-+ o Added Config selectable shadow password support
-+Yoshinori Sato
-+ o Contributed support for the Hitach H8/300H architecture
-+Cédric Schieli:
-+ o Add support for inet_netof, inet_lnaof, inet_makeaddr
-+ and hstrerror.
-+David Schleef:
-+ o Added libstrip, a nifty script to automagically
-+ strip unneeded content from the uClibc shared
-+ libraries.
-+Martin Sieper
-+ o Added getw() and putw()
-+ o Added missing header files -- lastlog.h, sgtty.h,
-+ netipx/ipx.h, sys/perm.h
-+Stefan Soucek:
-+ o Add rcmd support, i.e. rsh, rlogin, etc.
-+ o Fix rcmd to avoid alloca, which is dangerous
-+ on mmu-less systems
-+spudmonkey@racsa.co.cr:
-+ o Eliminate a buffer overflow in the shared library loader
-+Brian Stafford:
-+ o Enable support for Unix98 PTYs, and add option
-+ to disable old style PTYs.
-+
-+
-diff -Nur uClibc-0.9.33.2/docs/man/arc4random.3 uClibc-git/docs/man/arc4random.3
---- uClibc-0.9.33.2/docs/man/arc4random.3 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/docs/man/arc4random.3 2014-07-25 20:36:04.433322256 +0200
-@@ -0,0 +1,110 @@
-+.\" $OpenBSD: arc4random.3,v 1.19 2005/07/17 08:50:55 jaredy Exp $
-+.\"
-+.\" Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
-+.\" 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.
-+.\" 3. All advertising materials mentioning features or use of this software
-+.\" must display the following acknowledgement:
-+.\" This product includes software developed by Niels Provos.
-+.\" 4. The name of the author may not be used to endorse or promote products
-+.\" derived from this software without specific prior written permission.
-+.\"
-+.\" 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.
-+.\"
-+.\" Manual page, using -mandoc macros
-+.\"
-+.Dd April 15, 1997
-+.Dt ARC4RANDOM 3
-+.Os
-+.Sh NAME
-+.Nm arc4random ,
-+.Nm arc4random_stir ,
-+.Nm arc4random_addrandom
-+.Nd arc4 random number generator
-+.Sh SYNOPSIS
-+.Fd #include <stdlib.h>
-+.Ft uint32_t
-+.Fn arc4random "void"
-+.Ft void
-+.Fn arc4random_stir "void"
-+.Ft void
-+.Fn arc4random_addrandom "u_char *dat" "int datlen"
-+.Sh DESCRIPTION
-+The
-+.Fn arc4random
-+function provides a high quality 32-bit pseudo-random
-+number very quickly.
-+.Fn arc4random
-+seeds itself on a regular basis from the kernel strong random number
-+subsystem described in
-+.Xr random 4 .
-+On each call, an ARC4 generator is used to generate a new result.
-+The
-+.Fn arc4random
-+function uses the ARC4 cipher key stream generator,
-+which uses 8*8 8-bit S-Boxes.
-+The S-Boxes can be in about (2**1700) states.
-+.Pp
-+.Fn arc4random
-+fits into a middle ground not covered by other subsystems such as
-+the strong, slow, and resource expensive random
-+devices described in
-+.Xr random 4
-+versus the fast but poor quality interfaces described in
-+.Xr rand 3 ,
-+.Xr random 3 ,
-+and
-+.Xr drand48 3 .
-+.Pp
-+The
-+.Fn arc4random_stir
-+function reads data from a pseudo-random device, usually
-+.Pa /dev/urandom,
-+and uses it to permute the S-Boxes via
-+.Fn arc4random_addrandom .
-+.Pp
-+There is no need to call
-+.Fn arc4random_stir
-+before using
-+.Fn arc4random ,
-+since
-+.Fn arc4random
-+automatically initializes itself.
-+.Sh SEE ALSO
-+.Xr rand 3 ,
-+.Xr rand48 3 ,
-+.Xr random 3
-+.Sh HISTORY
-+An algorithm called
-+.Pa RC4
-+was designed by RSA Data Security, Inc.
-+It was considered a trade secret.
-+Because it was a trade secret, it obviously could not be patented.
-+A clone of this was posted anonymously to USENET and confirmed to
-+be equivalent by several sources who had access to the original cipher.
-+Because of the trade secret situation, RSA Data Security, Inc. can do
-+nothing about the release of the ARC4 algorithm.
-+Since
-+.Pa RC4
-+used to be a trade secret, the cipher is now referred to as
-+.Pa ARC4 .
-+.Pp
-+These functions first appeared in
-+.Ox 2.1 .
-diff -Nur uClibc-0.9.33.2/docs/PORTING uClibc-git/docs/PORTING
---- uClibc-0.9.33.2/docs/PORTING 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/docs/PORTING 2014-07-25 20:36:04.421322194 +0200
-@@ -130,9 +130,6 @@
- ====================
- === Misc Cruft ===
- ====================
--- utils/readelf.c - not really needed generally speaking, but might as well
-- add your arch to the giant EM_* list (describe_elf_hdr)
--
- - MAINTAINERS - presumably you're going to submit this code back to mainline
- and since you're the only one who cares about this arch (right now), you
- should add yourself to the toplevel MAINTAINERS file. do it.
-diff -Nur uClibc-0.9.33.2/extra/config/check.sh uClibc-git/extra/config/check.sh
---- uClibc-0.9.33.2/extra/config/check.sh 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/check.sh 2014-07-25 20:36:04.853324457 +0200
-@@ -1,6 +1,6 @@
- #!/bin/sh
- # Needed for systems without gettext
--$* -xc -o /dev/null - > /dev/null 2>&1 << EOF
-+$* -x c -o /dev/null - > /dev/null 2>&1 << EOF
- #include <libintl.h>
- int main()
- {
-diff -Nur uClibc-0.9.33.2/extra/config/conf.c uClibc-git/extra/config/conf.c
---- uClibc-0.9.33.2/extra/config/conf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/conf.c 2014-07-25 20:36:04.853324457 +0200
-@@ -10,42 +10,48 @@
- #include <string.h>
- #include <time.h>
- #include <unistd.h>
-+#include <getopt.h>
- #include <sys/stat.h>
- #include <sys/time.h>
-+#include <errno.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
- static void conf(struct menu *menu);
- static void check_conf(struct menu *menu);
-+static void xfgets(char *str, int size, FILE *in);
-
--enum {
-- ask_all,
-- ask_new,
-- ask_silent,
-- set_default,
-- set_yes,
-- set_mod,
-- set_no,
-- set_random
--} input_mode = ask_all;
--char *defconfig_file;
-+enum input_mode {
-+ oldaskconfig,
-+ silentoldconfig,
-+ oldconfig,
-+ allnoconfig,
-+ allyesconfig,
-+ allmodconfig,
-+ alldefconfig,
-+ randconfig,
-+ defconfig,
-+ savedefconfig,
-+ listnewconfig,
-+ olddefconfig,
-+} input_mode = oldaskconfig;
-
- static int indent = 1;
-+static int tty_stdio;
- static int valid_stdin = 1;
- static int sync_kconfig;
- static int conf_cnt;
- static char line[128];
- static struct menu *rootEntry;
-
--static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n");
--
--static const char *get_help(struct menu *menu)
-+static void print_help(struct menu *menu)
- {
-- if (menu_has_help(menu))
-- return _(menu_get_help(menu));
-- else
-- return nohelp_text;
-+ struct gstr help = str_new();
-+
-+ menu_get_ext_help(menu, &help);
-+
-+ printf("\n%s\n", str_get(&help));
-+ str_free(&help);
- }
-
- static void strip(char *str)
-@@ -93,16 +99,19 @@
- }
-
- switch (input_mode) {
-- case ask_new:
-- case ask_silent:
-+ case oldconfig:
-+ case silentoldconfig:
- if (sym_has_value(sym)) {
- printf("%s\n", def);
- return 0;
- }
- check_stdin();
-- case ask_all:
-+ /* fall through */
-+ case oldaskconfig:
- fflush(stdout);
-- fgets(line, 128, stdin);
-+ xfgets(line, 128, stdin);
-+ if (!tty_stdio)
-+ printf("\n");
- return 1;
- default:
- break;
-@@ -121,7 +130,7 @@
- return 1;
- }
-
--int conf_string(struct menu *menu)
-+static int conf_string(struct menu *menu)
- {
- struct symbol *sym = menu->sym;
- const char *def;
-@@ -140,10 +149,11 @@
- case '?':
- /* print help */
- if (line[1] == '\n') {
-- printf("\n%s\n", get_help(menu));
-+ print_help(menu);
- def = NULL;
- break;
- }
-+ /* fall through */
- default:
- line[strlen(line)-1] = 0;
- def = line;
-@@ -156,14 +166,12 @@
- static int conf_sym(struct menu *menu)
- {
- struct symbol *sym = menu->sym;
-- int type;
- tristate oldval, newval;
-
- while (1) {
- printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
- if (sym->name)
- printf("(%s) ", sym->name);
-- type = sym_get_type(sym);
- putchar('[');
- oldval = sym_get_tristate_value(sym);
- switch (oldval) {
-@@ -220,7 +228,7 @@
- if (sym_set_tristate_value(sym, newval))
- return 0;
- help:
-- printf("\n%s\n", get_help(menu));
-+ print_help(menu);
- }
- }
-
-@@ -228,11 +236,9 @@
- {
- struct symbol *sym, *def_sym;
- struct menu *child;
-- int type;
- bool is_new;
-
- sym = menu->sym;
-- type = sym_get_type(sym);
- is_new = !sym_has_value(sym);
- if (sym_is_changable(sym)) {
- conf_sym(menu);
-@@ -294,20 +300,21 @@
- printf("?");
- printf("]: ");
- switch (input_mode) {
-- case ask_new:
-- case ask_silent:
-+ case oldconfig:
-+ case silentoldconfig:
- if (!is_new) {
- cnt = def;
- printf("%d\n", cnt);
- break;
- }
- check_stdin();
-- case ask_all:
-+ /* fall through */
-+ case oldaskconfig:
- fflush(stdout);
-- fgets(line, 128, stdin);
-+ xfgets(line, 128, stdin);
- strip(line);
- if (line[0] == '?') {
-- printf("\n%s\n", get_help(menu));
-+ print_help(menu);
- continue;
- }
- if (!line[0])
-@@ -330,8 +337,8 @@
- }
- if (!child)
- continue;
-- if (line[strlen(line) - 1] == '?') {
-- printf("\n%s\n", get_help(child));
-+ if (line[0] && line[strlen(line) - 1] == '?') {
-+ print_help(child);
- continue;
- }
- sym_set_choice_value(sym, child->sym);
-@@ -360,10 +367,14 @@
-
- switch (prop->type) {
- case P_MENU:
-- if (input_mode == ask_silent && rootEntry != menu) {
-+ if ((input_mode == silentoldconfig ||
-+ input_mode == listnewconfig ||
-+ input_mode == olddefconfig) &&
-+ rootEntry != menu) {
- check_conf(menu);
- return;
- }
-+ /* fall through */
- case P_COMMENT:
- prompt = menu_get_prompt(menu);
- if (prompt)
-@@ -418,10 +429,16 @@
- if (sym && !sym_has_value(sym)) {
- if (sym_is_changable(sym) ||
- (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
-- if (!conf_cnt++)
-- printf(_("*\n* Restart config...\n*\n"));
-- rootEntry = menu_get_parent_menu(menu);
-- conf(rootEntry);
-+ if (input_mode == listnewconfig) {
-+ if (sym->name && !sym_is_choice_value(sym)) {
-+ printf("%s%s\n", CONFIG_, sym->name);
-+ }
-+ } else if (input_mode != olddefconfig) {
-+ if (!conf_cnt++)
-+ printf(_("*\n* Restart config...\n*\n"));
-+ rootEntry = menu_get_parent_menu(menu);
-+ conf(rootEntry);
-+ }
- }
- }
-
-@@ -429,90 +446,170 @@
- check_conf(child);
- }
-
-+#if 00 // || !defined __UCLIBC__ || \
-+ (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT)
-+static struct option long_opts[] = {
-+ {"oldaskconfig", no_argument, NULL, oldaskconfig},
-+ {"oldconfig", no_argument, NULL, oldconfig},
-+ {"silentoldconfig", no_argument, NULL, silentoldconfig},
-+ {"defconfig", optional_argument, NULL, defconfig},
-+ {"savedefconfig", required_argument, NULL, savedefconfig},
-+ {"allnoconfig", no_argument, NULL, allnoconfig},
-+ {"allyesconfig", no_argument, NULL, allyesconfig},
-+ {"allmodconfig", no_argument, NULL, allmodconfig},
-+ {"alldefconfig", no_argument, NULL, alldefconfig},
-+ {"randconfig", no_argument, NULL, randconfig},
-+ {"listnewconfig", no_argument, NULL, listnewconfig},
-+ {"olddefconfig", no_argument, NULL, olddefconfig},
-+ /*
-+ * oldnoconfig is an alias of olddefconfig, because people already
-+ * are dependent on its behavior(sets new symbols to their default
-+ * value but not 'n') with the counter-intuitive name.
-+ */
-+ {"oldnoconfig", no_argument, NULL, olddefconfig},
-+ {NULL, 0, NULL, 0}
-+};
-+
-+static void conf_usage(const char *progname)
-+{
-+
-+ printf("Usage: %s [option] <kconfig-file>\n", progname);
-+ printf("[option] is _one_ of the following:\n");
-+ printf(" --listnewconfig List new options\n");
-+ printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
-+ printf(" --oldconfig Update a configuration using a provided .config as base\n");
-+ printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
-+ printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
-+ printf(" --oldnoconfig An alias of olddefconfig\n");
-+ printf(" --defconfig <file> New config with default defined in <file>\n");
-+ printf(" --savedefconfig <file> Save the minimal current configuration to <file>\n");
-+ printf(" --allnoconfig New config where all options are answered with no\n");
-+ printf(" --allyesconfig New config where all options are answered with yes\n");
-+ printf(" --allmodconfig New config where all options are answered with mod\n");
-+ printf(" --alldefconfig New config with all symbols set to default\n");
-+ printf(" --randconfig New config with random answer to all options\n");
-+}
-+#else
-+static void conf_usage(const char *progname)
-+{
-+
-+ printf("Usage: %s [option] <kconfig-file>\n", progname);
-+ printf("[option] is _one_ of the following:\n");
-+ printf(" -a, --oldaskconfig Start a new configuration using a line-oriented program\n");
-+ printf(" -s, --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
-+ printf(" -o, --oldconfig Update a configuration using a provided .config as base\n");
-+ printf(" -n, --allnoconfig New config where all options are answered with no\n");
-+ printf(" -y, --allyesconfig New config where all options are answered with yes\n");
-+ printf(" -m, --allmodconfig New config where all options are answered with mod\n");
-+ printf(" -A, --alldefconfig New config with all symbols set to default\n");
-+ printf(" -r, --randconfig New config with random answer to all options\n");
-+ printf(" -D, --defconfig <file> New config with default defined in <file>\n");
-+ printf(" -S, --savedefconfig <file> Save the minimal current configuration to <file>\n");
-+ printf(" -l, --listnewconfig List new options\n");
-+ printf(" -d, --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
-+ printf(" --oldnoconfig An alias of olddefconfig\n");
-+
-+}
-+#endif
-+
- int main(int ac, char **av)
- {
-+ const char *progname = av[0];
- int opt;
-- const char *name;
-- const char *configname = conf_get_configname();
-+ const char *name, *defconfig_file = NULL /* gcc uninit */;
- struct stat tmpstat;
-
- setlocale(LC_ALL, "");
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-
-- while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
-+ tty_stdio = isatty(0) && isatty(1) && isatty(2);
-+
-+#if 00// !defined __UCLIBC__ || \
-+ (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT)
-+ while ((opt = getopt_long(ac, av, "", long_opts, NULL)) != -1)
-+#else
-+ char *gch = "asonymArDSld";
-+ while ((opt = getopt(ac, av, "asonymArD:S:ldh")) != -1)
-+#endif
-+ {
-+ char *x = memchr(gch, opt, strlen(gch));
-+ if (x == NULL)
-+ opt = '?';
-+ else
-+ opt = x - gch;
-+ input_mode = (enum input_mode)opt;
- switch (opt) {
-- case 'o':
-- input_mode = ask_silent;
-- break;
-- case 's':
-- input_mode = ask_silent;
-+ case silentoldconfig:
- sync_kconfig = 1;
- break;
-- case 'd':
-- input_mode = set_default;
-- break;
-- case 'D':
-- input_mode = set_default;
-+ case defconfig:
-+ case savedefconfig:
- defconfig_file = optarg;
- break;
-- case 'n':
-- input_mode = set_no;
-- break;
-- case 'm':
-- input_mode = set_mod;
-- break;
-- case 'y':
-- input_mode = set_yes;
-- break;
-- case 'r':
-+ case randconfig:
- {
- struct timeval now;
- unsigned int seed;
-+ char *seed_env;
-
- /*
- * Use microseconds derived seed,
- * compensate for systems where it may be zero
- */
- gettimeofday(&now, NULL);
--
- seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1));
-- srand(seed);
-
-- input_mode = set_random;
-+ seed_env = getenv("KCONFIG_SEED");
-+ if( seed_env && *seed_env ) {
-+ char *endp;
-+ int tmp = (int)strtol(seed_env, &endp, 0);
-+ if (*endp == '\0') {
-+ seed = tmp;
-+ }
-+ }
-+ fprintf( stderr, "KCONFIG_SEED=0x%X\n", seed );
-+ srand(seed);
- break;
- }
-- case 'h':
-- printf(_("See README for usage info\n"));
-- exit(0);
-+ case oldaskconfig:
-+ case oldconfig:
-+ case allnoconfig:
-+ case allyesconfig:
-+ case allmodconfig:
-+ case alldefconfig:
-+ case listnewconfig:
-+ case olddefconfig:
- break;
-- default:
-- fprintf(stderr, _("See README for usage info\n"));
-+ case '?':
-+ conf_usage(progname);
- exit(1);
-+ break;
- }
- }
- if (ac == optind) {
- printf(_("%s: Kconfig file missing\n"), av[0]);
-+ conf_usage(progname);
- exit(1);
- }
- name = av[optind];
- conf_parse(name);
- //zconfdump(stdout);
- if (sync_kconfig) {
-- if (stat(configname, &tmpstat)) {
-+ name = conf_get_configname();
-+ if (stat(name, &tmpstat)) {
- fprintf(stderr, _("***\n"
-- "*** You have not yet configured!\n"
-- "*** (missing .config file)\n"
-+ "*** Configuration file \"%s\" not found!\n"
- "***\n"
- "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
- "*** \"make menuconfig\" or \"make xconfig\").\n"
-- "***\n"));
-+ "***\n"), name);
- exit(1);
- }
- }
-
- switch (input_mode) {
-- case set_default:
-+ case defconfig:
- if (!defconfig_file)
- defconfig_file = conf_get_default_confname();
- if (conf_read(defconfig_file)) {
-@@ -522,31 +619,46 @@
- exit(1);
- }
- break;
-- case ask_silent:
-- case ask_all:
-- case ask_new:
-+ case savedefconfig:
-+ case silentoldconfig:
-+ case oldaskconfig:
-+ case oldconfig:
-+ case listnewconfig:
-+ case olddefconfig:
- conf_read(NULL);
- break;
-- case set_no:
-- case set_mod:
-- case set_yes:
-- case set_random:
-+ case allnoconfig:
-+ case allyesconfig:
-+ case allmodconfig:
-+ case alldefconfig:
-+ case randconfig:
- name = getenv("KCONFIG_ALLCONFIG");
-- if (name && !stat(name, &tmpstat)) {
-- conf_read_simple(name, S_DEF_USER);
-+ if (!name)
-+ break;
-+ if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) {
-+ if (conf_read_simple(name, S_DEF_USER)) {
-+ fprintf(stderr,
-+ _("*** Can't read seed configuration \"%s\"!\n"),
-+ name);
-+ exit(1);
-+ }
- break;
- }
- switch (input_mode) {
-- case set_no: name = "allno.config"; break;
-- case set_mod: name = "allmod.config"; break;
-- case set_yes: name = "allyes.config"; break;
-- case set_random: name = "allrandom.config"; break;
-+ case allnoconfig: name = "allno.config"; break;
-+ case allyesconfig: name = "allyes.config"; break;
-+ case allmodconfig: name = "allmod.config"; break;
-+ case alldefconfig: name = "alldef.config"; break;
-+ case randconfig: name = "allrandom.config"; break;
- default: break;
- }
-- if (!stat(name, &tmpstat))
-- conf_read_simple(name, S_DEF_USER);
-- else if (!stat("all.config", &tmpstat))
-- conf_read_simple("all.config", S_DEF_USER);
-+ if (conf_read_simple(name, S_DEF_USER) &&
-+ conf_read_simple("all.config", S_DEF_USER)) {
-+ fprintf(stderr,
-+ _("*** KCONFIG_ALLCONFIG set, but no \"%s\" or \"all.config\" file found\n"),
-+ name);
-+ exit(1);
-+ }
- break;
- default:
- break;
-@@ -557,41 +669,51 @@
- name = getenv("KCONFIG_NOSILENTUPDATE");
- if (name && *name) {
- fprintf(stderr,
-- _("\n*** configuration requires explicit update.\n\n"));
-+ _("\n*** The configuration requires explicit update.\n\n"));
- return 1;
- }
- }
-- valid_stdin = isatty(0) && isatty(1) && isatty(2);
-+ valid_stdin = tty_stdio;
- }
-
- switch (input_mode) {
-- case set_no:
-+ case allnoconfig:
- conf_set_all_new_symbols(def_no);
- break;
-- case set_yes:
-+ case allyesconfig:
- conf_set_all_new_symbols(def_yes);
- break;
-- case set_mod:
-+ case allmodconfig:
- conf_set_all_new_symbols(def_mod);
- break;
-- case set_random:
-- conf_set_all_new_symbols(def_random);
-+ case alldefconfig:
-+ conf_set_all_new_symbols(def_default);
-+ break;
-+ case randconfig:
-+ /* Really nothing to do in this loop */
-+ while (conf_set_all_new_symbols(def_random)) ;
- break;
-- case set_default:
-+ case defconfig:
- conf_set_all_new_symbols(def_default);
- break;
-- case ask_new:
-- case ask_all:
-+ case savedefconfig:
-+ break;
-+ case oldaskconfig:
- rootEntry = &rootmenu;
- conf(&rootmenu);
-- input_mode = ask_silent;
-+ input_mode = silentoldconfig;
- /* fall through */
-- case ask_silent:
-+ case oldconfig:
-+ case listnewconfig:
-+ case olddefconfig:
-+ case silentoldconfig:
- /* Update until a loop caused no more changes */
- do {
- conf_cnt = 0;
- check_conf(&rootmenu);
-- } while (conf_cnt);
-+ } while (conf_cnt &&
-+ (input_mode != listnewconfig &&
-+ input_mode != olddefconfig));
- break;
- }
-
-@@ -607,7 +729,13 @@
- fprintf(stderr, _("\n*** Error during update of the configuration.\n\n"));
- return 1;
- }
-- } else {
-+ } else if (input_mode == savedefconfig) {
-+ if (conf_write_defconfig(defconfig_file)) {
-+ fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"),
-+ defconfig_file);
-+ return 1;
-+ }
-+ } else if (input_mode != listnewconfig) {
- if (conf_write(NULL)) {
- fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
- exit(1);
-@@ -615,3 +743,12 @@
- }
- return 0;
- }
-+
-+/*
-+ * Helper function to facilitate fgets() by Jean Sacren.
-+ */
-+void xfgets(char *str, int size, FILE *in)
-+{
-+ if (fgets(str, size, in) == NULL)
-+ fprintf(stderr, "\nError in reading or end of file.\n");
-+}
-diff -Nur uClibc-0.9.33.2/extra/config/confdata.c uClibc-git/extra/config/confdata.c
---- uClibc-0.9.33.2/extra/config/confdata.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/confdata.c 2014-07-25 20:36:04.853324457 +0200
-@@ -5,24 +5,27 @@
-
- #include <sys/stat.h>
- #include <ctype.h>
-+#include <errno.h>
- #include <fcntl.h>
-+#include <stdarg.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <unistd.h>
--#include <libgen.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
- static void conf_warning(const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-
-+static void conf_message(const char *fmt, ...)
-+ __attribute__ ((format (printf, 1, 2)));
-+
- static const char *conf_filename;
- static int conf_lineno, conf_warnings, conf_unsaved;
-
--const char conf_defname[] = "extra/Configs/defconfigs/$ARCH";
-+const char conf_defname[] = "arch/$ARCH/defconfig";
-
- static void conf_warning(const char *fmt, ...)
- {
-@@ -35,6 +38,29 @@
- conf_warnings++;
- }
-
-+static void conf_default_message_callback(const char *fmt, va_list ap)
-+{
-+ printf("#\n# ");
-+ vprintf(fmt, ap);
-+ printf("\n#\n");
-+}
-+
-+static void (*conf_message_callback) (const char *fmt, va_list ap) =
-+ conf_default_message_callback;
-+void conf_set_message_callback(void (*fn) (const char *fmt, va_list ap))
-+{
-+ conf_message_callback = fn;
-+}
-+
-+static void conf_message(const char *fmt, ...)
-+{
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ if (conf_message_callback)
-+ conf_message_callback(fmt, ap);
-+}
-+
- const char *conf_get_configname(void)
- {
- char *name = getenv("KCONFIG_CONFIG");
-@@ -42,6 +68,13 @@
- return name ? name : ".config";
- }
-
-+const char *conf_get_autoconfig_name(void)
-+{
-+ char *name = getenv("KCONFIG_AUTOCONFIG");
-+
-+ return name ? name : "include/config/auto.conf";
-+}
-+
- static char *conf_expand_value(const char *in)
- {
- struct symbol *sym;
-@@ -95,6 +128,7 @@
- sym->flags |= def_flags;
- break;
- }
-+ /* fall through */
- case S_BOOLEAN:
- if (p[0] == 'y') {
- sym->def[def].tri = yes;
-@@ -107,7 +141,7 @@
- break;
- }
- conf_warning("symbol value '%s' invalid for %s", p, sym->name);
-- break;
-+ return 1;
- case S_OTHER:
- if (*p != '"') {
- for (p2 = p; *p2 && !isspace(*p2); p2++)
-@@ -115,6 +149,7 @@
- sym->type = S_STRING;
- goto done;
- }
-+ /* fall through */
- case S_STRING:
- if (*p++ != '"')
- break;
-@@ -129,6 +164,7 @@
- conf_warning("invalid string found");
- return 1;
- }
-+ /* fall through */
- case S_INT:
- case S_HEX:
- done:
-@@ -146,10 +182,66 @@
- return 0;
- }
-
-+#define LINE_GROWTH 16
-+static int add_byte(int c, char **lineptr, size_t slen, size_t *n)
-+{
-+ char *nline;
-+ size_t new_size = slen + 1;
-+ if (new_size > *n) {
-+ new_size += LINE_GROWTH - 1;
-+ new_size *= 2;
-+ nline = realloc(*lineptr, new_size);
-+ if (!nline)
-+ return -1;
-+
-+ *lineptr = nline;
-+ *n = new_size;
-+ }
-+
-+ (*lineptr)[slen] = c;
-+
-+ return 0;
-+}
-+
-+static ssize_t compat_getline(char **lineptr, size_t *n, FILE *stream)
-+{
-+ char *line = *lineptr;
-+ size_t slen = 0;
-+
-+ for (;;) {
-+ int c = getc(stream);
-+
-+ switch (c) {
-+ case '\n':
-+ if (add_byte(c, &line, slen, n) < 0)
-+ goto e_out;
-+ slen++;
-+ /* fall through */
-+ case EOF:
-+ if (add_byte('\0', &line, slen, n) < 0)
-+ goto e_out;
-+ *lineptr = line;
-+ if (slen == 0)
-+ return -1;
-+ return slen;
-+ default:
-+ if (add_byte(c, &line, slen, n) < 0)
-+ goto e_out;
-+ slen++;
-+ }
-+ }
-+
-+e_out:
-+ line[slen-1] = '\0';
-+ *lineptr = line;
-+ return -1;
-+}
-+
- int conf_read_simple(const char *name, int def)
- {
- FILE *in = NULL;
-- char line[1024];
-+ char *line = NULL;
-+ size_t line_asize = 0;
- char *p, *p2;
- struct symbol *sym;
- int i, def_flags;
-@@ -164,8 +256,11 @@
- if (in)
- goto load;
- sym_add_change_count(1);
-- if (!sym_defconfig_list)
-+ if (!sym_defconfig_list) {
-+ if (modules_sym)
-+ sym_calc_value(modules_sym);
- return 1;
-+ }
-
- for_all_defaults(sym_defconfig_list, prop) {
- if (expr_calc_value(prop->visible.expr) == no ||
-@@ -174,9 +269,8 @@
- name = conf_expand_value(prop->expr->left.sym->name);
- in = zconf_fopen(name);
- if (in) {
-- printf(_("#\n"
-- "# using defaults found in %s\n"
-- "#\n"), name);
-+ conf_message(_("using defaults found in %s"),
-+ name);
- goto load;
- }
- }
-@@ -202,33 +296,33 @@
- case S_STRING:
- if (sym->def[def].val)
- free(sym->def[def].val);
-+ /* fall through */
- default:
- sym->def[def].val = NULL;
- sym->def[def].tri = no;
- }
- }
-
-- while (fgets(line, sizeof(line), in)) {
-+ while (compat_getline(&line, &line_asize, in) != -1) {
- conf_lineno++;
- sym = NULL;
-- switch (line[0]) {
-- case '#':
-- if (line[1] != ' ')
-+ if (line[0] == '#') {
-+ if (memcmp(line + 2, CONFIG_, strlen(CONFIG_)))
- continue;
-- p = strchr(line + 2, ' ');
-+ p = strchr(line + 2 + strlen(CONFIG_), ' ');
- if (!p)
- continue;
- *p++ = 0;
- if (strncmp(p, "is not set", 10))
- continue;
- if (def == S_DEF_USER) {
-- sym = sym_find(line + 2);
-+ sym = sym_find(line + 2 + strlen(CONFIG_));
- if (!sym) {
- sym_add_change_count(1);
-- break;
-+ goto setsym;
- }
- } else {
-- sym = sym_lookup(line + 2, 0);
-+ sym = sym_lookup(line + 2 + strlen(CONFIG_), 0);
- if (sym->type == S_UNKNOWN)
- sym->type = S_BOOLEAN;
- }
-@@ -244,13 +338,10 @@
- default:
- ;
- }
-- break;
-- case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z':
-- p = strchr(line, '=');
-- if (!p) {
-- conf_warning("unexpected data '%s'", line);
-+ } else if (memcmp(line, CONFIG_, strlen(CONFIG_)) == 0) {
-+ p = strchr(line + strlen(CONFIG_), '=');
-+ if (!p)
- continue;
-- }
- *p++ = 0;
- p2 = strchr(p, '\n');
- if (p2) {
-@@ -259,13 +350,13 @@
- *p2 = 0;
- }
- if (def == S_DEF_USER) {
-- sym = sym_find(line);
-+ sym = sym_find(line + strlen(CONFIG_));
- if (!sym) {
- sym_add_change_count(1);
-- break;
-+ goto setsym;
- }
- } else {
-- sym = sym_lookup(line, 0);
-+ sym = sym_lookup(line + strlen(CONFIG_), 0);
- if (sym->type == S_UNKNOWN)
- sym->type = S_OTHER;
- }
-@@ -274,14 +365,12 @@
- }
- if (conf_set_sym_val(sym, def, def_flags, p))
- continue;
-- break;
-- case '\r':
-- case '\n':
-- break;
-- default:
-- conf_warning("unexpected data");
-+ } else {
-+ if (line[0] != '\r' && line[0] != '\n')
-+ conf_warning("unexpected data");
- continue;
- }
-+setsym:
- if (sym && sym_is_choice_value(sym)) {
- struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
- switch (sym->def[def].tri) {
-@@ -302,6 +391,7 @@
- cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
- }
- }
-+ free(line);
- fclose(in);
-
- if (modules_sym)
-@@ -311,10 +401,8 @@
-
- int conf_read(const char *name)
- {
-- struct symbol *sym, *choice_sym;
-- struct property *prop;
-- struct expr *e;
-- int i, flags;
-+ struct symbol *sym;
-+ int i;
-
- sym_set_change_count(0);
-
-@@ -324,7 +412,7 @@
- for_all_symbols(i, sym) {
- sym_calc_value(sym);
- if (sym_is_choice(sym) || (sym->flags & SYMBOL_AUTO))
-- goto sym_ok;
-+ continue;
- if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
- /* check that calculated value agrees with saved value */
- switch (sym->type) {
-@@ -333,29 +421,18 @@
- if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym))
- break;
- if (!sym_is_choice(sym))
-- goto sym_ok;
-+ continue;
-+ /* fall through */
- default:
- if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
-- goto sym_ok;
-+ continue;
- break;
- }
- } else if (!sym_has_value(sym) && !(sym->flags & SYMBOL_WRITE))
- /* no previous value and not saved */
-- goto sym_ok;
-+ continue;
- conf_unsaved++;
- /* maybe print value in verbose mode... */
-- sym_ok:
-- if (!sym_is_choice(sym))
-- continue;
-- /* The choice symbol only has a set value (and thus is not new)
-- * if all its visible childs have values.
-- */
-- prop = sym_get_choice_prop(sym);
-- flags = sym->flags;
-- expr_list_for_each_sym(prop->expr, e, choice_sym)
-- if (choice_sym->visible != no)
-- flags &= choice_sym->flags;
-- sym->flags &= flags | ~SYMBOL_DEF_USER;
- }
-
- for_all_symbols(i, sym) {
-@@ -388,43 +465,300 @@
- return 0;
- }
-
-+/*
-+ * Kconfig configuration printer
-+ *
-+ * This printer is used when generating the resulting configuration after
-+ * kconfig invocation and `defconfig' files. Unset symbol might be omitted by
-+ * passing a non-NULL argument to the printer.
-+ *
-+ */
-+static void
-+kconfig_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
-+{
-+
-+ switch (sym->type) {
-+ case S_BOOLEAN:
-+ case S_TRISTATE:
-+ if (*value == 'n') {
-+ bool skip_unset = (arg != NULL);
-+
-+ if (!skip_unset)
-+ fprintf(fp, "# %s%s is not set\n",
-+ CONFIG_, sym->name);
-+ return;
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ fprintf(fp, "%s%s=%s\n", CONFIG_, sym->name, value);
-+}
-+
-+static void
-+kconfig_print_comment(FILE *fp, const char *value, void *arg)
-+{
-+ const char *p = value;
-+ size_t l;
-+
-+ for (;;) {
-+ l = strcspn(p, "\n");
-+ fprintf(fp, "#");
-+ if (l) {
-+ fprintf(fp, " ");
-+ xfwrite(p, l, 1, fp);
-+ p += l;
-+ }
-+ fprintf(fp, "\n");
-+ if (*p++ == '\0')
-+ break;
-+ }
-+}
-+
-+static struct conf_printer kconfig_printer_cb =
-+{
-+ .print_symbol = kconfig_print_symbol,
-+ .print_comment = kconfig_print_comment,
-+};
-+
-+/*
-+ * Header printer
-+ *
-+ * This printer is used when generating the `include/generated/autoconf.h' file.
-+ */
-+static void
-+header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
-+{
-+
-+ switch (sym->type) {
-+ case S_BOOLEAN:
-+ case S_TRISTATE: {
-+ const char *suffix = "";
-+
-+ switch (*value) {
-+ case 'n':
-+ break;
-+ case 'm':
-+ suffix = "_MODULE";
-+ /* fall through */
-+ default:
-+ fprintf(fp, "#define %s%s%s 1\n",
-+ CONFIG_, sym->name, suffix);
-+ }
-+ break;
-+ }
-+ case S_HEX: {
-+ const char *prefix = "";
-+
-+ if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X'))
-+ prefix = "0x";
-+ fprintf(fp, "#define %s%s %s%s\n",
-+ CONFIG_, sym->name, prefix, value);
-+ break;
-+ }
-+ case S_STRING:
-+ case S_INT:
-+ fprintf(fp, "#define %s%s %s\n",
-+ CONFIG_, sym->name, value);
-+ break;
-+ default:
-+ break;
-+ }
-+
-+}
-+
-+static void
-+header_print_comment(FILE *fp, const char *value, void *arg)
-+{
-+ const char *p = value;
-+ size_t l;
-+
-+ fprintf(fp, "/*\n");
-+ for (;;) {
-+ l = strcspn(p, "\n");
-+ fprintf(fp, " *");
-+ if (l) {
-+ fprintf(fp, " ");
-+ xfwrite(p, l, 1, fp);
-+ p += l;
-+ }
-+ fprintf(fp, "\n");
-+ if (*p++ == '\0')
-+ break;
-+ }
-+ fprintf(fp, " */\n");
-+}
-+
-+static struct conf_printer header_printer_cb =
-+{
-+ .print_symbol = header_print_symbol,
-+ .print_comment = header_print_comment,
-+};
-+
-+/*
-+ * Tristate printer
-+ *
-+ * This printer is used when generating the `include/config/tristate.conf' file.
-+ */
-+static void
-+tristate_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
-+{
-+
-+ if (sym->type == S_TRISTATE && *value != 'n')
-+ fprintf(fp, "%s%s=%c\n", CONFIG_, sym->name, (char)toupper(*value));
-+}
-+
-+static struct conf_printer tristate_printer_cb =
-+{
-+ .print_symbol = tristate_print_symbol,
-+ .print_comment = kconfig_print_comment,
-+};
-+
-+static void conf_write_symbol(FILE *fp, struct symbol *sym,
-+ struct conf_printer *printer, void *printer_arg)
-+{
-+ const char *str;
-+
-+ switch (sym->type) {
-+ case S_OTHER:
-+ case S_UNKNOWN:
-+ break;
-+ case S_STRING:
-+ str = sym_get_string_value(sym);
-+ str = sym_escape_string_value(str);
-+ printer->print_symbol(fp, sym, str, printer_arg);
-+ free((void *)str);
-+ break;
-+ default:
-+ str = sym_get_string_value(sym);
-+ printer->print_symbol(fp, sym, str, printer_arg);
-+ }
-+}
-+
-+static void
-+conf_write_heading(FILE *fp, struct conf_printer *printer, void *printer_arg)
-+{
-+ char buf[256];
-+
-+ snprintf(buf, sizeof(buf),
-+ "\n"
-+ "Automatically generated file; DO NOT EDIT.\n"
-+ "%s\n",
-+ rootmenu.prompt->text);
-+
-+ printer->print_comment(fp, buf, printer_arg);
-+}
-+
-+/*
-+ * Write out a minimal config.
-+ * All values that has default values are skipped as this is redundant.
-+ */
-+int conf_write_defconfig(const char *filename)
-+{
-+ struct symbol *sym;
-+ struct menu *menu;
-+ FILE *out;
-+
-+ out = fopen(filename, "w");
-+ if (!out)
-+ return 1;
-+
-+ sym_clear_all_valid();
-+
-+ /* Traverse all menus to find all relevant symbols */
-+ menu = rootmenu.list;
-+
-+ while (menu != NULL)
-+ {
-+ sym = menu->sym;
-+ if (sym == NULL) {
-+ if (!menu_is_visible(menu))
-+ goto next_menu;
-+ } else if (!sym_is_choice(sym)) {
-+ sym_calc_value(sym);
-+ if (!(sym->flags & SYMBOL_WRITE))
-+ goto next_menu;
-+ sym->flags &= ~SYMBOL_WRITE;
-+ /* If we cannot change the symbol - skip */
-+ if (!sym_is_changable(sym))
-+ goto next_menu;
-+ /* If symbol equals to default value - skip */
-+ if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
-+ goto next_menu;
-+
-+ /*
-+ * If symbol is a choice value and equals to the
-+ * default for a choice - skip.
-+ * But only if value is bool and equal to "y" and
-+ * choice is not "optional".
-+ * (If choice is "optional" then all values can be "n")
-+ */
-+ if (sym_is_choice_value(sym)) {
-+ struct symbol *cs;
-+ struct symbol *ds;
-+
-+ cs = prop_get_symbol(sym_get_choice_prop(sym));
-+ ds = sym_choice_default(cs);
-+ if (!sym_is_optional(cs) && sym == ds) {
-+ if ((sym->type == S_BOOLEAN) &&
-+ sym_get_tristate_value(sym) == yes)
-+ goto next_menu;
-+ }
-+ }
-+ conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
-+ }
-+next_menu:
-+ if (menu->list != NULL) {
-+ menu = menu->list;
-+ }
-+ else if (menu->next != NULL) {
-+ menu = menu->next;
-+ } else {
-+ while ((menu = menu->parent)) {
-+ if (menu->next != NULL) {
-+ menu = menu->next;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ fclose(out);
-+ return 0;
-+}
-+
- int conf_write(const char *name)
- {
- FILE *out;
- struct symbol *sym;
- struct menu *menu;
- const char *basename;
-- char dirname[128], tmpname[128], newname[128];
-- int type, l;
- const char *str;
-- time_t now;
-- int use_timestamp = 1;
-- char *env;
-+ char tmpname[PATH_MAX+1], newname[PATH_MAX+1];
-+ char *env, *dirname = NULL;
-
-- dirname[0] = 0;
-- if (name == NULL)
-- name = conf_get_configname();
- if (name && name[0]) {
- struct stat st;
- char *slash;
-
- if (!stat(name, &st) && S_ISDIR(st.st_mode)) {
-- strcpy(dirname, name);
-+ dirname = strndup(name, strlen(name) + 1);
- strcat(dirname, "/");
- basename = conf_get_configname();
- } else if ((slash = strrchr(name, '/'))) {
- int size = slash - name + 1;
-- memcpy(dirname, name, size);
-- dirname[size] = 0;
-+ dirname = strndup(name, size);
- if (slash[1])
- basename = slash + 1;
- else
- basename = conf_get_configname();
- } else
- basename = name;
-- } else
-- basename = conf_get_configname();
--
-+ } else {
-+ dirname = strdup(conf_get_configname());
-+ basename = strdup(base_name(dirname));
-+ dirname = dir_name(dirname);
-+ }
- sprintf(newname, "%s%s", dirname, basename);
- env = getenv("KCONFIG_OVERWRITECONFIG");
- if (!env || !*env) {
-@@ -434,24 +768,11 @@
- *tmpname = 0;
- out = fopen(newname, "w");
- }
-+ free(dirname);
- if (!out)
- return 1;
-
-- sym = sym_lookup("VERSION", 0);
-- sym_calc_value(sym);
-- time(&now);
-- env = getenv("KCONFIG_NOTIMESTAMP");
-- if (env && *env)
-- use_timestamp = 0;
--
-- fprintf(out, _("#\n"
-- "# Automatically generated make config: don't edit\n"
-- "# Version: %s\n"
-- "%s%s"
-- "#\n"),
-- sym_get_string_value(sym),
-- use_timestamp ? "# " : "",
-- use_timestamp ? ctime(&now) : "");
-+ conf_write_heading(out, &kconfig_printer_cb, NULL);
-
- if (!conf_get_changed())
- sym_clear_all_valid();
-@@ -472,56 +793,11 @@
- if (!(sym->flags & SYMBOL_WRITE))
- goto next;
- sym->flags &= ~SYMBOL_WRITE;
-- type = sym->type;
-- if (type == S_TRISTATE) {
-- sym_calc_value(modules_sym);
-- if (modules_sym->curr.tri == no)
-- type = S_BOOLEAN;
-- }
-- switch (type) {
-- case S_BOOLEAN:
-- case S_TRISTATE:
-- switch (sym_get_tristate_value(sym)) {
-- case no:
-- fprintf(out, "# %s is not set\n", sym->name);
-- break;
-- case mod:
-- fprintf(out, "%s=m\n", sym->name);
-- break;
-- case yes:
-- fprintf(out, "%s=y\n", sym->name);
-- break;
-- }
-- break;
-- case S_STRING:
-- str = sym_get_string_value(sym);
-- fprintf(out, "%s=\"", sym->name);
-- while (1) {
-- l = strcspn(str, "\"\\");
-- if (l) {
-- fwrite(str, l, 1, out);
-- str += l;
-- }
-- if (!*str)
-- break;
-- fprintf(out, "\\%c", *str++);
-- }
-- fputs("\"\n", out);
-- break;
-- case S_HEX:
-- str = sym_get_string_value(sym);
-- if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
-- fprintf(out, "%s=%s\n", sym->name, str);
-- break;
-- }
-- case S_INT:
-- str = sym_get_string_value(sym);
-- fprintf(out, "%s=%s\n", sym->name, str);
-- break;
-- }
-+
-+ conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
- }
-
-- next:
-+next:
- if (menu->list) {
- menu = menu->list;
- continue;
-@@ -538,38 +814,39 @@
- fclose(out);
-
- if (*tmpname) {
-- strcat(dirname, basename);
-+ dirname = strndup(basename, strlen(basename) + 4);
- strcat(dirname, ".old");
- rename(newname, dirname);
-+ free(dirname);
- if (rename(tmpname, newname))
- return 1;
- }
-
-- printf(_("#\n"
-- "# configuration written to %s\n"
-- "#\n"), newname);
-+ conf_message(_("configuration written to %s"), newname);
-
- sym_set_change_count(0);
-
- return 0;
- }
-
--int conf_split_config(void)
-+static int conf_split_config(void)
- {
-- char *name, path[128], opwd[512];
-+ const char *name;
-+ char path[PATH_MAX+1], opwd[PATH_MAX+1];
- char *s, *d, c;
- struct symbol *sym;
- struct stat sb;
- int res, i, fd;
-
-- name = getenv("KCONFIG_AUTOCONFIG");
-- if (!name)
-- name = "include/config/auto.conf";
-- conf_read_simple(name, S_DEF_AUTO);
--
- if (getcwd(opwd, sizeof(opwd)) == NULL)
- return 1;
-- if (chdir(dirname(strdup(name))))
-+ name = conf_get_autoconfig_name();
-+ conf_read_simple(name, S_DEF_AUTO);
-+
-+ strcpy(path, name);
-+ dir_name(path);
-+
-+ if (chdir(path))
- return 1;
-
- res = 0;
-@@ -671,126 +948,85 @@
-
- int conf_write_autoconf(void)
- {
-- char opwd[512];
- struct symbol *sym;
-- const char *str;
-- char *name;
-- FILE *out, *out_h;
-- time_t now;
-- int i, l;
-+ const char *name;
-+ char cfg_fname[PATH_MAX+1], tristate_fname[PATH_MAX+1],
-+ cfgh_fname[PATH_MAX+1];
-+ char *dirname;
-+ FILE *out, *tristate, *out_h;
-+ int i;
-
-- if (getcwd(opwd, sizeof(opwd)) == NULL)
-- return 1;
-- if (chdir(dirname(strdup(conf_get_configname()))))
-- return 1;
- sym_clear_all_valid();
-
-- file_write_dep("include/config/auto.conf.cmd");
-+ sprintf(cfg_fname, "%s.cmd", conf_get_autoconfig_name());
-+ file_write_dep(cfg_fname);
-
- if (conf_split_config())
- return 1;
-
-- out = fopen(".tmpconfig", "w");
-+ dirname = dir_name(strdup(conf_get_configname()));
-+ sprintf(cfg_fname, "%s.tmpconfig", dirname);
-+ sprintf(tristate_fname, "%s.tmpconfig_tristate", dirname);
-+ sprintf(cfgh_fname, "%s.tmpconfig.h", dirname);
-+ free(dirname);
-+
-+ out = fopen(cfg_fname, "w");
- if (!out)
- return 1;
-
-- out_h = fopen(".tmpconfig.h", "w");
-+ tristate = fopen(tristate_fname, "w");
-+ if (!tristate) {
-+ fclose(out);
-+ return 1;
-+ }
-+
-+ out_h = fopen(cfgh_fname, "w");
- if (!out_h) {
- fclose(out);
-+ fclose(tristate);
- return 1;
- }
-
-- sym = sym_lookup("VERSION", 0);
-- sym_calc_value(sym);
-- time(&now);
-- fprintf(out, "#\n"
-- "# Automatically generated make config: don't edit\n"
-- "# Version: %s\n"
-- "# %s"
-- "#\n",
-- sym_get_string_value(sym), ctime(&now));
-- fprintf(out_h, "/*\n"
-- " * Automatically generated C config: don't edit\n"
-- " * Version: %s\n"
-- " * %s"
-- " */\n"
-- "#define AUTOCONF_INCLUDED\n",
-- sym_get_string_value(sym), ctime(&now));
-+ conf_write_heading(out, &kconfig_printer_cb, NULL);
-+
-+ conf_write_heading(tristate, &tristate_printer_cb, NULL);
-+
-+ conf_write_heading(out_h, &header_printer_cb, NULL);
-
- for_all_symbols(i, sym) {
- sym_calc_value(sym);
- if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
- continue;
-- switch (sym->type) {
-- case S_BOOLEAN:
-- case S_TRISTATE:
-- switch (sym_get_tristate_value(sym)) {
-- case no:
-- break;
-- case mod:
-- fprintf(out, "CONFIG_%s=m\n", sym->name);
-- fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
-- break;
-- case yes:
-- fprintf(out, "%s=y\n", sym->name);
-- fprintf(out_h, "#define %s 1\n", sym->name);
-- break;
-- }
-- break;
-- case S_STRING:
-- str = sym_get_string_value(sym);
-- fprintf(out, "%s=\"", sym->name);
-- fprintf(out_h, "#define %s \"", sym->name);
-- while (1) {
-- l = strcspn(str, "\"\\");
-- if (l) {
-- fwrite(str, l, 1, out);
-- fwrite(str, l, 1, out_h);
-- str += l;
-- }
-- if (!*str)
-- break;
-- fprintf(out, "\\%c", *str);
-- fprintf(out_h, "\\%c", *str);
-- str++;
-- }
-- fputs("\"\n", out);
-- fputs("\"\n", out_h);
-- break;
-- case S_HEX:
-- str = sym_get_string_value(sym);
-- if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
-- fprintf(out, "%s=%s\n", sym->name, str);
-- fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
-- break;
-- }
-- case S_INT:
-- str = sym_get_string_value(sym);
-- fprintf(out, "%s=%s\n", sym->name, str);
-- fprintf(out_h, "#define %s %s\n", sym->name, str);
-- break;
-- default:
-- break;
-- }
-+
-+ /* write symbol to auto.conf, tristate and header files */
-+ conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1);
-+
-+ conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1);
-+
-+ conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
- }
- fclose(out);
-+ fclose(tristate);
- fclose(out_h);
-
- name = getenv("KCONFIG_AUTOHEADER");
- if (!name)
-- name = "include/config/autoconf.h";
-- if (rename(".tmpconfig.h", name))
-+ name = "include/generated/autoconf.h";
-+ if (rename(cfgh_fname, name))
- return 1;
-- name = getenv("KCONFIG_AUTOCONFIG");
-+ name = getenv("KCONFIG_TRISTATE");
- if (!name)
-- name = "include/config/auto.conf";
-+ name = "include/config/tristate.conf";
-+ if (rename(tristate_fname, name))
-+ return 1;
-+ name = conf_get_autoconfig_name();
- /*
- * This must be the last step, kbuild has a dependency on auto.conf
- * and this marks the successful completion of the previous steps.
- */
-- if (rename(".tmpconfig", name))
-+ if (rename(cfg_fname, name))
- return 1;
-- chdir(opwd);
-+
- return 0;
- }
-
-@@ -821,20 +1057,131 @@
- conf_changed_callback = fn;
- }
-
-+static bool randomize_choice_values(struct symbol *csym)
-+{
-+ struct property *prop;
-+ struct symbol *sym;
-+ struct expr *e;
-+ int cnt, def;
-
--void conf_set_all_new_symbols(enum conf_def_mode mode)
-+ /*
-+ * If choice is mod then we may have more items selected
-+ * and if no then no-one.
-+ * In both cases stop.
-+ */
-+ if (csym->curr.tri != yes)
-+ return false;
-+
-+ prop = sym_get_choice_prop(csym);
-+
-+ /* count entries in choice block */
-+ cnt = 0;
-+ expr_list_for_each_sym(prop->expr, e, sym)
-+ cnt++;
-+
-+ /*
-+ * find a random value and set it to yes,
-+ * set the rest to no so we have only one set
-+ */
-+ def = (rand() % cnt);
-+
-+ cnt = 0;
-+ expr_list_for_each_sym(prop->expr, e, sym) {
-+ if (def == cnt++) {
-+ sym->def[S_DEF_USER].tri = yes;
-+ csym->def[S_DEF_USER].val = sym;
-+ }
-+ else {
-+ sym->def[S_DEF_USER].tri = no;
-+ }
-+ sym->flags |= SYMBOL_DEF_USER;
-+ /* clear VALID to get value calculated */
-+ sym->flags &= ~SYMBOL_VALID;
-+ }
-+ csym->flags |= SYMBOL_DEF_USER;
-+ /* clear VALID to get value calculated */
-+ csym->flags &= ~(SYMBOL_VALID);
-+
-+ return true;
-+}
-+
-+void set_all_choice_values(struct symbol *csym)
- {
-- struct symbol *sym, *csym;
- struct property *prop;
-+ struct symbol *sym;
- struct expr *e;
-- int i, cnt, def;
-+
-+ prop = sym_get_choice_prop(csym);
-+
-+ /*
-+ * Set all non-assinged choice values to no
-+ */
-+ expr_list_for_each_sym(prop->expr, e, sym) {
-+ if (!sym_has_value(sym))
-+ sym->def[S_DEF_USER].tri = no;
-+ }
-+ csym->flags |= SYMBOL_DEF_USER;
-+ /* clear VALID to get value calculated */
-+ csym->flags &= ~(SYMBOL_VALID | SYMBOL_NEED_SET_CHOICE_VALUES);
-+}
-+
-+bool conf_set_all_new_symbols(enum conf_def_mode mode)
-+{
-+ struct symbol *sym, *csym;
-+ int i, cnt, pby, pty, ptm; /* pby: probability of boolean = y
-+ * pty: probability of tristate = y
-+ * ptm: probability of tristate = m
-+ */
-+
-+ pby = 50; pty = ptm = 33; /* can't go as the default in switch-case
-+ * below, otherwise gcc whines about
-+ * -Wmaybe-uninitialized */
-+ if (mode == def_random) {
-+ int n, p[3];
-+ char *env = getenv("KCONFIG_PROBABILITY");
-+ n = 0;
-+ while( env && *env ) {
-+ char *endp;
-+ int tmp = strtol( env, &endp, 10 );
-+ if( tmp >= 0 && tmp <= 100 ) {
-+ p[n++] = tmp;
-+ } else {
-+ errno = ERANGE;
-+ perror( "KCONFIG_PROBABILITY" );
-+ exit( 1 );
-+ }
-+ env = (*endp == ':') ? endp+1 : endp;
-+ if( n >=3 ) {
-+ break;
-+ }
-+ }
-+ switch( n ) {
-+ case 1:
-+ pby = p[0]; ptm = pby/2; pty = pby-ptm;
-+ break;
-+ case 2:
-+ pty = p[0]; ptm = p[1]; pby = pty + ptm;
-+ break;
-+ case 3:
-+ pby = p[0]; pty = p[1]; ptm = p[2];
-+ break;
-+ }
-+
-+ if( pty+ptm > 100 ) {
-+ errno = ERANGE;
-+ perror( "KCONFIG_PROBABILITY" );
-+ exit( 1 );
-+ }
-+ }
-+ bool has_changed = false;
-
- for_all_symbols(i, sym) {
-- if (sym_has_value(sym))
-+ if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID))
- continue;
- switch (sym_get_type(sym)) {
- case S_BOOLEAN:
- case S_TRISTATE:
-+ has_changed = true;
- switch (mode) {
- case def_yes:
- sym->def[S_DEF_USER].tri = yes;
-@@ -846,7 +1193,15 @@
- sym->def[S_DEF_USER].tri = no;
- break;
- case def_random:
-- sym->def[S_DEF_USER].tri = (tristate)(rand() % 3);
-+ sym->def[S_DEF_USER].tri = no;
-+ cnt = rand() % 100;
-+ if (sym->type == S_TRISTATE) {
-+ if (cnt < pty)
-+ sym->def[S_DEF_USER].tri = yes;
-+ else if (cnt < (pty+ptm))
-+ sym->def[S_DEF_USER].tri = mod;
-+ } else if (cnt < pby)
-+ sym->def[S_DEF_USER].tri = yes;
- break;
- default:
- continue;
-@@ -862,51 +1217,35 @@
-
- sym_clear_all_valid();
-
-- if (mode != def_random)
-- return;
- /*
- * We have different type of choice blocks.
-- * If curr.tri equal to mod then we can select several
-+ * If curr.tri equals to mod then we can select several
- * choice symbols in one block.
- * In this case we do nothing.
-- * If curr.tri equal yes then only one symbol can be
-+ * If curr.tri equals yes then only one symbol can be
- * selected in a choice block and we set it to yes,
- * and the rest to no.
- */
-+ if (mode != def_random) {
-+ for_all_symbols(i, csym) {
-+ if ((sym_is_choice(csym) && !sym_has_value(csym)) ||
-+ sym_is_choice_value(csym))
-+ csym->flags |= SYMBOL_NEED_SET_CHOICE_VALUES;
-+ }
-+ }
-+
- for_all_symbols(i, csym) {
- if (sym_has_value(csym) || !sym_is_choice(csym))
- continue;
-
- sym_calc_value(csym);
--
-- if (csym->curr.tri != yes)
-- continue;
--
-- prop = sym_get_choice_prop(csym);
--
-- /* count entries in choice block */
-- cnt = 0;
-- expr_list_for_each_sym(prop->expr, e, sym)
-- cnt++;
--
-- /*
-- * find a random value and set it to yes,
-- * set the rest to no so we have only one set
-- */
-- def = (rand() % cnt);
--
-- cnt = 0;
-- expr_list_for_each_sym(prop->expr, e, sym) {
-- if (def == cnt++) {
-- sym->def[S_DEF_USER].tri = yes;
-- csym->def[S_DEF_USER].val = sym;
-- }
-- else {
-- sym->def[S_DEF_USER].tri = no;
-- }
-+ if (mode == def_random)
-+ has_changed = randomize_choice_values(csym);
-+ else {
-+ set_all_choice_values(csym);
-+ has_changed = true;
- }
-- csym->flags |= SYMBOL_DEF_USER;
-- /* clear VALID to get value calculated */
-- csym->flags &= ~(SYMBOL_VALID);
- }
-+
-+ return has_changed;
- }
-diff -Nur uClibc-0.9.33.2/extra/config/expr.c uClibc-git/extra/config/expr.c
---- uClibc-0.9.33.2/extra/config/expr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/expr.c 2014-07-25 20:36:04.853324457 +0200
-@@ -7,15 +7,13 @@
- #include <stdlib.h>
- #include <string.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
- #define DEBUG_EXPR 0
-
- struct expr *expr_alloc_symbol(struct symbol *sym)
- {
-- struct expr *e = malloc(sizeof(*e));
-- memset(e, 0, sizeof(*e));
-+ struct expr *e = xcalloc(1, sizeof(*e));
- e->type = E_SYMBOL;
- e->left.sym = sym;
- return e;
-@@ -23,8 +21,7 @@
-
- struct expr *expr_alloc_one(enum expr_type type, struct expr *ce)
- {
-- struct expr *e = malloc(sizeof(*e));
-- memset(e, 0, sizeof(*e));
-+ struct expr *e = xcalloc(1, sizeof(*e));
- e->type = type;
- e->left.expr = ce;
- return e;
-@@ -32,8 +29,7 @@
-
- struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2)
- {
-- struct expr *e = malloc(sizeof(*e));
-- memset(e, 0, sizeof(*e));
-+ struct expr *e = xcalloc(1, sizeof(*e));
- e->type = type;
- e->left.expr = e1;
- e->right.expr = e2;
-@@ -42,8 +38,7 @@
-
- struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2)
- {
-- struct expr *e = malloc(sizeof(*e));
-- memset(e, 0, sizeof(*e));
-+ struct expr *e = xcalloc(1, sizeof(*e));
- e->type = type;
- e->left.sym = s1;
- e->right.sym = s2;
-@@ -64,14 +59,14 @@
- return e2 ? expr_alloc_two(E_OR, e1, e2) : e1;
- }
-
--struct expr *expr_copy(struct expr *org)
-+struct expr *expr_copy(const struct expr *org)
- {
- struct expr *e;
-
- if (!org)
- return NULL;
-
-- e = malloc(sizeof(*org));
-+ e = xmalloc(sizeof(*org));
- memcpy(e, org, sizeof(*org));
- switch (org->type) {
- case E_SYMBOL:
-@@ -348,7 +343,7 @@
- /*
- * e1 || e2 -> ?
- */
--struct expr *expr_join_or(struct expr *e1, struct expr *e2)
-+static struct expr *expr_join_or(struct expr *e1, struct expr *e2)
- {
- struct expr *tmp;
- struct symbol *sym1, *sym2;
-@@ -412,7 +407,7 @@
- return NULL;
- }
-
--struct expr *expr_join_and(struct expr *e1, struct expr *e2)
-+static struct expr *expr_join_and(struct expr *e1, struct expr *e2)
- {
- struct expr *tmp;
- struct symbol *sym1, *sym2;
-@@ -1013,6 +1008,48 @@
- #endif
- }
-
-+static inline struct expr *
-+expr_get_leftmost_symbol(const struct expr *e)
-+{
-+
-+ if (e == NULL)
-+ return NULL;
-+
-+ while (e->type != E_SYMBOL)
-+ e = e->left.expr;
-+
-+ return expr_copy(e);
-+}
-+
-+/*
-+ * Given expression `e1' and `e2', returns the leaf of the longest
-+ * sub-expression of `e1' not containing 'e2.
-+ */
-+struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2)
-+{
-+ struct expr *ret;
-+
-+ switch (e1->type) {
-+ case E_OR:
-+ return expr_alloc_and(
-+ expr_simplify_unmet_dep(e1->left.expr, e2),
-+ expr_simplify_unmet_dep(e1->right.expr, e2));
-+ case E_AND: {
-+ struct expr *e;
-+ e = expr_alloc_and(expr_copy(e1), expr_copy(e2));
-+ e = expr_eliminate_dups(e);
-+ ret = (!expr_eq(e, e1)) ? e1 : NULL;
-+ expr_free(e);
-+ break;
-+ }
-+ default:
-+ ret = e1;
-+ break;
-+ }
-+
-+ return expr_get_leftmost_symbol(ret);
-+}
-+
- void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken)
- {
- if (!e) {
-@@ -1087,7 +1124,7 @@
-
- static void expr_print_file_helper(void *data, struct symbol *sym, const char *str)
- {
-- fwrite(str, strlen(str), 1, data);
-+ xfwrite(str, strlen(str), 1, data);
- }
-
- void expr_fprint(struct expr *e, FILE *out)
-@@ -1097,7 +1134,32 @@
-
- static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str)
- {
-- str_append((struct gstr*)data, str);
-+ struct gstr *gs = (struct gstr*)data;
-+ const char *sym_str = NULL;
-+
-+ if (sym)
-+ sym_str = sym_get_string_value(sym);
-+
-+ if (gs->max_width) {
-+ unsigned extra_length = strlen(str);
-+ const char *last_cr = strrchr(gs->s, '\n');
-+ unsigned last_line_length;
-+
-+ if (sym_str)
-+ extra_length += 4 + strlen(sym_str);
-+
-+ if (!last_cr)
-+ last_cr = gs->s;
-+
-+ last_line_length = strlen(gs->s) - (last_cr - gs->s);
-+
-+ if ((last_line_length + extra_length) > gs->max_width)
-+ str_append(gs, "\\\n");
-+ }
-+
-+ str_append(gs, str);
-+ if (sym && sym->type != S_UNKNOWN)
-+ str_printf(gs, " [=%s]", sym_str);
- }
-
- void expr_gstr_print(struct expr *e, struct gstr *gs)
-diff -Nur uClibc-0.9.33.2/extra/config/expr.h uClibc-git/extra/config/expr.h
---- uClibc-0.9.33.2/extra/config/expr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/expr.h 2014-07-25 20:36:04.853324457 +0200
-@@ -10,7 +10,9 @@
- extern "C" {
- #endif
-
-+#include <assert.h>
- #include <stdio.h>
-+#include "list.h"
- #ifndef __cplusplus
- #include <stdbool.h>
- #endif
-@@ -18,14 +20,10 @@
- struct file {
- struct file *next;
- struct file *parent;
-- char *name;
-+ const char *name;
- int lineno;
-- int flags;
- };
-
--#define FILE_BUSY 0x0001
--#define FILE_SCANNED 0x0002
--
- typedef enum tristate {
- no, mod, yes
- } tristate;
-@@ -83,10 +81,11 @@
- tristate visible;
- int flags;
- struct property *prop;
-+ struct expr_value dir_dep;
- struct expr_value rev_dep;
- };
-
--#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
-+#define for_all_symbols(i, sym) for (i = 0; i < SYMBOL_HASHSIZE; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
-
- #define SYMBOL_CONST 0x0001 /* symbol is const */
- #define SYMBOL_CHECK 0x0008 /* used during dependency checking */
-@@ -107,9 +106,11 @@
- #define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */
- #define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */
-
-+/* choice values need to be set before calculating this symbol value */
-+#define SYMBOL_NEED_SET_CHOICE_VALUES 0x100000
-+
- #define SYMBOL_MAXLENGTH 256
--#define SYMBOL_HASHSIZE 257
--#define SYMBOL_HASHMASK 0xff
-+#define SYMBOL_HASHSIZE 9973
-
- /* A property represent the config options that can be associated
- * with a config "symbol".
-@@ -132,6 +133,7 @@
- P_SELECT, /* select BAR */
- P_RANGE, /* range 7..100 (for a symbol) */
- P_ENV, /* value from environment variable */
-+ P_SYMBOL, /* where a symbol is defined */
- };
-
- struct property {
-@@ -163,6 +165,7 @@
- struct menu *list;
- struct symbol *sym;
- struct property *prompt;
-+ struct expr *visibility;
- struct expr *dep;
- unsigned int flags;
- char *help;
-@@ -174,7 +177,14 @@
- #define MENU_CHANGED 0x0001
- #define MENU_ROOT 0x0002
-
--#ifndef SWIG
-+struct jump_key {
-+ struct list_head entries;
-+ size_t offset;
-+ struct menu *target;
-+ int index;
-+};
-+
-+#define JUMP_NB 9
-
- extern struct file *file_list;
- extern struct file *current_file;
-@@ -190,7 +200,7 @@
- struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2);
- struct expr *expr_alloc_and(struct expr *e1, struct expr *e2);
- struct expr *expr_alloc_or(struct expr *e1, struct expr *e2);
--struct expr *expr_copy(struct expr *org);
-+struct expr *expr_copy(const struct expr *org);
- void expr_free(struct expr *e);
- int expr_eq(struct expr *e1, struct expr *e2);
- void expr_eliminate_eq(struct expr **ep1, struct expr **ep2);
-@@ -205,6 +215,7 @@
- struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2);
- void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2);
- struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym);
-+struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2);
-
- void expr_fprint(struct expr *e, FILE *out);
- struct gstr; /* forward */
-@@ -219,7 +230,6 @@
- {
- return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no);
- }
--#endif
-
- #ifdef __cplusplus
- }
-diff -Nur uClibc-0.9.33.2/extra/config/gconf.c uClibc-git/extra/config/gconf.c
---- uClibc-0.9.33.2/extra/config/gconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/gconf.c 2014-07-25 20:36:04.853324457 +0200
-@@ -10,6 +10,7 @@
- # include <config.h>
- #endif
-
-+#include <stdlib.h>
- #include "lkc.h"
- #include "images.c"
-
-@@ -22,7 +23,6 @@
- #include <string.h>
- #include <unistd.h>
- #include <time.h>
--#include <stdlib.h>
-
- //#define DEBUG
-
-@@ -30,13 +30,16 @@
- SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
- };
-
-+enum {
-+ OPT_NORMAL, OPT_ALL, OPT_PROMPT
-+};
-+
- static gint view_mode = FULL_VIEW;
- static gboolean show_name = TRUE;
- static gboolean show_range = TRUE;
- static gboolean show_value = TRUE;
--static gboolean show_all = FALSE;
--static gboolean show_debug = FALSE;
- static gboolean resizeable = FALSE;
-+static int opt_mode = OPT_NORMAL;
-
- GtkWidget *main_wnd = NULL;
- GtkWidget *tree1_w = NULL; // left frame
-@@ -76,36 +79,7 @@
-
- /* Helping/Debugging Functions */
-
--
--const char *dbg_print_stype(int val)
--{
-- static char buf[256];
--
-- bzero(buf, 256);
--
-- if (val == S_UNKNOWN)
-- strcpy(buf, "unknown");
-- if (val == S_BOOLEAN)
-- strcpy(buf, "boolean");
-- if (val == S_TRISTATE)
-- strcpy(buf, "tristate");
-- if (val == S_INT)
-- strcpy(buf, "int");
-- if (val == S_HEX)
-- strcpy(buf, "hex");
-- if (val == S_STRING)
-- strcpy(buf, "string");
-- if (val == S_OTHER)
-- strcpy(buf, "other");
--
--#ifdef DEBUG
-- printf("%s", buf);
--#endif
--
-- return buf;
--}
--
--const char *dbg_print_flags(int val)
-+const char *dbg_sym_flags(int val)
- {
- static char buf[256];
-
-@@ -131,40 +105,10 @@
- strcat(buf, "auto/");
-
- buf[strlen(buf) - 1] = '\0';
--#ifdef DEBUG
-- printf("%s", buf);
--#endif
-
- return buf;
- }
-
--const char *dbg_print_ptype(int val)
--{
-- static char buf[256];
--
-- bzero(buf, 256);
--
-- if (val == P_UNKNOWN)
-- strcpy(buf, "unknown");
-- if (val == P_PROMPT)
-- strcpy(buf, "prompt");
-- if (val == P_COMMENT)
-- strcpy(buf, "comment");
-- if (val == P_MENU)
-- strcpy(buf, "menu");
-- if (val == P_DEFAULT)
-- strcpy(buf, "default");
-- if (val == P_CHOICE)
-- strcpy(buf, "choice");
--
--#ifdef DEBUG
-- printf("%s", buf);
--#endif
--
-- return buf;
--}
--
--
- void replace_button_icon(GladeXML * xml, GdkDrawable * window,
- GtkStyle * style, gchar * btn_name, gchar ** xpm)
- {
-@@ -189,7 +133,6 @@
- GladeXML *xml;
- GtkWidget *widget;
- GtkTextBuffer *txtbuf;
-- char title[256];
- GtkStyle *style;
-
- xml = glade_xml_new(glade_file, "window1", NULL);
-@@ -266,9 +209,7 @@
- /*"style", PANGO_STYLE_OBLIQUE, */
- NULL);
-
-- sprintf(title, _("uClibc v%s Configuration"),
-- getenv("VERSION"));
-- gtk_window_set_title(GTK_WINDOW(main_wnd), title);
-+ gtk_window_set_title(GTK_WINDOW(main_wnd), rootmenu.prompt->text);
-
- gtk_widget_show(main_wnd);
- }
-@@ -312,7 +253,7 @@
-
- gtk_tree_view_set_model(view, model1);
- gtk_tree_view_set_headers_visible(view, TRUE);
-- gtk_tree_view_set_rules_hint(view, FALSE);
-+ gtk_tree_view_set_rules_hint(view, TRUE);
-
- column = gtk_tree_view_column_new();
- gtk_tree_view_append_column(view, column);
-@@ -344,8 +285,6 @@
- static void renderer_edited(GtkCellRendererText * cell,
- const gchar * path_string,
- const gchar * new_text, gpointer user_data);
--static void renderer_toggled(GtkCellRendererToggle * cellrenderertoggle,
-- gchar * arg1, gpointer user_data);
-
- void init_right_tree(void)
- {
-@@ -357,7 +296,7 @@
-
- gtk_tree_view_set_model(view, model2);
- gtk_tree_view_set_headers_visible(view, TRUE);
-- gtk_tree_view_set_rules_hint(view, FALSE);
-+ gtk_tree_view_set_rules_hint(view, TRUE);
-
- column = gtk_tree_view_column_new();
- gtk_tree_view_append_column(view, column);
-@@ -379,8 +318,6 @@
- "inconsistent", COL_BTNINC,
- "visible", COL_BTNVIS,
- "radio", COL_BTNRAD, NULL);
-- /*g_signal_connect(G_OBJECT(renderer), "toggled",
-- G_CALLBACK(renderer_toggled), NULL); */
- renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
- renderer, FALSE);
-@@ -456,19 +393,9 @@
- GtkTextBuffer *buffer;
- GtkTextIter start, end;
- const char *prompt = _(menu_get_prompt(menu));
-- gchar *name;
-- const char *help;
--
-- help = menu_get_help(menu);
--
-- /* Gettextize if the help text not empty */
-- if ((help != 0) && (help[0] != 0))
-- help = _(help);
-+ struct gstr help = str_new();
-
-- if (menu->sym && menu->sym->name)
-- name = g_strdup_printf(menu->sym->name);
-- else
-- name = g_strdup("");
-+ menu_get_ext_help(menu, &help);
-
- buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
- gtk_text_buffer_get_bounds(buffer, &start, &end);
-@@ -478,14 +405,11 @@
- gtk_text_buffer_get_end_iter(buffer, &end);
- gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1,
- NULL);
-- gtk_text_buffer_insert_at_cursor(buffer, " ", 1);
-- gtk_text_buffer_get_end_iter(buffer, &end);
-- gtk_text_buffer_insert_with_tags(buffer, &end, name, -1, tag1,
-- NULL);
- gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
- gtk_text_buffer_get_end_iter(buffer, &end);
-- gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2,
-+ gtk_text_buffer_insert_with_tags(buffer, &end, str_get(&help), -1, tag2,
- NULL);
-+ str_free(&help);
- }
-
-
-@@ -710,20 +634,29 @@
-
-
- void
--on_show_all_options1_activate(GtkMenuItem * menuitem, gpointer user_data)
-+on_set_option_mode1_activate(GtkMenuItem *menuitem, gpointer user_data)
- {
-- show_all = GTK_CHECK_MENU_ITEM(menuitem)->active;
-+ opt_mode = OPT_NORMAL;
-+ gtk_tree_store_clear(tree2);
-+ display_tree(&rootmenu); /* instead of update_tree to speed-up */
-+}
-
-+
-+void
-+on_set_option_mode2_activate(GtkMenuItem *menuitem, gpointer user_data)
-+{
-+ opt_mode = OPT_ALL;
- gtk_tree_store_clear(tree2);
-- display_tree(&rootmenu); // instead of update_tree to speed-up
-+ display_tree(&rootmenu); /* instead of update_tree to speed-up */
- }
-
-
- void
--on_show_debug_info1_activate(GtkMenuItem * menuitem, gpointer user_data)
-+on_set_option_mode3_activate(GtkMenuItem *menuitem, gpointer user_data)
- {
-- show_debug = GTK_CHECK_MENU_ITEM(menuitem)->active;
-- update_tree(&rootmenu, NULL);
-+ opt_mode = OPT_PROMPT;
-+ gtk_tree_store_clear(tree2);
-+ display_tree(&rootmenu); /* instead of update_tree to speed-up */
- }
-
-
-@@ -732,7 +665,6 @@
- GtkWidget *dialog;
- const gchar *intro_text = _(
- "Welcome to gkc, the GTK+ graphical configuration tool\n"
-- "for uClibc.\n"
- "For each option, a blank box indicates the feature is disabled, a\n"
- "check indicates it is enabled, and a dot indicates that it is to\n"
- "be compiled as a module. Clicking on the box will cycle through the three states.\n"
-@@ -751,7 +683,7 @@
- dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
-- GTK_BUTTONS_CLOSE, intro_text);
-+ GTK_BUTTONS_CLOSE, "%s", intro_text);
- g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
- G_CALLBACK(gtk_widget_destroy),
- GTK_OBJECT(dialog));
-@@ -769,7 +701,7 @@
- dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
-- GTK_BUTTONS_CLOSE, about_text);
-+ GTK_BUTTONS_CLOSE, "%s", about_text);
- g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
- G_CALLBACK(gtk_widget_destroy),
- GTK_OBJECT(dialog));
-@@ -788,7 +720,7 @@
- dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
-- GTK_BUTTONS_CLOSE, license_text);
-+ GTK_BUTTONS_CLOSE, "%s", license_text);
- g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
- G_CALLBACK(gtk_widget_destroy),
- GTK_OBJECT(dialog));
-@@ -820,7 +752,6 @@
- void on_single_clicked(GtkButton * button, gpointer user_data)
- {
- view_mode = SINGLE_VIEW;
-- gtk_paned_set_position(GTK_PANED(hpaned), 0);
- gtk_widget_hide(tree1_w);
- current = &rootmenu;
- display_tree_part();
-@@ -846,7 +777,6 @@
- void on_full_clicked(GtkButton * button, gpointer user_data)
- {
- view_mode = FULL_VIEW;
-- gtk_paned_set_position(GTK_PANED(hpaned), 0);
- gtk_widget_hide(tree1_w);
- if (tree2)
- gtk_tree_store_clear(tree2);
-@@ -900,7 +830,7 @@
- static void change_sym_value(struct menu *menu, gint col)
- {
- struct symbol *sym = menu->sym;
-- tristate oldval, newval;
-+ tristate newval;
-
- if (!sym)
- return;
-@@ -917,7 +847,6 @@
- switch (sym_get_type(sym)) {
- case S_BOOLEAN:
- case S_TRISTATE:
-- oldval = sym_get_tristate_value(sym);
- if (!sym_tristate_within_range(sym, newval))
- newval = yes;
- sym_set_tristate_value(sym, newval);
-@@ -954,35 +883,6 @@
- display_tree_part(); //fixme: keep exp/coll
- }
-
--static void renderer_toggled(GtkCellRendererToggle * cell,
-- gchar * path_string, gpointer user_data)
--{
-- GtkTreePath *path, *sel_path = NULL;
-- GtkTreeIter iter, sel_iter;
-- GtkTreeSelection *sel;
-- struct menu *menu;
--
-- path = gtk_tree_path_new_from_string(path_string);
-- if (!gtk_tree_model_get_iter(model2, &iter, path))
-- return;
--
-- sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree2_w));
-- if (gtk_tree_selection_get_selected(sel, NULL, &sel_iter))
-- sel_path = gtk_tree_model_get_path(model2, &sel_iter);
-- if (!sel_path)
-- goto out1;
-- if (gtk_tree_path_compare(path, sel_path))
-- goto out2;
--
-- gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-- toggle_sym_value(menu);
--
-- out2:
-- gtk_tree_path_free(sel_path);
-- out1:
-- gtk_tree_path_free(path);
--}
--
- static gint column2index(GtkTreeViewColumn * column)
- {
- gint i;
-@@ -1174,9 +1074,12 @@
-
- row[COL_OPTION] =
- g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
-- sym && sym_has_value(sym) ? "(NEW)" : "");
-+ sym && !sym_has_value(sym) ? "(NEW)" : "");
-
-- if (show_all && !menu_is_visible(menu))
-+ if (opt_mode == OPT_ALL && !menu_is_visible(menu))
-+ row[COL_COLOR] = g_strdup("DarkGray");
-+ else if (opt_mode == OPT_PROMPT &&
-+ menu_has_prompt(menu) && !menu_is_visible(menu))
- row[COL_COLOR] = g_strdup("DarkGray");
- else
- row[COL_COLOR] = g_strdup("Black");
-@@ -1235,6 +1138,7 @@
- row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
- if (sym_is_choice(sym))
- break;
-+ /* fall through */
- case S_TRISTATE:
- val = sym_get_tristate_value(sym);
- switch (val) {
-@@ -1373,7 +1277,6 @@
- gboolean valid;
- GtkTreeIter *sibling;
- struct symbol *sym;
-- struct property *prop;
- struct menu *menu1, *menu2;
-
- if (src == &rootmenu)
-@@ -1382,7 +1285,6 @@
- valid = gtk_tree_model_iter_children(model2, child2, dst);
- for (child1 = src->list; child1; child1 = child1->next) {
-
-- prop = child1->prompt;
- sym = child1->sym;
-
- reparse:
-@@ -1399,16 +1301,20 @@
- menu2 ? menu_get_prompt(menu2) : "nil");
- #endif
-
-- if (!menu_is_visible(child1) && !show_all) { // remove node
-+ if ((opt_mode == OPT_NORMAL && !menu_is_visible(child1)) ||
-+ (opt_mode == OPT_PROMPT && !menu_has_prompt(child1)) ||
-+ (opt_mode == OPT_ALL && !menu_get_prompt(child1))) {
-+
-+ /* remove node */
- if (gtktree_iter_find_node(dst, menu1) != NULL) {
- memcpy(&tmp, child2, sizeof(GtkTreeIter));
- valid = gtk_tree_model_iter_next(model2,
- child2);
- gtk_tree_store_remove(tree2, &tmp);
- if (!valid)
-- return; // next parent
-+ return; /* next parent */
- else
-- goto reparse; // next child
-+ goto reparse; /* next child */
- } else
- continue;
- }
-@@ -1477,17 +1383,19 @@
- && (tree == tree2))
- continue;
-
-- if (menu_is_visible(child) || show_all)
-+ if ((opt_mode == OPT_NORMAL && menu_is_visible(child)) ||
-+ (opt_mode == OPT_PROMPT && menu_has_prompt(child)) ||
-+ (opt_mode == OPT_ALL && menu_get_prompt(child)))
- place_node(child, fill_row(child));
- #ifdef DEBUG
- printf("%*c%s: ", indent, ' ', menu_get_prompt(child));
- printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : "");
-- dbg_print_ptype(ptype);
-+ printf("%s", prop_get_type_name(ptype));
- printf(" | ");
- if (sym) {
-- dbg_print_stype(sym->type);
-+ printf("%s", sym_type_name(sym->type));
- printf(" | ");
-- dbg_print_flags(sym->flags);
-+ printf("%s", dbg_sym_flags(sym->flags));
- printf("\n");
- } else
- printf("\n");
-@@ -1499,6 +1407,12 @@
- if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
- || (view_mode == FULL_VIEW)
- || (view_mode == SPLIT_VIEW))*/
-+
-+ /* Change paned position if the view is not in 'split mode' */
-+ if (view_mode == SINGLE_VIEW || view_mode == FULL_VIEW) {
-+ gtk_paned_set_position(GTK_PANED(hpaned), 0);
-+ }
-+
- if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
- || (view_mode == FULL_VIEW)
- || (view_mode == SPLIT_VIEW)) {
-@@ -1557,10 +1471,6 @@
- char *env;
- gchar *glade_file;
-
--#ifndef LKC_DIRECT_LINK
-- kconfig_load();
--#endif
--
- bindtextdomain(PACKAGE, LOCALEDIR);
- bind_textdomain_codeset(PACKAGE, "UTF-8");
- textdomain(PACKAGE);
-@@ -1582,12 +1492,6 @@
- else
- glade_file = g_strconcat(g_get_current_dir(), "/", av[0], ".glade", NULL);
-
-- /* Load the interface and connect signals */
-- init_main_window(glade_file);
-- init_tree_model();
-- init_left_tree();
-- init_right_tree();
--
- /* Conf stuffs */
- if (ac > 1 && av[1][0] == '-') {
- switch (av[1][1]) {
-@@ -1607,6 +1511,12 @@
- fixup_rootmenu(&rootmenu);
- conf_read(NULL);
-
-+ /* Load the interface and connect signals */
-+ init_main_window(glade_file);
-+ init_tree_model();
-+ init_left_tree();
-+ init_right_tree();
-+
- switch (view_mode) {
- case SINGLE_VIEW:
- display_tree_part();
-diff -Nur uClibc-0.9.33.2/extra/config/gconf.glade uClibc-git/extra/config/gconf.glade
---- uClibc-0.9.33.2/extra/config/gconf.glade 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/gconf.glade 2014-07-25 20:36:04.853324457 +0200
-@@ -1,11 +1,10 @@
- <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
--<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
- <glade-interface>
-
- <widget class="GtkWindow" id="window1">
- <property name="visible">True</property>
-- <property name="title" translatable="yes">Gtk uClibc Configurator</property>
-+ <property name="title" translatable="yes">Gtk uCLibc Configurator</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
-@@ -190,26 +189,40 @@
- </child>
-
- <child>
-- <widget class="GtkCheckMenuItem" id="show_all_options1">
-+ <widget class="GtkRadioMenuItem" id="set_option_mode1">
-+ <property name="visible">True</property>
-+ <property name="tooltip" translatable="yes">Show normal options</property>
-+ <property name="label" translatable="yes">Show normal options</property>
-+ <property name="use_underline">True</property>
-+ <property name="active">True</property>
-+ <signal name="activate" handler="on_set_option_mode1_activate"/>
-+ </widget>
-+ </child>
-+
-+ <child>
-+ <widget class="GtkRadioMenuItem" id="set_option_mode2">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Show all options</property>
- <property name="label" translatable="yes">Show all _options</property>
- <property name="use_underline">True</property>
- <property name="active">False</property>
-- <signal name="activate" handler="on_show_all_options1_activate"/>
-+ <property name="group">set_option_mode1</property>
-+ <signal name="activate" handler="on_set_option_mode2_activate"/>
- </widget>
- </child>
-
- <child>
-- <widget class="GtkCheckMenuItem" id="show_debug_info1">
-+ <widget class="GtkRadioMenuItem" id="set_option_mode3">
- <property name="visible">True</property>
-- <property name="tooltip" translatable="yes">Show masked options</property>
-- <property name="label" translatable="yes">Show _debug info</property>
-+ <property name="tooltip" translatable="yes">Show all options with prompts</property>
-+ <property name="label" translatable="yes">Show all prompt options</property>
- <property name="use_underline">True</property>
- <property name="active">False</property>
-- <signal name="activate" handler="on_show_debug_info1_activate"/>
-+ <property name="group">set_option_mode1</property>
-+ <signal name="activate" handler="on_set_option_mode3_activate"/>
- </widget>
- </child>
-+
- </widget>
- </child>
- </widget>
-@@ -547,7 +560,7 @@
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
-- <property name="enable_search">True</property>
-+ <property name="enable_search">False</property>
- <signal name="cursor_changed" handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 15:58:22 GMT"/>
- <signal name="button_press_event" handler="on_treeview1_button_press_event" last_modification_time="Sun, 12 Jan 2003 16:03:52 GMT"/>
- <signal name="key_press_event" handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 16:11:44 GMT"/>
-@@ -582,7 +595,7 @@
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
-- <property name="enable_search">True</property>
-+ <property name="enable_search">False</property>
- <signal name="cursor_changed" handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 15:57:55 GMT"/>
- <signal name="button_press_event" handler="on_treeview2_button_press_event" last_modification_time="Sun, 12 Jan 2003 15:57:58 GMT"/>
- <signal name="key_press_event" handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 15:58:01 GMT"/>
-diff -Nur uClibc-0.9.33.2/extra/config/.gitignore uClibc-git/extra/config/.gitignore
---- uClibc-0.9.33.2/extra/config/.gitignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/.gitignore 2014-07-25 20:36:04.853324457 +0200
-@@ -2,18 +2,21 @@
- # Generated files
- #
- config*
--lex.*.c
-+*.lex.c
- *.tab.c
- *.tab.h
- zconf.hash.c
- *.moc
--lkc_defs.h
-+gconf.glade.h
-+*.pot
-+*.mo
-
- #
- # configuration programs
- #
- conf
- mconf
-+nconf
- qconf
- gconf
- kxgettext
-diff -Nur uClibc-0.9.33.2/extra/config/kconfig-language.txt uClibc-git/extra/config/kconfig-language.txt
---- uClibc-0.9.33.2/extra/config/kconfig-language.txt 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/kconfig-language.txt 2014-07-25 20:36:04.853324457 +0200
-@@ -112,7 +112,13 @@
- (no prompts anywhere) and for symbols with no dependencies.
- That will limit the usefulness but on the other hand avoid
- the illegal configurations all over.
-- kconfig should one day warn about such things.
-+
-+- limiting menu display: "visible if" <expr>
-+ This attribute is only applicable to menu blocks, if the condition is
-+ false, the menu block is not displayed to the user (the symbols
-+ contained there can still be selected by other symbols, though). It is
-+ similar to a conditional "prompt" attribute for individual menu
-+ entries. Default value of "visible" is true.
-
- - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
- This allows to limit the range of possible input values for int
-@@ -181,7 +187,7 @@
- (7) Returns the result of max(/expr/, /expr/).
-
- An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
--respectively for calculations). A menu entry becomes visible when it's
-+respectively for calculations). A menu entry becomes visible when its
- expression evaluates to 'm' or 'y'.
-
- There are two types of symbols: constant and non-constant symbols.
-@@ -268,7 +274,7 @@
-
- choices:
-
-- "choice"
-+ "choice" [symbol]
- <choice options>
- <choice block>
- "endchoice"
-@@ -282,6 +288,10 @@
- can be compiled as modules.
- A choice accepts another option "optional", which allows to set the
- choice to 'n' and no entry needs to be selected.
-+If no [symbol] is associated with a choice, then you can not have multiple
-+definitions of that choice. If a [symbol] is associated to the choice,
-+then you may define the same choice (ie. with the same entries) in another
-+place.
-
- comment:
-
-@@ -300,7 +310,8 @@
- "endmenu"
-
- This defines a menu block, see "Menu structure" above for more
--information. The only possible options are dependencies.
-+information. The only possible options are dependencies and "visible"
-+attributes.
-
- if:
-
-@@ -322,7 +333,8 @@
- "mainmenu" <prompt>
-
- This sets the config program's title bar if the config program chooses
--to use it.
-+to use it. It should be placed at the top of the configuration, before any
-+other statement.
-
-
- Kconfig hints
-@@ -376,4 +388,3 @@
- depends on BAR && m
-
- limits FOO to module (=m) or disabled (=n).
--
-diff -Nur uClibc-0.9.33.2/extra/config/kconfig_load.c uClibc-git/extra/config/kconfig_load.c
---- uClibc-0.9.33.2/extra/config/kconfig_load.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/kconfig_load.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,35 +0,0 @@
--#include <dlfcn.h>
--#include <stdio.h>
--#include <stdlib.h>
--
--#include "lkc.h"
--
--#define P(name,type,arg) type (*name ## _p) arg
--#include "lkc_proto.h"
--#undef P
--
--void kconfig_load(void)
--{
-- void *handle;
-- char *error;
--
-- handle = dlopen("./libkconfig.so", RTLD_LAZY);
-- if (!handle) {
-- handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY);
-- if (!handle) {
-- fprintf(stderr, "%s\n", dlerror());
-- exit(1);
-- }
-- }
--
--#define P(name,type,arg) \
--{ \
-- name ## _p = dlsym(handle, #name); \
-- if ((error = dlerror())) { \
-- fprintf(stderr, "%s\n", error); \
-- exit(1); \
-- } \
--}
--#include "lkc_proto.h"
--#undef P
--}
-Binärdateien uClibc-0.9.33.2/extra/config/kconfig-to-uclibc.patch.gz und uClibc-git/extra/config/kconfig-to-uclibc.patch.gz sind verschieden.
-Binärdateien uClibc-0.9.33.2/extra/config/kconfig-to-uclibc.tar.gz und uClibc-git/extra/config/kconfig-to-uclibc.tar.gz sind verschieden.
-diff -Nur uClibc-0.9.33.2/extra/config/kxgettext.c uClibc-git/extra/config/kxgettext.c
---- uClibc-0.9.33.2/extra/config/kxgettext.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/kxgettext.c 2014-07-25 20:36:04.853324457 +0200
-@@ -7,7 +7,6 @@
- #include <stdlib.h>
- #include <string.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
- static char *escape(const char* text, char *bf, int len)
-@@ -43,6 +42,10 @@
- ++text;
- goto next;
- }
-+ else if (*text == '\\') {
-+ *bfp++ = '\\';
-+ len--;
-+ }
- *bfp++ = *text++;
- next:
- --len;
-@@ -59,11 +62,11 @@
-
- struct file_line {
- struct file_line *next;
-- char* file;
-- int lineno;
-+ const char *file;
-+ int lineno;
- };
-
--static struct file_line *file_line__new(char *file, int lineno)
-+static struct file_line *file_line__new(const char *file, int lineno)
- {
- struct file_line *self = malloc(sizeof(*self));
-
-@@ -86,7 +89,8 @@
-
- static struct message *message__list;
-
--static struct message *message__new(const char *msg, char *option, char *file, int lineno)
-+static struct message *message__new(const char *msg, char *option,
-+ const char *file, int lineno)
- {
- struct message *self = malloc(sizeof(*self));
-
-@@ -126,7 +130,8 @@
- return m;
- }
-
--static int message__add_file_line(struct message *self, char *file, int lineno)
-+static int message__add_file_line(struct message *self, const char *file,
-+ int lineno)
- {
- int rc = -1;
- struct file_line *fl = file_line__new(file, lineno);
-@@ -141,7 +146,8 @@
- return rc;
- }
-
--static int message__add(const char *msg, char *option, char *file, int lineno)
-+static int message__add(const char *msg, char *option, const char *file,
-+ int lineno)
- {
- int rc = 0;
- char bf[16384];
-@@ -162,7 +168,7 @@
- return rc;
- }
-
--void menu_build_message_list(struct menu *menu)
-+static void menu_build_message_list(struct menu *menu)
- {
- struct menu *child;
-
-@@ -207,7 +213,7 @@
- "msgstr \"\"\n", self->msg);
- }
-
--void menu__xgettext(void)
-+static void menu__xgettext(void)
- {
- struct message *m = message__list;
-
-diff -Nur uClibc-0.9.33.2/extra/config/lex.zconf.c_shipped uClibc-git/extra/config/lex.zconf.c_shipped
---- uClibc-0.9.33.2/extra/config/lex.zconf.c_shipped 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lex.zconf.c_shipped 1970-01-01 01:00:00.000000000 +0100
-@@ -1,2416 +0,0 @@
--
--#line 3 "scripts/kconfig/lex.zconf.c"
--
--#define YY_INT_ALIGNED short int
--
--/* A lexical scanner generated by flex */
--
--#define yy_create_buffer zconf_create_buffer
--#define yy_delete_buffer zconf_delete_buffer
--#define yy_flex_debug zconf_flex_debug
--#define yy_init_buffer zconf_init_buffer
--#define yy_flush_buffer zconf_flush_buffer
--#define yy_load_buffer_state zconf_load_buffer_state
--#define yy_switch_to_buffer zconf_switch_to_buffer
--#define yyin zconfin
--#define yyleng zconfleng
--#define yylex zconflex
--#define yylineno zconflineno
--#define yyout zconfout
--#define yyrestart zconfrestart
--#define yytext zconftext
--#define yywrap zconfwrap
--#define yyalloc zconfalloc
--#define yyrealloc zconfrealloc
--#define yyfree zconffree
--
--#define FLEX_SCANNER
--#define YY_FLEX_MAJOR_VERSION 2
--#define YY_FLEX_MINOR_VERSION 5
--#define YY_FLEX_SUBMINOR_VERSION 35
--#if YY_FLEX_SUBMINOR_VERSION > 0
--#define FLEX_BETA
--#endif
--
--/* First, we deal with platform-specific or compiler-specific issues. */
--
--/* begin standard C headers. */
--#include <stdio.h>
--#include <string.h>
--#include <errno.h>
--#include <stdlib.h>
--
--/* end standard C headers. */
--
--/* flex integer type definitions */
--
--#ifndef FLEXINT_H
--#define FLEXINT_H
--
--/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
--
--#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
--
--/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
-- * if you want the limit (max/min) macros for int types.
-- */
--#ifndef __STDC_LIMIT_MACROS
--#define __STDC_LIMIT_MACROS 1
--#endif
--
--#include <inttypes.h>
--typedef int8_t flex_int8_t;
--typedef uint8_t flex_uint8_t;
--typedef int16_t flex_int16_t;
--typedef uint16_t flex_uint16_t;
--typedef int32_t flex_int32_t;
--typedef uint32_t flex_uint32_t;
--#else
--typedef signed char flex_int8_t;
--typedef short int flex_int16_t;
--typedef int flex_int32_t;
--typedef unsigned char flex_uint8_t;
--typedef unsigned short int flex_uint16_t;
--typedef unsigned int flex_uint32_t;
--
--/* Limits of integral types. */
--#ifndef INT8_MIN
--#define INT8_MIN (-128)
--#endif
--#ifndef INT16_MIN
--#define INT16_MIN (-32767-1)
--#endif
--#ifndef INT32_MIN
--#define INT32_MIN (-2147483647-1)
--#endif
--#ifndef INT8_MAX
--#define INT8_MAX (127)
--#endif
--#ifndef INT16_MAX
--#define INT16_MAX (32767)
--#endif
--#ifndef INT32_MAX
--#define INT32_MAX (2147483647)
--#endif
--#ifndef UINT8_MAX
--#define UINT8_MAX (255U)
--#endif
--#ifndef UINT16_MAX
--#define UINT16_MAX (65535U)
--#endif
--#ifndef UINT32_MAX
--#define UINT32_MAX (4294967295U)
--#endif
--
--#endif /* ! C99 */
--
--#endif /* ! FLEXINT_H */
--
--#ifdef __cplusplus
--
--/* The "const" storage-class-modifier is valid. */
--#define YY_USE_CONST
--
--#else /* ! __cplusplus */
--
--/* C99 requires __STDC__ to be defined as 1. */
--#if defined (__STDC__)
--
--#define YY_USE_CONST
--
--#endif /* defined (__STDC__) */
--#endif /* ! __cplusplus */
--
--#ifdef YY_USE_CONST
--#define yyconst const
--#else
--#define yyconst
--#endif
--
--/* Returned upon end-of-file. */
--#define YY_NULL 0
--
--/* Promotes a possibly negative, possibly signed char to an unsigned
-- * integer for use as an array index. If the signed char is negative,
-- * we want to instead treat it as an 8-bit unsigned char, hence the
-- * double cast.
-- */
--#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
--
--/* Enter a start condition. This macro really ought to take a parameter,
-- * but we do it the disgusting crufty way forced on us by the ()-less
-- * definition of BEGIN.
-- */
--#define BEGIN (yy_start) = 1 + 2 *
--
--/* Translate the current start state into a value that can be later handed
-- * to BEGIN to return to the state. The YYSTATE alias is for lex
-- * compatibility.
-- */
--#define YY_START (((yy_start) - 1) / 2)
--#define YYSTATE YY_START
--
--/* Action number for EOF rule of a given start state. */
--#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
--
--/* Special action meaning "start processing a new file". */
--#define YY_NEW_FILE zconfrestart(zconfin )
--
--#define YY_END_OF_BUFFER_CHAR 0
--
--/* Size of default input buffer. */
--#ifndef YY_BUF_SIZE
--#define YY_BUF_SIZE 16384
--#endif
--
--/* The state buf must be large enough to hold one state per character in the main buffer.
-- */
--#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
--
--#ifndef YY_TYPEDEF_YY_BUFFER_STATE
--#define YY_TYPEDEF_YY_BUFFER_STATE
--typedef struct yy_buffer_state *YY_BUFFER_STATE;
--#endif
--
--extern int zconfleng;
--
--extern FILE *zconfin, *zconfout;
--
--#define EOB_ACT_CONTINUE_SCAN 0
--#define EOB_ACT_END_OF_FILE 1
--#define EOB_ACT_LAST_MATCH 2
--
-- #define YY_LESS_LINENO(n)
--
--/* Return all but the first "n" matched characters back to the input stream. */
--#define yyless(n) \
-- do \
-- { \
-- /* Undo effects of setting up zconftext. */ \
-- int yyless_macro_arg = (n); \
-- YY_LESS_LINENO(yyless_macro_arg);\
-- *yy_cp = (yy_hold_char); \
-- YY_RESTORE_YY_MORE_OFFSET \
-- (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-- YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
-- } \
-- while ( 0 )
--
--#define unput(c) yyunput( c, (yytext_ptr) )
--
--#ifndef YY_TYPEDEF_YY_SIZE_T
--#define YY_TYPEDEF_YY_SIZE_T
--typedef size_t yy_size_t;
--#endif
--
--#ifndef YY_STRUCT_YY_BUFFER_STATE
--#define YY_STRUCT_YY_BUFFER_STATE
--struct yy_buffer_state
-- {
-- FILE *yy_input_file;
--
-- char *yy_ch_buf; /* input buffer */
-- char *yy_buf_pos; /* current position in input buffer */
--
-- /* Size of input buffer in bytes, not including room for EOB
-- * characters.
-- */
-- yy_size_t yy_buf_size;
--
-- /* Number of characters read into yy_ch_buf, not including EOB
-- * characters.
-- */
-- int yy_n_chars;
--
-- /* Whether we "own" the buffer - i.e., we know we created it,
-- * and can realloc() it to grow it, and should free() it to
-- * delete it.
-- */
-- int yy_is_our_buffer;
--
-- /* Whether this is an "interactive" input source; if so, and
-- * if we're using stdio for input, then we want to use getc()
-- * instead of fread(), to make sure we stop fetching input after
-- * each newline.
-- */
-- int yy_is_interactive;
--
-- /* Whether we're considered to be at the beginning of a line.
-- * If so, '^' rules will be active on the next match, otherwise
-- * not.
-- */
-- int yy_at_bol;
--
-- int yy_bs_lineno; /**< The line count. */
-- int yy_bs_column; /**< The column count. */
--
-- /* Whether to try to fill the input buffer when we reach the
-- * end of it.
-- */
-- int yy_fill_buffer;
--
-- int yy_buffer_status;
--
--#define YY_BUFFER_NEW 0
--#define YY_BUFFER_NORMAL 1
-- /* When an EOF's been seen but there's still some text to process
-- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-- * shouldn't try reading from the input source any more. We might
-- * still have a bunch of tokens to match, though, because of
-- * possible backing-up.
-- *
-- * When we actually see the EOF, we change the status to "new"
-- * (via zconfrestart()), so that the user can continue scanning by
-- * just pointing zconfin at a new input file.
-- */
--#define YY_BUFFER_EOF_PENDING 2
--
-- };
--#endif /* !YY_STRUCT_YY_BUFFER_STATE */
--
--/* Stack of input buffers. */
--static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
--static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
--static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
--
--/* We provide macros for accessing buffer states in case in the
-- * future we want to put the buffer states in a more general
-- * "scanner state".
-- *
-- * Returns the top of the stack, or NULL.
-- */
--#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-- ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-- : NULL)
--
--/* Same as previous macro, but useful when we know that the buffer stack is not
-- * NULL or when we need an lvalue. For internal use only.
-- */
--#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
--
--/* yy_hold_char holds the character lost when zconftext is formed. */
--static char yy_hold_char;
--static int yy_n_chars; /* number of characters read into yy_ch_buf */
--int zconfleng;
--
--/* Points to current character in buffer. */
--static char *yy_c_buf_p = (char *) 0;
--static int yy_init = 0; /* whether we need to initialize */
--static int yy_start = 0; /* start state number */
--
--/* Flag which is used to allow zconfwrap()'s to do buffer switches
-- * instead of setting up a fresh zconfin. A bit of a hack ...
-- */
--static int yy_did_buffer_switch_on_eof;
--
--void zconfrestart (FILE *input_file );
--void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer );
--YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size );
--void zconf_delete_buffer (YY_BUFFER_STATE b );
--void zconf_flush_buffer (YY_BUFFER_STATE b );
--void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer );
--void zconfpop_buffer_state (void );
--
--static void zconfensure_buffer_stack (void );
--static void zconf_load_buffer_state (void );
--static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file );
--
--#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
--
--YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size );
--YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str );
--YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len );
--
--void *zconfalloc (yy_size_t );
--void *zconfrealloc (void *,yy_size_t );
--void zconffree (void * );
--
--#define yy_new_buffer zconf_create_buffer
--
--#define yy_set_interactive(is_interactive) \
-- { \
-- if ( ! YY_CURRENT_BUFFER ){ \
-- zconfensure_buffer_stack (); \
-- YY_CURRENT_BUFFER_LVALUE = \
-- zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-- } \
-- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-- }
--
--#define yy_set_bol(at_bol) \
-- { \
-- if ( ! YY_CURRENT_BUFFER ){\
-- zconfensure_buffer_stack (); \
-- YY_CURRENT_BUFFER_LVALUE = \
-- zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-- } \
-- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-- }
--
--#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
--
--/* Begin user sect3 */
--
--#define zconfwrap(n) 1
--#define YY_SKIP_YYWRAP
--
--typedef unsigned char YY_CHAR;
--
--FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
--
--typedef int yy_state_type;
--
--extern int zconflineno;
--
--int zconflineno = 1;
--
--extern char *zconftext;
--#define yytext_ptr zconftext
--static yyconst flex_int16_t yy_nxt[][17] =
-- {
-- {
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0
-- },
--
-- {
-- 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
-- 12, 12, 12, 12, 12, 12, 12
-- },
--
-- {
-- 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
-- 12, 12, 12, 12, 12, 12, 12
-- },
--
-- {
-- 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
-- 16, 16, 16, 18, 16, 16, 16
-- },
--
-- {
-- 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
-- 16, 16, 16, 18, 16, 16, 16
--
-- },
--
-- {
-- 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
-- 19, 19, 19, 19, 19, 19, 19
-- },
--
-- {
-- 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
-- 19, 19, 19, 19, 19, 19, 19
-- },
--
-- {
-- 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
-- 22, 22, 22, 22, 22, 25, 22
-- },
--
-- {
-- 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
-- 22, 22, 22, 22, 22, 25, 22
-- },
--
-- {
-- 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
-- 33, 34, 35, 35, 36, 37, 38
--
-- },
--
-- {
-- 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
-- 33, 34, 35, 35, 36, 37, 38
-- },
--
-- {
-- -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-- -11, -11, -11, -11, -11, -11, -11
-- },
--
-- {
-- 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-- -12, -12, -12, -12, -12, -12, -12
-- },
--
-- {
-- 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
-- -13, -13, -13, -13, -13, -13, -13
-- },
--
-- {
-- 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-- -14, -14, -14, -14, -14, -14, -14
--
-- },
--
-- {
-- 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-- 42, 42, 42, 42, 42, 42, 42
-- },
--
-- {
-- 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-- -16, -16, -16, -16, -16, -16, -16
-- },
--
-- {
-- 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-- -17, -17, -17, -17, -17, -17, -17
-- },
--
-- {
-- 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-- -18, -18, -18, 44, -18, -18, -18
-- },
--
-- {
-- 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
-- 45, 45, 45, 45, 45, 45, 45
--
-- },
--
-- {
-- 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
-- -20, -20, -20, -20, -20, -20, -20
-- },
--
-- {
-- 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
-- 48, 48, 48, 48, 48, 48, 48
-- },
--
-- {
-- 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
-- 49, 49, 49, 49, 49, -22, 49
-- },
--
-- {
-- 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-- -23, -23, -23, -23, -23, -23, -23
-- },
--
-- {
-- 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-- -24, -24, -24, -24, -24, -24, -24
--
-- },
--
-- {
-- 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
-- 51, 51, 51, 51, 51, 51, 51
-- },
--
-- {
-- 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-- -26, -26, -26, -26, -26, -26, -26
-- },
--
-- {
-- 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-- -27, -27, -27, -27, -27, -27, -27
-- },
--
-- {
-- 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-- -28, -28, -28, -28, 53, -28, -28
-- },
--
-- {
-- 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-- -29, -29, -29, -29, -29, -29, -29
--
-- },
--
-- {
-- 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
-- 54, 54, 54, 54, 54, 54, 54
-- },
--
-- {
-- 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
-- -31, -31, -31, -31, -31, -31, -31
-- },
--
-- {
-- 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-- -32, -32, -32, -32, -32, -32, -32
-- },
--
-- {
-- 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-- -33, -33, -33, -33, -33, -33, -33
-- },
--
-- {
-- 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-- -34, 56, 57, 57, -34, -34, -34
--
-- },
--
-- {
-- 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-- -35, 57, 57, 57, -35, -35, -35
-- },
--
-- {
-- 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-- -36, -36, -36, -36, -36, -36, -36
-- },
--
-- {
-- 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
-- -37, -37, -37, -37, -37, -37, -37
-- },
--
-- {
-- 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-- -38, -38, -38, -38, -38, -38, 59
-- },
--
-- {
-- 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
-- -39, -39, -39, -39, -39, -39, -39
--
-- },
--
-- {
-- 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-- -40, -40, -40, -40, -40, -40, -40
-- },
--
-- {
-- 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-- 42, 42, 42, 42, 42, 42, 42
-- },
--
-- {
-- 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-- 42, 42, 42, 42, 42, 42, 42
-- },
--
-- {
-- 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-- -43, -43, -43, -43, -43, -43, -43
-- },
--
-- {
-- 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-- -44, -44, -44, 44, -44, -44, -44
--
-- },
--
-- {
-- 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
-- 45, 45, 45, 45, 45, 45, 45
-- },
--
-- {
-- 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
-- -46, -46, -46, -46, -46, -46, -46
-- },
--
-- {
-- 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
-- 48, 48, 48, 48, 48, 48, 48
-- },
--
-- {
-- 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-- -48, -48, -48, -48, -48, -48, -48
-- },
--
-- {
-- 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
-- 49, 49, 49, 49, 49, -49, 49
--
-- },
--
-- {
-- 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-- -50, -50, -50, -50, -50, -50, -50
-- },
--
-- {
-- 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
-- -51, -51, -51, -51, -51, -51, -51
-- },
--
-- {
-- 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-- -52, -52, -52, -52, -52, -52, -52
-- },
--
-- {
-- 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-- -53, -53, -53, -53, -53, -53, -53
-- },
--
-- {
-- 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
-- 54, 54, 54, 54, 54, 54, 54
--
-- },
--
-- {
-- 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-- -55, -55, -55, -55, -55, -55, -55
-- },
--
-- {
-- 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-- -56, 60, 57, 57, -56, -56, -56
-- },
--
-- {
-- 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-- -57, 57, 57, 57, -57, -57, -57
-- },
--
-- {
-- 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-- -58, -58, -58, -58, -58, -58, -58
-- },
--
-- {
-- 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-- -59, -59, -59, -59, -59, -59, -59
--
-- },
--
-- {
-- 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-- -60, 57, 57, 57, -60, -60, -60
-- },
--
-- } ;
--
--static yy_state_type yy_get_previous_state (void );
--static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
--static int yy_get_next_buffer (void );
--static void yy_fatal_error (yyconst char msg[] );
--
--/* Done after the current pattern has been matched and before the
-- * corresponding action - sets up zconftext.
-- */
--#define YY_DO_BEFORE_ACTION \
-- (yytext_ptr) = yy_bp; \
-- zconfleng = (size_t) (yy_cp - yy_bp); \
-- (yy_hold_char) = *yy_cp; \
-- *yy_cp = '\0'; \
-- (yy_c_buf_p) = yy_cp;
--
--#define YY_NUM_RULES 33
--#define YY_END_OF_BUFFER 34
--/* This struct is not used in this scanner,
-- but its presence is necessary. */
--struct yy_trans_info
-- {
-- flex_int32_t yy_verify;
-- flex_int32_t yy_nxt;
-- };
--static yyconst flex_int16_t yy_accept[61] =
-- { 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 34, 5, 4, 2, 3, 7, 8, 6, 32, 29,
-- 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
-- 22, 11, 12, 19, 19, 14, 22, 22, 4, 2,
-- 3, 3, 1, 6, 32, 29, 31, 30, 24, 23,
-- 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
-- } ;
--
--static yyconst flex_int32_t yy_ec[256] =
-- { 0,
-- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
-- 10, 1, 1, 1, 11, 12, 12, 13, 13, 13,
-- 13, 13, 13, 13, 13, 13, 13, 1, 1, 1,
-- 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
-- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-- 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
--
-- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-- 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
--
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1
-- } ;
--
--extern int zconf_flex_debug;
--int zconf_flex_debug = 0;
--
--/* The intent behind this definition is that it'll catch
-- * any uses of REJECT which flex missed.
-- */
--#define REJECT reject_used_but_not_detected
--#define yymore() yymore_used_but_not_detected
--#define YY_MORE_ADJ 0
--#define YY_RESTORE_YY_MORE_OFFSET
--char *zconftext;
--#define YY_NO_INPUT 1
--
--/*
-- * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
-- * Released under the terms of the GNU GPL v2.0.
-- */
--
--#include <limits.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
--
--#define LKC_DIRECT_LINK
--#include "lkc.h"
--
--#define START_STRSIZE 16
--
--static struct {
-- struct file *file;
-- int lineno;
--} current_pos;
--
--static char *text;
--static int text_size, text_asize;
--
--struct buffer {
-- struct buffer *parent;
-- YY_BUFFER_STATE state;
--};
--
--struct buffer *current_buf;
--
--static int last_ts, first_ts;
--
--static void zconf_endhelp(void);
--static void zconf_endfile(void);
--
--void new_string(void)
--{
-- text = malloc(START_STRSIZE);
-- text_asize = START_STRSIZE;
-- text_size = 0;
-- *text = 0;
--}
--
--void append_string(const char *str, int size)
--{
-- int new_size = text_size + size + 1;
-- if (new_size > text_asize) {
-- new_size += START_STRSIZE - 1;
-- new_size &= -START_STRSIZE;
-- text = realloc(text, new_size);
-- text_asize = new_size;
-- }
-- memcpy(text + text_size, str, size);
-- text_size += size;
-- text[text_size] = 0;
--}
--
--void alloc_string(const char *str, int size)
--{
-- text = malloc(size + 1);
-- memcpy(text, str, size);
-- text[size] = 0;
--}
--
--#define INITIAL 0
--#define COMMAND 1
--#define HELP 2
--#define STRING 3
--#define PARAM 4
--
--#ifndef YY_NO_UNISTD_H
--/* Special case for "unistd.h", since it is non-ANSI. We include it way
-- * down here because we want the user's section 1 to have been scanned first.
-- * The user has a chance to override it with an option.
-- */
--#include <unistd.h>
--#endif
--
--#ifndef YY_EXTRA_TYPE
--#define YY_EXTRA_TYPE void *
--#endif
--
--static int yy_init_globals (void );
--
--/* Accessor methods to globals.
-- These are made visible to non-reentrant scanners for convenience. */
--
--int zconflex_destroy (void );
--
--int zconfget_debug (void );
--
--void zconfset_debug (int debug_flag );
--
--YY_EXTRA_TYPE zconfget_extra (void );
--
--void zconfset_extra (YY_EXTRA_TYPE user_defined );
--
--FILE *zconfget_in (void );
--
--void zconfset_in (FILE * in_str );
--
--FILE *zconfget_out (void );
--
--void zconfset_out (FILE * out_str );
--
--int zconfget_leng (void );
--
--char *zconfget_text (void );
--
--int zconfget_lineno (void );
--
--void zconfset_lineno (int line_number );
--
--/* Macros after this point can all be overridden by user definitions in
-- * section 1.
-- */
--
--#ifndef YY_SKIP_YYWRAP
--#ifdef __cplusplus
--extern "C" int zconfwrap (void );
--#else
--extern int zconfwrap (void );
--#endif
--#endif
--
-- static void yyunput (int c,char *buf_ptr );
--
--#ifndef yytext_ptr
--static void yy_flex_strncpy (char *,yyconst char *,int );
--#endif
--
--#ifdef YY_NEED_STRLEN
--static int yy_flex_strlen (yyconst char * );
--#endif
--
--#ifndef YY_NO_INPUT
--
--#ifdef __cplusplus
--static int yyinput (void );
--#else
--static int input (void );
--#endif
--
--#endif
--
--/* Amount of stuff to slurp up with each read. */
--#ifndef YY_READ_BUF_SIZE
--#define YY_READ_BUF_SIZE 8192
--#endif
--
--/* Copy whatever the last rule matched to the standard output. */
--#ifndef ECHO
--/* This used to be an fputs(), but since the string might contain NUL's,
-- * we now use fwrite().
-- */
--#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
--#endif
--
--/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
-- * is returned in "result".
-- */
--#ifndef YY_INPUT
--#define YY_INPUT(buf,result,max_size) \
-- errno=0; \
-- while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
-- { \
-- if( errno != EINTR) \
-- { \
-- YY_FATAL_ERROR( "input in flex scanner failed" ); \
-- break; \
-- } \
-- errno=0; \
-- clearerr(zconfin); \
-- }\
--\
--
--#endif
--
--/* No semi-colon after return; correct usage is to write "yyterminate();" -
-- * we don't want an extra ';' after the "return" because that will cause
-- * some compilers to complain about unreachable statements.
-- */
--#ifndef yyterminate
--#define yyterminate() return YY_NULL
--#endif
--
--/* Number of entries by which start-condition stack grows. */
--#ifndef YY_START_STACK_INCR
--#define YY_START_STACK_INCR 25
--#endif
--
--/* Report a fatal error. */
--#ifndef YY_FATAL_ERROR
--#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
--#endif
--
--/* end tables serialization structures and prototypes */
--
--/* Default declaration of generated scanner - a define so the user can
-- * easily add parameters.
-- */
--#ifndef YY_DECL
--#define YY_DECL_IS_OURS 1
--
--extern int zconflex (void);
--
--#define YY_DECL int zconflex (void)
--#endif /* !YY_DECL */
--
--/* Code executed at the beginning of each rule, after zconftext and zconfleng
-- * have been set up.
-- */
--#ifndef YY_USER_ACTION
--#define YY_USER_ACTION
--#endif
--
--/* Code executed at the end of each rule. */
--#ifndef YY_BREAK
--#define YY_BREAK break;
--#endif
--
--#define YY_RULE_SETUP \
-- YY_USER_ACTION
--
--/** The main scanner function which does all the work.
-- */
--YY_DECL
--{
-- register yy_state_type yy_current_state;
-- register char *yy_cp, *yy_bp;
-- register int yy_act;
--
-- int str = 0;
-- int ts, i;
--
-- if ( !(yy_init) )
-- {
-- (yy_init) = 1;
--
--#ifdef YY_USER_INIT
-- YY_USER_INIT;
--#endif
--
-- if ( ! (yy_start) )
-- (yy_start) = 1; /* first start state */
--
-- if ( ! zconfin )
-- zconfin = stdin;
--
-- if ( ! zconfout )
-- zconfout = stdout;
--
-- if ( ! YY_CURRENT_BUFFER ) {
-- zconfensure_buffer_stack ();
-- YY_CURRENT_BUFFER_LVALUE =
-- zconf_create_buffer(zconfin,YY_BUF_SIZE );
-- }
--
-- zconf_load_buffer_state( );
-- }
--
-- while ( 1 ) /* loops until end-of-file is reached */
-- {
-- yy_cp = (yy_c_buf_p);
--
-- /* Support of zconftext. */
-- *yy_cp = (yy_hold_char);
--
-- /* yy_bp points to the position in yy_ch_buf of the start of
-- * the current run.
-- */
-- yy_bp = yy_cp;
--
-- yy_current_state = (yy_start);
--yy_match:
-- while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
-- ++yy_cp;
--
-- yy_current_state = -yy_current_state;
--
--yy_find_action:
-- yy_act = yy_accept[yy_current_state];
--
-- YY_DO_BEFORE_ACTION;
--
--do_action: /* This label is used only to access EOF actions. */
--
-- switch ( yy_act )
-- { /* beginning of action switch */
--case 1:
--/* rule 1 can match eol */
--case 2:
--/* rule 2 can match eol */
--YY_RULE_SETUP
--{
-- current_file->lineno++;
-- return T_EOL;
--}
-- YY_BREAK
--case 3:
--YY_RULE_SETUP
--
-- YY_BREAK
--case 4:
--YY_RULE_SETUP
--{
-- BEGIN(COMMAND);
--}
-- YY_BREAK
--case 5:
--YY_RULE_SETUP
--{
-- unput(zconftext[0]);
-- BEGIN(COMMAND);
--}
-- YY_BREAK
--
--case 6:
--YY_RULE_SETUP
--{
-- struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
-- BEGIN(PARAM);
-- current_pos.file = current_file;
-- current_pos.lineno = current_file->lineno;
-- if (id && id->flags & TF_COMMAND) {
-- zconflval.id = id;
-- return id->token;
-- }
-- alloc_string(zconftext, zconfleng);
-- zconflval.string = text;
-- return T_WORD;
-- }
-- YY_BREAK
--case 7:
--YY_RULE_SETUP
--
-- YY_BREAK
--case 8:
--/* rule 8 can match eol */
--YY_RULE_SETUP
--{
-- BEGIN(INITIAL);
-- current_file->lineno++;
-- return T_EOL;
-- }
-- YY_BREAK
--
--case 9:
--YY_RULE_SETUP
--return T_AND;
-- YY_BREAK
--case 10:
--YY_RULE_SETUP
--return T_OR;
-- YY_BREAK
--case 11:
--YY_RULE_SETUP
--return T_OPEN_PAREN;
-- YY_BREAK
--case 12:
--YY_RULE_SETUP
--return T_CLOSE_PAREN;
-- YY_BREAK
--case 13:
--YY_RULE_SETUP
--return T_NOT;
-- YY_BREAK
--case 14:
--YY_RULE_SETUP
--return T_EQUAL;
-- YY_BREAK
--case 15:
--YY_RULE_SETUP
--return T_UNEQUAL;
-- YY_BREAK
--case 16:
--YY_RULE_SETUP
--{
-- str = zconftext[0];
-- new_string();
-- BEGIN(STRING);
-- }
-- YY_BREAK
--case 17:
--/* rule 17 can match eol */
--YY_RULE_SETUP
--BEGIN(INITIAL); current_file->lineno++; return T_EOL;
-- YY_BREAK
--case 18:
--YY_RULE_SETUP
--/* ignore */
-- YY_BREAK
--case 19:
--YY_RULE_SETUP
--{
-- struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
-- if (id && id->flags & TF_PARAM) {
-- zconflval.id = id;
-- return id->token;
-- }
-- alloc_string(zconftext, zconfleng);
-- zconflval.string = text;
-- return T_WORD;
-- }
-- YY_BREAK
--case 20:
--YY_RULE_SETUP
--/* comment */
-- YY_BREAK
--case 21:
--/* rule 21 can match eol */
--YY_RULE_SETUP
--current_file->lineno++;
-- YY_BREAK
--case 22:
--YY_RULE_SETUP
--
-- YY_BREAK
--case YY_STATE_EOF(PARAM):
--{
-- BEGIN(INITIAL);
-- }
-- YY_BREAK
--
--case 23:
--/* rule 23 can match eol */
--*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
--(yy_c_buf_p) = yy_cp -= 1;
--YY_DO_BEFORE_ACTION; /* set up zconftext again */
--YY_RULE_SETUP
--{
-- append_string(zconftext, zconfleng);
-- zconflval.string = text;
-- return T_WORD_QUOTE;
-- }
-- YY_BREAK
--case 24:
--YY_RULE_SETUP
--{
-- append_string(zconftext, zconfleng);
-- }
-- YY_BREAK
--case 25:
--/* rule 25 can match eol */
--*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
--(yy_c_buf_p) = yy_cp -= 1;
--YY_DO_BEFORE_ACTION; /* set up zconftext again */
--YY_RULE_SETUP
--{
-- append_string(zconftext + 1, zconfleng - 1);
-- zconflval.string = text;
-- return T_WORD_QUOTE;
-- }
-- YY_BREAK
--case 26:
--YY_RULE_SETUP
--{
-- append_string(zconftext + 1, zconfleng - 1);
-- }
-- YY_BREAK
--case 27:
--YY_RULE_SETUP
--{
-- if (str == zconftext[0]) {
-- BEGIN(PARAM);
-- zconflval.string = text;
-- return T_WORD_QUOTE;
-- } else
-- append_string(zconftext, 1);
-- }
-- YY_BREAK
--case 28:
--/* rule 28 can match eol */
--YY_RULE_SETUP
--{
-- printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
-- current_file->lineno++;
-- BEGIN(INITIAL);
-- return T_EOL;
-- }
-- YY_BREAK
--case YY_STATE_EOF(STRING):
--{
-- BEGIN(INITIAL);
-- }
-- YY_BREAK
--
--case 29:
--YY_RULE_SETUP
--{
-- ts = 0;
-- for (i = 0; i < zconfleng; i++) {
-- if (zconftext[i] == '\t')
-- ts = (ts & ~7) + 8;
-- else
-- ts++;
-- }
-- last_ts = ts;
-- if (first_ts) {
-- if (ts < first_ts) {
-- zconf_endhelp();
-- return T_HELPTEXT;
-- }
-- ts -= first_ts;
-- while (ts > 8) {
-- append_string(" ", 8);
-- ts -= 8;
-- }
-- append_string(" ", ts);
-- }
-- }
-- YY_BREAK
--case 30:
--/* rule 30 can match eol */
--*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
--(yy_c_buf_p) = yy_cp -= 1;
--YY_DO_BEFORE_ACTION; /* set up zconftext again */
--YY_RULE_SETUP
--{
-- current_file->lineno++;
-- zconf_endhelp();
-- return T_HELPTEXT;
-- }
-- YY_BREAK
--case 31:
--/* rule 31 can match eol */
--YY_RULE_SETUP
--{
-- current_file->lineno++;
-- append_string("\n", 1);
-- }
-- YY_BREAK
--case 32:
--YY_RULE_SETUP
--{
-- while (zconfleng) {
-- if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
-- break;
-- zconfleng--;
-- }
-- append_string(zconftext, zconfleng);
-- if (!first_ts)
-- first_ts = last_ts;
-- }
-- YY_BREAK
--case YY_STATE_EOF(HELP):
--{
-- zconf_endhelp();
-- return T_HELPTEXT;
-- }
-- YY_BREAK
--
--case YY_STATE_EOF(INITIAL):
--case YY_STATE_EOF(COMMAND):
--{
-- if (current_file) {
-- zconf_endfile();
-- return T_EOL;
-- }
-- fclose(zconfin);
-- yyterminate();
--}
-- YY_BREAK
--case 33:
--YY_RULE_SETUP
--YY_FATAL_ERROR( "flex scanner jammed" );
-- YY_BREAK
--
-- case YY_END_OF_BUFFER:
-- {
-- /* Amount of text matched not including the EOB char. */
-- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
--
-- /* Undo the effects of YY_DO_BEFORE_ACTION. */
-- *yy_cp = (yy_hold_char);
-- YY_RESTORE_YY_MORE_OFFSET
--
-- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-- {
-- /* We're scanning a new file or input source. It's
-- * possible that this happened because the user
-- * just pointed zconfin at a new source and called
-- * zconflex(). If so, then we have to assure
-- * consistency between YY_CURRENT_BUFFER and our
-- * globals. Here is the right place to do so, because
-- * this is the first action (other than possibly a
-- * back-up) that will match for the new input source.
-- */
-- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-- YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
-- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-- }
--
-- /* Note that here we test for yy_c_buf_p "<=" to the position
-- * of the first EOB in the buffer, since yy_c_buf_p will
-- * already have been incremented past the NUL character
-- * (since all states make transitions on EOB to the
-- * end-of-buffer state). Contrast this with the test
-- * in input().
-- */
-- if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-- { /* This was really a NUL. */
-- yy_state_type yy_next_state;
--
-- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
--
-- yy_current_state = yy_get_previous_state( );
--
-- /* Okay, we're now positioned to make the NUL
-- * transition. We couldn't have
-- * yy_get_previous_state() go ahead and do it
-- * for us because it doesn't know how to deal
-- * with the possibility of jamming (and we don't
-- * want to build jamming into it because then it
-- * will run more slowly).
-- */
--
-- yy_next_state = yy_try_NUL_trans( yy_current_state );
--
-- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
--
-- if ( yy_next_state )
-- {
-- /* Consume the NUL. */
-- yy_cp = ++(yy_c_buf_p);
-- yy_current_state = yy_next_state;
-- goto yy_match;
-- }
--
-- else
-- {
-- yy_cp = (yy_c_buf_p);
-- goto yy_find_action;
-- }
-- }
--
-- else switch ( yy_get_next_buffer( ) )
-- {
-- case EOB_ACT_END_OF_FILE:
-- {
-- (yy_did_buffer_switch_on_eof) = 0;
--
-- if ( zconfwrap( ) )
-- {
-- /* Note: because we've taken care in
-- * yy_get_next_buffer() to have set up
-- * zconftext, we can now set up
-- * yy_c_buf_p so that if some total
-- * hoser (like flex itself) wants to
-- * call the scanner after we return the
-- * YY_NULL, it'll still work - another
-- * YY_NULL will get returned.
-- */
-- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
--
-- yy_act = YY_STATE_EOF(YY_START);
-- goto do_action;
-- }
--
-- else
-- {
-- if ( ! (yy_did_buffer_switch_on_eof) )
-- YY_NEW_FILE;
-- }
-- break;
-- }
--
-- case EOB_ACT_CONTINUE_SCAN:
-- (yy_c_buf_p) =
-- (yytext_ptr) + yy_amount_of_matched_text;
--
-- yy_current_state = yy_get_previous_state( );
--
-- yy_cp = (yy_c_buf_p);
-- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-- goto yy_match;
--
-- case EOB_ACT_LAST_MATCH:
-- (yy_c_buf_p) =
-- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
--
-- yy_current_state = yy_get_previous_state( );
--
-- yy_cp = (yy_c_buf_p);
-- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-- goto yy_find_action;
-- }
-- break;
-- }
--
-- default:
-- YY_FATAL_ERROR(
-- "fatal flex scanner internal error--no action found" );
-- } /* end of action switch */
-- } /* end of scanning one token */
--} /* end of zconflex */
--
--/* yy_get_next_buffer - try to read in a new buffer
-- *
-- * Returns a code representing an action:
-- * EOB_ACT_LAST_MATCH -
-- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
-- * EOB_ACT_END_OF_FILE - end of file
-- */
--static int yy_get_next_buffer (void)
--{
-- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-- register char *source = (yytext_ptr);
-- register int number_to_move, i;
-- int ret_val;
--
-- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-- YY_FATAL_ERROR(
-- "fatal flex scanner internal error--end of buffer missed" );
--
-- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-- { /* Don't try to fill the buffer, so this is an EOF. */
-- if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-- {
-- /* We matched a single character, the EOB, so
-- * treat this as a final EOF.
-- */
-- return EOB_ACT_END_OF_FILE;
-- }
--
-- else
-- {
-- /* We matched some text prior to the EOB, first
-- * process it.
-- */
-- return EOB_ACT_LAST_MATCH;
-- }
-- }
--
-- /* Try to read more data. */
--
-- /* First move last chars to start of buffer. */
-- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
--
-- for ( i = 0; i < number_to_move; ++i )
-- *(dest++) = *(source++);
--
-- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-- /* don't do the read, it's not guaranteed to return an EOF,
-- * just force an EOF
-- */
-- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
--
-- else
-- {
-- int num_to_read =
-- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
--
-- while ( num_to_read <= 0 )
-- { /* Not enough room in the buffer - grow it. */
--
-- /* just a shorter name for the current buffer */
-- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
--
-- int yy_c_buf_p_offset =
-- (int) ((yy_c_buf_p) - b->yy_ch_buf);
--
-- if ( b->yy_is_our_buffer )
-- {
-- int new_size = b->yy_buf_size * 2;
--
-- if ( new_size <= 0 )
-- b->yy_buf_size += b->yy_buf_size / 8;
-- else
-- b->yy_buf_size *= 2;
--
-- b->yy_ch_buf = (char *)
-- /* Include room in for 2 EOB chars. */
-- zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
-- }
-- else
-- /* Can't grow it, we don't own it. */
-- b->yy_ch_buf = 0;
--
-- if ( ! b->yy_ch_buf )
-- YY_FATAL_ERROR(
-- "fatal error - scanner input buffer overflow" );
--
-- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
--
-- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-- number_to_move - 1;
--
-- }
--
-- if ( num_to_read > YY_READ_BUF_SIZE )
-- num_to_read = YY_READ_BUF_SIZE;
--
-- /* Read in more data. */
-- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-- (yy_n_chars), (size_t) num_to_read );
--
-- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-- }
--
-- if ( (yy_n_chars) == 0 )
-- {
-- if ( number_to_move == YY_MORE_ADJ )
-- {
-- ret_val = EOB_ACT_END_OF_FILE;
-- zconfrestart(zconfin );
-- }
--
-- else
-- {
-- ret_val = EOB_ACT_LAST_MATCH;
-- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-- YY_BUFFER_EOF_PENDING;
-- }
-- }
--
-- else
-- ret_val = EOB_ACT_CONTINUE_SCAN;
--
-- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-- /* Extend the array by 50%, plus the number we really need. */
-- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
-- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-- }
--
-- (yy_n_chars) += number_to_move;
-- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
--
-- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
--
-- return ret_val;
--}
--
--/* yy_get_previous_state - get the state just before the EOB char was reached */
--
-- static yy_state_type yy_get_previous_state (void)
--{
-- register yy_state_type yy_current_state;
-- register char *yy_cp;
--
-- yy_current_state = (yy_start);
--
-- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-- {
-- yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
-- }
--
-- return yy_current_state;
--}
--
--/* yy_try_NUL_trans - try to make a transition on the NUL character
-- *
-- * synopsis
-- * next_state = yy_try_NUL_trans( current_state );
-- */
-- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
--{
-- register int yy_is_jam;
--
-- yy_current_state = yy_nxt[yy_current_state][1];
-- yy_is_jam = (yy_current_state <= 0);
--
-- return yy_is_jam ? 0 : yy_current_state;
--}
--
-- static void yyunput (int c, register char * yy_bp )
--{
-- register char *yy_cp;
--
-- yy_cp = (yy_c_buf_p);
--
-- /* undo effects of setting up zconftext */
-- *yy_cp = (yy_hold_char);
--
-- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-- { /* need to shift things up to make room */
-- /* +2 for EOB chars. */
-- register int number_to_move = (yy_n_chars) + 2;
-- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-- YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-- register char *source =
-- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
--
-- while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-- *--dest = *--source;
--
-- yy_cp += (int) (dest - source);
-- yy_bp += (int) (dest - source);
-- YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
--
-- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-- YY_FATAL_ERROR( "flex scanner push-back overflow" );
-- }
--
-- *--yy_cp = (char) c;
--
-- (yytext_ptr) = yy_bp;
-- (yy_hold_char) = *yy_cp;
-- (yy_c_buf_p) = yy_cp;
--}
--
--#ifndef YY_NO_INPUT
--#ifdef __cplusplus
-- static int yyinput (void)
--#else
-- static int input (void)
--#endif
--
--{
-- int c;
--
-- *(yy_c_buf_p) = (yy_hold_char);
--
-- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-- {
-- /* yy_c_buf_p now points to the character we want to return.
-- * If this occurs *before* the EOB characters, then it's a
-- * valid NUL; if not, then we've hit the end of the buffer.
-- */
-- if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-- /* This was really a NUL. */
-- *(yy_c_buf_p) = '\0';
--
-- else
-- { /* need more input */
-- int offset = (yy_c_buf_p) - (yytext_ptr);
-- ++(yy_c_buf_p);
--
-- switch ( yy_get_next_buffer( ) )
-- {
-- case EOB_ACT_LAST_MATCH:
-- /* This happens because yy_g_n_b()
-- * sees that we've accumulated a
-- * token and flags that we need to
-- * try matching the token before
-- * proceeding. But for input(),
-- * there's no matching to consider.
-- * So convert the EOB_ACT_LAST_MATCH
-- * to EOB_ACT_END_OF_FILE.
-- */
--
-- /* Reset buffer status. */
-- zconfrestart(zconfin );
--
-- /*FALLTHROUGH*/
--
-- case EOB_ACT_END_OF_FILE:
-- {
-- if ( zconfwrap( ) )
-- return EOF;
--
-- if ( ! (yy_did_buffer_switch_on_eof) )
-- YY_NEW_FILE;
--#ifdef __cplusplus
-- return yyinput();
--#else
-- return input();
--#endif
-- }
--
-- case EOB_ACT_CONTINUE_SCAN:
-- (yy_c_buf_p) = (yytext_ptr) + offset;
-- break;
-- }
-- }
-- }
--
-- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
-- *(yy_c_buf_p) = '\0'; /* preserve zconftext */
-- (yy_hold_char) = *++(yy_c_buf_p);
--
-- return c;
--}
--#endif /* ifndef YY_NO_INPUT */
--
--/** Immediately switch to a different input stream.
-- * @param input_file A readable stream.
-- *
-- * @note This function does not reset the start condition to @c INITIAL .
-- */
-- void zconfrestart (FILE * input_file )
--{
--
-- if ( ! YY_CURRENT_BUFFER ){
-- zconfensure_buffer_stack ();
-- YY_CURRENT_BUFFER_LVALUE =
-- zconf_create_buffer(zconfin,YY_BUF_SIZE );
-- }
--
-- zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
-- zconf_load_buffer_state( );
--}
--
--/** Switch to a different input buffer.
-- * @param new_buffer The new input buffer.
-- *
-- */
-- void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
--{
--
-- /* TODO. We should be able to replace this entire function body
-- * with
-- * zconfpop_buffer_state();
-- * zconfpush_buffer_state(new_buffer);
-- */
-- zconfensure_buffer_stack ();
-- if ( YY_CURRENT_BUFFER == new_buffer )
-- return;
--
-- if ( YY_CURRENT_BUFFER )
-- {
-- /* Flush out information for old buffer. */
-- *(yy_c_buf_p) = (yy_hold_char);
-- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-- }
--
-- YY_CURRENT_BUFFER_LVALUE = new_buffer;
-- zconf_load_buffer_state( );
--
-- /* We don't actually know whether we did this switch during
-- * EOF (zconfwrap()) processing, but the only time this flag
-- * is looked at is after zconfwrap() is called, so it's safe
-- * to go ahead and always set it.
-- */
-- (yy_did_buffer_switch_on_eof) = 1;
--}
--
--static void zconf_load_buffer_state (void)
--{
-- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-- zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-- (yy_hold_char) = *(yy_c_buf_p);
--}
--
--/** Allocate and initialize an input buffer state.
-- * @param file A readable stream.
-- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
-- *
-- * @return the allocated buffer state.
-- */
-- YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
--{
-- YY_BUFFER_STATE b;
--
-- b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
-- if ( ! b )
-- YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
--
-- b->yy_buf_size = size;
--
-- /* yy_ch_buf has to be 2 characters longer than the size given because
-- * we need to put in 2 end-of-buffer characters.
-- */
-- b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 );
-- if ( ! b->yy_ch_buf )
-- YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
--
-- b->yy_is_our_buffer = 1;
--
-- zconf_init_buffer(b,file );
--
-- return b;
--}
--
--/** Destroy the buffer.
-- * @param b a buffer created with zconf_create_buffer()
-- *
-- */
-- void zconf_delete_buffer (YY_BUFFER_STATE b )
--{
--
-- if ( ! b )
-- return;
--
-- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
--
-- if ( b->yy_is_our_buffer )
-- zconffree((void *) b->yy_ch_buf );
--
-- zconffree((void *) b );
--}
--
--/* Initializes or reinitializes a buffer.
-- * This function is sometimes called more than once on the same buffer,
-- * such as during a zconfrestart() or at EOF.
-- */
-- static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file )
--
--{
-- int oerrno = errno;
--
-- zconf_flush_buffer(b );
--
-- b->yy_input_file = file;
-- b->yy_fill_buffer = 1;
--
-- /* If b is the current buffer, then zconf_init_buffer was _probably_
-- * called from zconfrestart() or through yy_get_next_buffer.
-- * In that case, we don't want to reset the lineno or column.
-- */
-- if (b != YY_CURRENT_BUFFER){
-- b->yy_bs_lineno = 1;
-- b->yy_bs_column = 0;
-- }
--
-- b->yy_is_interactive = 0;
--
-- errno = oerrno;
--}
--
--/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
-- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
-- *
-- */
-- void zconf_flush_buffer (YY_BUFFER_STATE b )
--{
-- if ( ! b )
-- return;
--
-- b->yy_n_chars = 0;
--
-- /* We always need two end-of-buffer characters. The first causes
-- * a transition to the end-of-buffer state. The second causes
-- * a jam in that state.
-- */
-- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
--
-- b->yy_buf_pos = &b->yy_ch_buf[0];
--
-- b->yy_at_bol = 1;
-- b->yy_buffer_status = YY_BUFFER_NEW;
--
-- if ( b == YY_CURRENT_BUFFER )
-- zconf_load_buffer_state( );
--}
--
--/** Pushes the new state onto the stack. The new state becomes
-- * the current state. This function will allocate the stack
-- * if necessary.
-- * @param new_buffer The new state.
-- *
-- */
--void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
--{
-- if (new_buffer == NULL)
-- return;
--
-- zconfensure_buffer_stack();
--
-- /* This block is copied from zconf_switch_to_buffer. */
-- if ( YY_CURRENT_BUFFER )
-- {
-- /* Flush out information for old buffer. */
-- *(yy_c_buf_p) = (yy_hold_char);
-- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-- }
--
-- /* Only push if top exists. Otherwise, replace top. */
-- if (YY_CURRENT_BUFFER)
-- (yy_buffer_stack_top)++;
-- YY_CURRENT_BUFFER_LVALUE = new_buffer;
--
-- /* copied from zconf_switch_to_buffer. */
-- zconf_load_buffer_state( );
-- (yy_did_buffer_switch_on_eof) = 1;
--}
--
--/** Removes and deletes the top of the stack, if present.
-- * The next element becomes the new top.
-- *
-- */
--void zconfpop_buffer_state (void)
--{
-- if (!YY_CURRENT_BUFFER)
-- return;
--
-- zconf_delete_buffer(YY_CURRENT_BUFFER );
-- YY_CURRENT_BUFFER_LVALUE = NULL;
-- if ((yy_buffer_stack_top) > 0)
-- --(yy_buffer_stack_top);
--
-- if (YY_CURRENT_BUFFER) {
-- zconf_load_buffer_state( );
-- (yy_did_buffer_switch_on_eof) = 1;
-- }
--}
--
--/* Allocates the stack if it does not exist.
-- * Guarantees space for at least one push.
-- */
--static void zconfensure_buffer_stack (void)
--{
-- int num_to_alloc;
--
-- if (!(yy_buffer_stack)) {
--
-- /* First allocation is just for 2 elements, since we don't know if this
-- * scanner will even need a stack. We use 2 instead of 1 to avoid an
-- * immediate realloc on the next call.
-- */
-- num_to_alloc = 1;
-- (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
-- (num_to_alloc * sizeof(struct yy_buffer_state*)
-- );
-- if ( ! (yy_buffer_stack) )
-- YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
--
-- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
--
-- (yy_buffer_stack_max) = num_to_alloc;
-- (yy_buffer_stack_top) = 0;
-- return;
-- }
--
-- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
--
-- /* Increase the buffer to prepare for a possible push. */
-- int grow_size = 8 /* arbitrary grow size */;
--
-- num_to_alloc = (yy_buffer_stack_max) + grow_size;
-- (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
-- ((yy_buffer_stack),
-- num_to_alloc * sizeof(struct yy_buffer_state*)
-- );
-- if ( ! (yy_buffer_stack) )
-- YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
--
-- /* zero only the new slots.*/
-- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-- (yy_buffer_stack_max) = num_to_alloc;
-- }
--}
--
--/** Setup the input buffer state to scan directly from a user-specified character buffer.
-- * @param base the character buffer
-- * @param size the size in bytes of the character buffer
-- *
-- * @return the newly allocated buffer state object.
-- */
--YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
--{
-- YY_BUFFER_STATE b;
--
-- if ( size < 2 ||
-- base[size-2] != YY_END_OF_BUFFER_CHAR ||
-- base[size-1] != YY_END_OF_BUFFER_CHAR )
-- /* They forgot to leave room for the EOB's. */
-- return 0;
--
-- b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
-- if ( ! b )
-- YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
--
-- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
-- b->yy_buf_pos = b->yy_ch_buf = base;
-- b->yy_is_our_buffer = 0;
-- b->yy_input_file = 0;
-- b->yy_n_chars = b->yy_buf_size;
-- b->yy_is_interactive = 0;
-- b->yy_at_bol = 1;
-- b->yy_fill_buffer = 0;
-- b->yy_buffer_status = YY_BUFFER_NEW;
--
-- zconf_switch_to_buffer(b );
--
-- return b;
--}
--
--/** Setup the input buffer state to scan a string. The next call to zconflex() will
-- * scan from a @e copy of @a str.
-- * @param yystr a NUL-terminated string to scan
-- *
-- * @return the newly allocated buffer state object.
-- * @note If you want to scan bytes that may contain NUL values, then use
-- * zconf_scan_bytes() instead.
-- */
--YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
--{
--
-- return zconf_scan_bytes(yystr,strlen(yystr) );
--}
--
--/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
-- * scan from a @e copy of @a bytes.
-- * @param bytes the byte buffer to scan
-- * @param len the number of bytes in the buffer pointed to by @a bytes.
-- *
-- * @return the newly allocated buffer state object.
-- */
--YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len )
--{
-- YY_BUFFER_STATE b;
-- char *buf;
-- yy_size_t n;
-- int i;
--
-- /* Get memory for full buffer, including space for trailing EOB's. */
-- n = _yybytes_len + 2;
-- buf = (char *) zconfalloc(n );
-- if ( ! buf )
-- YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
--
-- for ( i = 0; i < _yybytes_len; ++i )
-- buf[i] = yybytes[i];
--
-- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
--
-- b = zconf_scan_buffer(buf,n );
-- if ( ! b )
-- YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
--
-- /* It's okay to grow etc. this buffer, and we should throw it
-- * away when we're done.
-- */
-- b->yy_is_our_buffer = 1;
--
-- return b;
--}
--
--#ifndef YY_EXIT_FAILURE
--#define YY_EXIT_FAILURE 2
--#endif
--
--static void yy_fatal_error (yyconst char* msg )
--{
-- (void) fprintf( stderr, "%s\n", msg );
-- exit( YY_EXIT_FAILURE );
--}
--
--/* Redefine yyless() so it works in section 3 code. */
--
--#undef yyless
--#define yyless(n) \
-- do \
-- { \
-- /* Undo effects of setting up zconftext. */ \
-- int yyless_macro_arg = (n); \
-- YY_LESS_LINENO(yyless_macro_arg);\
-- zconftext[zconfleng] = (yy_hold_char); \
-- (yy_c_buf_p) = zconftext + yyless_macro_arg; \
-- (yy_hold_char) = *(yy_c_buf_p); \
-- *(yy_c_buf_p) = '\0'; \
-- zconfleng = yyless_macro_arg; \
-- } \
-- while ( 0 )
--
--/* Accessor methods (get/set functions) to struct members. */
--
--/** Get the current line number.
-- *
-- */
--int zconfget_lineno (void)
--{
--
-- return zconflineno;
--}
--
--/** Get the input stream.
-- *
-- */
--FILE *zconfget_in (void)
--{
-- return zconfin;
--}
--
--/** Get the output stream.
-- *
-- */
--FILE *zconfget_out (void)
--{
-- return zconfout;
--}
--
--/** Get the length of the current token.
-- *
-- */
--int zconfget_leng (void)
--{
-- return zconfleng;
--}
--
--/** Get the current token.
-- *
-- */
--
--char *zconfget_text (void)
--{
-- return zconftext;
--}
--
--/** Set the current line number.
-- * @param line_number
-- *
-- */
--void zconfset_lineno (int line_number )
--{
--
-- zconflineno = line_number;
--}
--
--/** Set the input stream. This does not discard the current
-- * input buffer.
-- * @param in_str A readable stream.
-- *
-- * @see zconf_switch_to_buffer
-- */
--void zconfset_in (FILE * in_str )
--{
-- zconfin = in_str ;
--}
--
--void zconfset_out (FILE * out_str )
--{
-- zconfout = out_str ;
--}
--
--int zconfget_debug (void)
--{
-- return zconf_flex_debug;
--}
--
--void zconfset_debug (int bdebug )
--{
-- zconf_flex_debug = bdebug ;
--}
--
--static int yy_init_globals (void)
--{
-- /* Initialization is the same as for the non-reentrant scanner.
-- * This function is called from zconflex_destroy(), so don't allocate here.
-- */
--
-- (yy_buffer_stack) = 0;
-- (yy_buffer_stack_top) = 0;
-- (yy_buffer_stack_max) = 0;
-- (yy_c_buf_p) = (char *) 0;
-- (yy_init) = 0;
-- (yy_start) = 0;
--
--/* Defined in main.c */
--#ifdef YY_STDINIT
-- zconfin = stdin;
-- zconfout = stdout;
--#else
-- zconfin = (FILE *) 0;
-- zconfout = (FILE *) 0;
--#endif
--
-- /* For future reference: Set errno on error, since we are called by
-- * zconflex_init()
-- */
-- return 0;
--}
--
--/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
--int zconflex_destroy (void)
--{
--
-- /* Pop the buffer stack, destroying each element. */
-- while(YY_CURRENT_BUFFER){
-- zconf_delete_buffer(YY_CURRENT_BUFFER );
-- YY_CURRENT_BUFFER_LVALUE = NULL;
-- zconfpop_buffer_state();
-- }
--
-- /* Destroy the stack itself. */
-- zconffree((yy_buffer_stack) );
-- (yy_buffer_stack) = NULL;
--
-- /* Reset the globals. This is important in a non-reentrant scanner so the next time
-- * zconflex() is called, initialization will occur. */
-- yy_init_globals( );
--
-- return 0;
--}
--
--/*
-- * Internal utility routines.
-- */
--
--#ifndef yytext_ptr
--static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
--{
-- register int i;
-- for ( i = 0; i < n; ++i )
-- s1[i] = s2[i];
--}
--#endif
--
--#ifdef YY_NEED_STRLEN
--static int yy_flex_strlen (yyconst char * s )
--{
-- register int n;
-- for ( n = 0; s[n]; ++n )
-- ;
--
-- return n;
--}
--#endif
--
--void *zconfalloc (yy_size_t size )
--{
-- return (void *) malloc( size );
--}
--
--void *zconfrealloc (void * ptr, yy_size_t size )
--{
-- /* The cast to (char *) in the following accommodates both
-- * implementations that use char* generic pointers, and those
-- * that use void* generic pointers. It works with the latter
-- * because both ANSI C and C++ allow castless assignment from
-- * any pointer type to void*, and deal with argument conversions
-- * as though doing an assignment.
-- */
-- return (void *) realloc( (char *) ptr, size );
--}
--
--void zconffree (void * ptr )
--{
-- free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */
--}
--
--#define YYTABLES_NAME "yytables"
--
--void zconf_starthelp(void)
--{
-- new_string();
-- last_ts = first_ts = 0;
-- BEGIN(HELP);
--}
--
--static void zconf_endhelp(void)
--{
-- zconflval.string = text;
-- BEGIN(INITIAL);
--}
--
--/*
-- * Try to open specified file with following names:
-- * ./name
-- * $(srctree)/name
-- * The latter is used when srctree is separate from objtree
-- * when compiling the kernel.
-- * Return NULL if file is not found.
-- */
--FILE *zconf_fopen(const char *name)
--{
-- char *env, fullname[PATH_MAX+1];
-- FILE *f;
--
-- f = fopen(name, "r");
-- if (!f && name != NULL && name[0] != '/') {
-- env = getenv(SRCTREE);
-- if (env) {
-- sprintf(fullname, "%s/%s", env, name);
-- f = fopen(fullname, "r");
-- }
-- }
-- return f;
--}
--
--void zconf_initscan(const char *name)
--{
-- zconfin = zconf_fopen(name);
-- if (!zconfin) {
-- printf("can't find file %s\n", name);
-- exit(1);
-- }
--
-- current_buf = malloc(sizeof(*current_buf));
-- memset(current_buf, 0, sizeof(*current_buf));
--
-- current_file = file_lookup(name);
-- current_file->lineno = 1;
-- current_file->flags = FILE_BUSY;
--}
--
--void zconf_nextfile(const char *name)
--{
-- struct file *file = file_lookup(name);
-- struct buffer *buf = malloc(sizeof(*buf));
-- memset(buf, 0, sizeof(*buf));
--
-- current_buf->state = YY_CURRENT_BUFFER;
-- zconfin = zconf_fopen(name);
-- if (!zconfin) {
-- printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
-- exit(1);
-- }
-- zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
-- buf->parent = current_buf;
-- current_buf = buf;
--
-- if (file->flags & FILE_BUSY) {
-- printf("%s:%d: do not source '%s' from itself\n",
-- zconf_curname(), zconf_lineno(), name);
-- exit(1);
-- }
-- if (file->flags & FILE_SCANNED) {
-- printf("%s:%d: file '%s' is already sourced from '%s'\n",
-- zconf_curname(), zconf_lineno(), name,
-- file->parent->name);
-- exit(1);
-- }
-- file->flags |= FILE_BUSY;
-- file->lineno = 1;
-- file->parent = current_file;
-- current_file = file;
--}
--
--static void zconf_endfile(void)
--{
-- struct buffer *parent;
--
-- current_file->flags |= FILE_SCANNED;
-- current_file->flags &= ~FILE_BUSY;
-- current_file = current_file->parent;
--
-- parent = current_buf->parent;
-- if (parent) {
-- fclose(zconfin);
-- zconf_delete_buffer(YY_CURRENT_BUFFER);
-- zconf_switch_to_buffer(parent->state);
-- }
-- free(current_buf);
-- current_buf = parent;
--}
--
--int zconf_lineno(void)
--{
-- return current_pos.lineno;
--}
--
--char *zconf_curname(void)
--{
-- return current_pos.file ? current_pos.file->name : "<none>";
--}
--
-diff -Nur uClibc-0.9.33.2/extra/config/list.h uClibc-git/extra/config/list.h
---- uClibc-0.9.33.2/extra/config/list.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/list.h 2014-07-25 20:36:04.853324457 +0200
-@@ -0,0 +1,131 @@
-+#ifndef LIST_H
-+#define LIST_H
-+
-+/*
-+ * Copied from include/linux/...
-+ */
-+
-+#undef offsetof
-+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-+
-+/**
-+ * container_of - cast a member of a structure out to the containing structure
-+ * @ptr: the pointer to the member.
-+ * @type: the type of the container struct this is embedded in.
-+ * @member: the name of the member within the struct.
-+ *
-+ */
-+#define container_of(ptr, type, member) ({ \
-+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
-+ (type *)( (char *)__mptr - offsetof(type,member) );})
-+
-+
-+struct list_head {
-+ struct list_head *next, *prev;
-+};
-+
-+
-+#define LIST_HEAD_INIT(name) { &(name), &(name) }
-+
-+#define LIST_HEAD(name) \
-+ struct list_head name = LIST_HEAD_INIT(name)
-+
-+/**
-+ * list_entry - get the struct for this entry
-+ * @ptr: the &struct list_head pointer.
-+ * @type: the type of the struct this is embedded in.
-+ * @member: the name of the list_struct within the struct.
-+ */
-+#define list_entry(ptr, type, member) \
-+ container_of(ptr, type, member)
-+
-+/**
-+ * list_for_each_entry - iterate over list of given type
-+ * @pos: the type * to use as a loop cursor.
-+ * @head: the head for your list.
-+ * @member: the name of the list_struct within the struct.
-+ */
-+#define list_for_each_entry(pos, head, member) \
-+ for (pos = list_entry((head)->next, typeof(*pos), member); \
-+ &pos->member != (head); \
-+ pos = list_entry(pos->member.next, typeof(*pos), member))
-+
-+/**
-+ * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
-+ * @pos: the type * to use as a loop cursor.
-+ * @n: another type * to use as temporary storage
-+ * @head: the head for your list.
-+ * @member: the name of the list_struct within the struct.
-+ */
-+#define list_for_each_entry_safe(pos, n, head, member) \
-+ for (pos = list_entry((head)->next, typeof(*pos), member), \
-+ n = list_entry(pos->member.next, typeof(*pos), member); \
-+ &pos->member != (head); \
-+ pos = n, n = list_entry(n->member.next, typeof(*n), member))
-+
-+/**
-+ * list_empty - tests whether a list is empty
-+ * @head: the list to test.
-+ */
-+static inline int list_empty(const struct list_head *head)
-+{
-+ return head->next == head;
-+}
-+
-+/*
-+ * Insert a new entry between two known consecutive entries.
-+ *
-+ * This is only for internal list manipulation where we know
-+ * the prev/next entries already!
-+ */
-+static inline void __list_add(struct list_head *_new,
-+ struct list_head *prev,
-+ struct list_head *next)
-+{
-+ next->prev = _new;
-+ _new->next = next;
-+ _new->prev = prev;
-+ prev->next = _new;
-+}
-+
-+/**
-+ * list_add_tail - add a new entry
-+ * @new: new entry to be added
-+ * @head: list head to add it before
-+ *
-+ * Insert a new entry before the specified head.
-+ * This is useful for implementing queues.
-+ */
-+static inline void list_add_tail(struct list_head *_new, struct list_head *head)
-+{
-+ __list_add(_new, head->prev, head);
-+}
-+
-+/*
-+ * Delete a list entry by making the prev/next entries
-+ * point to each other.
-+ *
-+ * This is only for internal list manipulation where we know
-+ * the prev/next entries already!
-+ */
-+static inline void __list_del(struct list_head *prev, struct list_head *next)
-+{
-+ next->prev = prev;
-+ prev->next = next;
-+}
-+
-+#define LIST_POISON1 ((void *) 0x00100100)
-+#define LIST_POISON2 ((void *) 0x00200200)
-+/**
-+ * list_del - deletes entry from list.
-+ * @entry: the element to delete from the list.
-+ * Note: list_empty() on entry does not return true after this, the entry is
-+ * in an undefined state.
-+ */
-+static inline void list_del(struct list_head *entry)
-+{
-+ __list_del(entry->prev, entry->next);
-+ entry->next = (struct list_head*)LIST_POISON1;
-+ entry->prev = (struct list_head*)LIST_POISON2;
-+}
-+#endif
-diff -Nur uClibc-0.9.33.2/extra/config/lkc.h uClibc-git/extra/config/lkc.h
---- uClibc-0.9.33.2/extra/config/lkc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lkc.h 2014-07-25 20:36:04.853324457 +0200
-@@ -14,29 +14,37 @@
- static inline const char *gettext(const char *txt) { return txt; }
- static inline void textdomain(const char *domainname) {}
- static inline void bindtextdomain(const char *name, const char *dir) {}
-+static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; }
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
--#ifdef LKC_DIRECT_LINK
- #define P(name,type,arg) extern type name arg
--#else
--#include "lkc_defs.h"
--#define P(name,type,arg) extern type (*name ## _p) arg
--#endif
- #include "lkc_proto.h"
- #undef P
-
- #define SRCTREE "srctree"
-
-+#ifndef PACKAGE
- #define PACKAGE "linux"
-+#endif
-+
- #define LOCALEDIR "/usr/share/locale"
-
- #define _(text) gettext(text)
- #define N_(text) (text)
-
-+#ifndef CONFIG_
-+#define CONFIG_ "CONFIG_"
-+#endif
-+static inline const char *CONFIG_prefix(void)
-+{
-+ return getenv( "CONFIG_" ) ?: CONFIG_;
-+}
-+#undef CONFIG_
-+#define CONFIG_ CONFIG_prefix()
-
- #define TF_COMMAND 0x0001
- #define TF_PARAM 0x0002
-@@ -61,35 +69,49 @@
- enum symbol_type stype;
- };
-
-+extern int zconfdebug;
-+
- int zconfparse(void);
- void zconfdump(FILE *out);
--
--extern int zconfdebug;
- void zconf_starthelp(void);
- FILE *zconf_fopen(const char *name);
- void zconf_initscan(const char *name);
- void zconf_nextfile(const char *name);
- int zconf_lineno(void);
--char *zconf_curname(void);
-+const char *zconf_curname(void);
-
- /* confdata.c */
- const char *conf_get_configname(void);
-+const char *conf_get_autoconfig_name(void);
- char *conf_get_default_confname(void);
- void sym_set_change_count(int count);
- void sym_add_change_count(int count);
--void conf_set_all_new_symbols(enum conf_def_mode mode);
-+bool conf_set_all_new_symbols(enum conf_def_mode mode);
-+void set_all_choice_values(struct symbol *csym);
-+
-+struct conf_printer {
-+ void (*print_symbol)(FILE *, struct symbol *, const char *, void *);
-+ void (*print_comment)(FILE *, const char *, void *);
-+};
-
--/* kconfig_load.c */
--void kconfig_load(void);
-+/* confdata.c and expr.c */
-+static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
-+{
-+ assert(len != 0);
-+
-+ if (fwrite(str, len, count, out) != count)
-+ fprintf(stderr, "Error in writing or end of file.\n");
-+}
-
- /* menu.c */
--void menu_init(void);
-+void _menu_init(void);
- void menu_warn(struct menu *menu, const char *fmt, ...);
- struct menu *menu_add_menu(void);
- void menu_end_menu(void);
- void menu_add_entry(struct symbol *sym);
- void menu_end_entry(void);
- void menu_add_dep(struct expr *dep);
-+void menu_add_visibility(struct expr *dep);
- struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
- struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
- void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
-@@ -101,10 +123,19 @@
- /* util.c */
- struct file *file_lookup(const char *name);
- int file_write_dep(const char *name);
-+void *xmalloc(size_t size);
-+void *xcalloc(size_t nmemb, size_t size);
-+char *dir_name(char *path);
-+char *base_name(char *path);
-
- struct gstr {
- size_t len;
- char *s;
-+ /*
-+ * when max_width is not zero long lines in string s (if any) get
-+ * wrapped not to exceed the max_width value
-+ */
-+ int max_width;
- };
- struct gstr str_new(void);
- struct gstr str_assign(const char *s);
-@@ -120,6 +151,8 @@
- void sym_clear_all_valid(void);
- void sym_set_all_changed(void);
- void sym_set_changed(struct symbol *sym);
-+struct symbol *sym_choice_default(struct symbol *sym);
-+const char *sym_get_string_default(struct symbol *sym);
- struct symbol *sym_check_deps(struct symbol *sym);
- struct property *prop_alloc(enum prop_type type, struct symbol *sym);
- struct symbol *prop_get_symbol(struct property *prop);
-diff -Nur uClibc-0.9.33.2/extra/config/lkc_proto.h uClibc-git/extra/config/lkc_proto.h
---- uClibc-0.9.33.2/extra/config/lkc_proto.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lkc_proto.h 2014-07-25 20:36:04.853324457 +0200
-@@ -1,28 +1,40 @@
-+#include <stdarg.h>
-
- /* confdata.c */
- P(conf_parse,void,(const char *name));
- P(conf_read,int,(const char *name));
- P(conf_read_simple,int,(const char *name, int));
-+P(conf_write_defconfig,int,(const char *name));
- P(conf_write,int,(const char *name));
- P(conf_write_autoconf,int,(void));
- P(conf_get_changed,bool,(void));
- P(conf_set_changed_callback, void,(void (*fn)(void)));
-+P(conf_set_message_callback, void,(void (*fn)(const char *fmt, va_list ap)));
-
- /* menu.c */
- P(rootmenu,struct menu,);
-
--P(menu_is_visible,bool,(struct menu *menu));
-+P(menu_is_empty, bool, (struct menu *menu));
-+P(menu_is_visible, bool, (struct menu *menu));
-+P(menu_has_prompt, bool, (struct menu *menu));
- P(menu_get_prompt,const char *,(struct menu *menu));
- P(menu_get_root_menu,struct menu *,(struct menu *menu));
- P(menu_get_parent_menu,struct menu *,(struct menu *menu));
- P(menu_has_help,bool,(struct menu *menu));
- P(menu_get_help,const char *,(struct menu *menu));
-+P(get_symbol_str, void, (struct gstr *r, struct symbol *sym, struct list_head
-+ *head));
-+P(get_relations_str, struct gstr, (struct symbol **sym_arr, struct list_head
-+ *head));
-+P(menu_get_ext_help,void,(struct menu *menu, struct gstr *help));
-
- /* symbol.c */
- P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
-
- P(sym_lookup,struct symbol *,(const char *name, int flags));
- P(sym_find,struct symbol *,(const char *name));
-+P(sym_expand_string_value,const char *,(const char *in));
-+P(sym_escape_string_value, const char *,(const char *in));
- P(sym_re_search,struct symbol **,(const char *pattern));
- P(sym_type_name,const char *,(enum symbol_type type));
- P(sym_calc_value,void,(struct symbol *sym));
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/checklist.c uClibc-git/extra/config/lxdialog/checklist.c
---- uClibc-0.9.33.2/extra/config/lxdialog/checklist.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/checklist.c 2014-07-25 20:36:04.861324498 +0200
-@@ -31,6 +31,10 @@
- static void print_item(WINDOW * win, int choice, int selected)
- {
- int i;
-+ char *list_item = malloc(list_width + 1);
-+
-+ strncpy(list_item, item_str(), list_width - item_x);
-+ list_item[list_width - item_x] = '\0';
-
- /* Clear 'residue' of last item */
- wattrset(win, dlg.menubox.atr);
-@@ -41,16 +45,18 @@
- wmove(win, choice, check_x);
- wattrset(win, selected ? dlg.check_selected.atr
- : dlg.check.atr);
-- wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
-+ if (!item_is_tag(':'))
-+ wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
-
- wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
-- mvwaddch(win, choice, item_x, item_str()[0]);
-+ mvwaddch(win, choice, item_x, list_item[0]);
- wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr);
-- waddstr(win, (char *)item_str() + 1);
-+ waddstr(win, list_item + 1);
- if (selected) {
- wmove(win, choice, check_x + 1);
- wrefresh(win);
- }
-+ free(list_item);
- }
-
- /*
-@@ -126,16 +132,16 @@
- }
-
- do_resize:
-- if (getmaxy(stdscr) < (height + 6))
-+ if (getmaxy(stdscr) < (height + CHECKLIST_HEIGTH_MIN))
- return -ERRDISPLAYTOOSMALL;
-- if (getmaxx(stdscr) < (width + 6))
-+ if (getmaxx(stdscr) < (width + CHECKLIST_WIDTH_MIN))
- return -ERRDISPLAYTOOSMALL;
-
- max_choice = MIN(list_height, item_count());
-
- /* center dialog box on screen */
-- x = (COLS - width) / 2;
-- y = (LINES - height) / 2;
-+ x = (getmaxx(stdscr) - width) / 2;
-+ y = (getmaxy(stdscr) - height) / 2;
-
- draw_shadow(stdscr, y, x, height, width);
-
-@@ -174,6 +180,7 @@
- check_x = 0;
- item_foreach()
- check_x = MAX(check_x, strlen(item_str()) + 4);
-+ check_x = MIN(check_x, list_width);
-
- check_x = (list_width - check_x) / 2;
- item_x = check_x + 4;
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/check-lxdialog.sh uClibc-git/extra/config/lxdialog/check-lxdialog.sh
---- uClibc-0.9.33.2/extra/config/lxdialog/check-lxdialog.sh 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/check-lxdialog.sh 2014-07-25 20:36:04.861324498 +0200
-@@ -4,7 +4,9 @@
- # What library to link
- ldflags()
- {
-- for ext in so a dylib ; do
-+ pkg-config --libs ncursesw 2>/dev/null && exit
-+ pkg-config --libs ncurses 2>/dev/null && exit
-+ for ext in so a dll.a dylib ; do
- for lib in ncursesw ncurses curses ; do
- $cc -print-file-name=lib${lib}.${ext} | grep -q /
- if [ $? -eq 0 ]; then
-@@ -19,14 +21,13 @@
- # Where is ncurses.h?
- ccflags()
- {
-- if [ -f /usr/include/ncursesw/ncurses.h ]; then
-- echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>"'
-- elif [ -f /usr/include/ncursesw/curses.h ]; then
-- echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncursesw/curses.h>"'
-+ if [ -f /usr/include/ncursesw/curses.h ]; then
-+ echo '-I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"'
-+ echo ' -DNCURSES_WIDECHAR=1'
- elif [ -f /usr/include/ncurses/ncurses.h ]; then
- echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
- elif [ -f /usr/include/ncurses/curses.h ]; then
-- echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
-+ echo '-I/usr/include/ncurses -DCURSES_LOC="<curses.h>"'
- elif [ -f /usr/include/ncurses.h ]; then
- echo '-DCURSES_LOC="<ncurses.h>"'
- else
-@@ -40,7 +41,7 @@
-
- # Check if we can link to ncurses
- check() {
-- $cc -xc - -o $tmp 2>/dev/null <<'EOF'
-+ $cc -x c - -o $tmp 2>/dev/null <<'EOF'
- #include CURSES_LOC
- main() {}
- EOF
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/dialog.h uClibc-git/extra/config/lxdialog/dialog.h
---- uClibc-0.9.33.2/extra/config/lxdialog/dialog.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/dialog.h 2014-07-25 20:36:04.861324498 +0200
-@@ -106,8 +106,14 @@
- int hl; /* highlight this item */
- };
-
-+struct subtitle_list {
-+ struct subtitle_list *next;
-+ const char *text;
-+};
-+
- struct dialog_info {
- const char *backtitle;
-+ struct subtitle_list *subtitles;
- struct dialog_color screen;
- struct dialog_color shadow;
- struct dialog_color dialog;
-@@ -144,6 +150,7 @@
- */
- extern struct dialog_info dlg;
- extern char dialog_input_result[];
-+extern int saved_x, saved_y; /* Needed in signal handler in mconf.c */
-
- /*
- * Function prototypes
-@@ -193,8 +200,23 @@
- int on_key_esc(WINDOW *win);
- int on_key_resize(void);
-
-+/* minimum (re)size values */
-+#define CHECKLIST_HEIGTH_MIN 6 /* For dialog_checklist() */
-+#define CHECKLIST_WIDTH_MIN 6
-+#define INPUTBOX_HEIGTH_MIN 2 /* For dialog_inputbox() */
-+#define INPUTBOX_WIDTH_MIN 2
-+#define MENUBOX_HEIGTH_MIN 15 /* For dialog_menu() */
-+#define MENUBOX_WIDTH_MIN 65
-+#define TEXTBOX_HEIGTH_MIN 8 /* For dialog_textbox() */
-+#define TEXTBOX_WIDTH_MIN 8
-+#define YESNO_HEIGTH_MIN 4 /* For dialog_yesno() */
-+#define YESNO_WIDTH_MIN 4
-+#define WINDOW_HEIGTH_MIN 19 /* For init_dialog() */
-+#define WINDOW_WIDTH_MIN 80
-+
- int init_dialog(const char *backtitle);
- void set_dialog_backtitle(const char *backtitle);
-+void set_dialog_subtitles(struct subtitle_list *subtitles);
- void end_dialog(int x, int y);
- void attr_clear(WINDOW * win, int height, int width, chtype attr);
- void dialog_clear(void);
-@@ -209,12 +231,17 @@
- int dialog_yesno(const char *title, const char *prompt, int height, int width);
- int dialog_msgbox(const char *title, const char *prompt, int height,
- int width, int pause);
--int dialog_textbox(const char *title, const char *file, int height, int width);
-+
-+
-+typedef void (*update_text_fn)(char *buf, size_t start, size_t end, void
-+ *_data);
-+int dialog_textbox(const char *title, char *tbuf, int initial_height,
-+ int initial_width, int *keys, int *_vscroll, int *_hscroll,
-+ update_text_fn update_text, void *data);
- int dialog_menu(const char *title, const char *prompt,
- const void *selected, int *s_scroll);
- int dialog_checklist(const char *title, const char *prompt, int height,
- int width, int list_height);
--extern char dialog_input_result[];
- int dialog_inputbox(const char *title, const char *prompt, int height,
- int width, const char *init);
-
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/inputbox.c uClibc-git/extra/config/lxdialog/inputbox.c
---- uClibc-0.9.33.2/extra/config/lxdialog/inputbox.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/inputbox.c 2014-07-25 20:36:04.861324498 +0200
-@@ -45,7 +45,8 @@
- const char *init)
- {
- int i, x, y, box_y, box_x, box_width;
-- int input_x = 0, scroll = 0, key = 0, button = -1;
-+ int input_x = 0, key = 0, button = -1;
-+ int show_x, len, pos;
- char *instr = dialog_input_result;
- WINDOW *dialog;
-
-@@ -55,14 +56,14 @@
- strcpy(instr, init);
-
- do_resize:
-- if (getmaxy(stdscr) <= (height - 2))
-+ if (getmaxy(stdscr) <= (height - INPUTBOX_HEIGTH_MIN))
- return -ERRDISPLAYTOOSMALL;
-- if (getmaxx(stdscr) <= (width - 2))
-+ if (getmaxx(stdscr) <= (width - INPUTBOX_WIDTH_MIN))
- return -ERRDISPLAYTOOSMALL;
-
- /* center dialog box on screen */
-- x = (COLS - width) / 2;
-- y = (LINES - height) / 2;
-+ x = (getmaxx(stdscr) - width) / 2;
-+ y = (getmaxy(stdscr) - height) / 2;
-
- draw_shadow(stdscr, y, x, height, width);
-
-@@ -97,14 +98,17 @@
- wmove(dialog, box_y, box_x);
- wattrset(dialog, dlg.inputbox.atr);
-
-- input_x = strlen(instr);
-+ len = strlen(instr);
-+ pos = len;
-
-- if (input_x >= box_width) {
-- scroll = input_x - box_width + 1;
-+ if (len >= box_width) {
-+ show_x = len - box_width + 1;
- input_x = box_width - 1;
- for (i = 0; i < box_width - 1; i++)
-- waddch(dialog, instr[scroll + i]);
-+ waddch(dialog, instr[show_x + i]);
- } else {
-+ show_x = 0;
-+ input_x = len;
- waddstr(dialog, instr);
- }
-
-@@ -121,45 +125,104 @@
- case KEY_UP:
- case KEY_DOWN:
- break;
-- case KEY_LEFT:
-- continue;
-- case KEY_RIGHT:
-- continue;
- case KEY_BACKSPACE:
- case 127:
-- if (input_x || scroll) {
-+ if (pos) {
- wattrset(dialog, dlg.inputbox.atr);
-- if (!input_x) {
-- scroll = scroll < box_width - 1 ? 0 : scroll - (box_width - 1);
-- wmove(dialog, box_y, box_x);
-- for (i = 0; i < box_width; i++)
-- waddch(dialog,
-- instr[scroll + input_x + i] ?
-- instr[scroll + input_x + i] : ' ');
-- input_x = strlen(instr) - scroll;
-+ if (input_x == 0) {
-+ show_x--;
- } else
- input_x--;
-- instr[scroll + input_x] = '\0';
-- mvwaddch(dialog, box_y, input_x + box_x, ' ');
-+
-+ if (pos < len) {
-+ for (i = pos - 1; i < len; i++) {
-+ instr[i] = instr[i+1];
-+ }
-+ }
-+
-+ pos--;
-+ len--;
-+ instr[len] = '\0';
-+ wmove(dialog, box_y, box_x);
-+ for (i = 0; i < box_width; i++) {
-+ if (!instr[show_x + i]) {
-+ waddch(dialog, ' ');
-+ break;
-+ }
-+ waddch(dialog, instr[show_x + i]);
-+ }
- wmove(dialog, box_y, input_x + box_x);
- wrefresh(dialog);
- }
- continue;
-+ case KEY_LEFT:
-+ if (pos > 0) {
-+ if (input_x > 0) {
-+ wmove(dialog, box_y, --input_x + box_x);
-+ } else if (input_x == 0) {
-+ show_x--;
-+ wmove(dialog, box_y, box_x);
-+ for (i = 0; i < box_width; i++) {
-+ if (!instr[show_x + i]) {
-+ waddch(dialog, ' ');
-+ break;
-+ }
-+ waddch(dialog, instr[show_x + i]);
-+ }
-+ wmove(dialog, box_y, box_x);
-+ }
-+ pos--;
-+ }
-+ continue;
-+ case KEY_RIGHT:
-+ if (pos < len) {
-+ if (input_x < box_width - 1) {
-+ wmove(dialog, box_y, ++input_x + box_x);
-+ } else if (input_x == box_width - 1) {
-+ show_x++;
-+ wmove(dialog, box_y, box_x);
-+ for (i = 0; i < box_width; i++) {
-+ if (!instr[show_x + i]) {
-+ waddch(dialog, ' ');
-+ break;
-+ }
-+ waddch(dialog, instr[show_x + i]);
-+ }
-+ wmove(dialog, box_y, input_x + box_x);
-+ }
-+ pos++;
-+ }
-+ continue;
- default:
- if (key < 0x100 && isprint(key)) {
-- if (scroll + input_x < MAX_LEN) {
-+ if (len < MAX_LEN) {
- wattrset(dialog, dlg.inputbox.atr);
-- instr[scroll + input_x] = key;
-- instr[scroll + input_x + 1] = '\0';
-+ if (pos < len) {
-+ for (i = len; i > pos; i--)
-+ instr[i] = instr[i-1];
-+ instr[pos] = key;
-+ } else {
-+ instr[len] = key;
-+ }
-+ pos++;
-+ len++;
-+ instr[len] = '\0';
-+
- if (input_x == box_width - 1) {
-- scroll++;
-- wmove(dialog, box_y, box_x);
-- for (i = 0; i < box_width - 1; i++)
-- waddch(dialog, instr [scroll + i]);
-+ show_x++;
- } else {
-- wmove(dialog, box_y, input_x++ + box_x);
-- waddch(dialog, key);
-+ input_x++;
-+ }
-+
-+ wmove(dialog, box_y, box_x);
-+ for (i = 0; i < box_width; i++) {
-+ if (!instr[show_x + i]) {
-+ waddch(dialog, ' ');
-+ break;
-+ }
-+ waddch(dialog, instr[show_x + i]);
- }
-+ wmove(dialog, box_y, input_x + box_x);
- wrefresh(dialog);
- } else
- flash(); /* Alarm user about overflow */
-@@ -180,7 +243,7 @@
- case KEY_LEFT:
- switch (button) {
- case -1:
-- button = 1; /* Indicates "Cancel" button is selected */
-+ button = 1; /* Indicates "Help" button is selected */
- print_buttons(dialog, height, width, 1);
- break;
- case 0:
-@@ -204,7 +267,7 @@
- print_buttons(dialog, height, width, 0);
- break;
- case 0:
-- button = 1; /* Indicates "Cancel" button is selected */
-+ button = 1; /* Indicates "Help" button is selected */
- print_buttons(dialog, height, width, 1);
- break;
- case 1:
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/menubox.c uClibc-git/extra/config/lxdialog/menubox.c
---- uClibc-0.9.33.2/extra/config/lxdialog/menubox.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/menubox.c 2014-07-25 20:36:04.861324498 +0200
-@@ -154,12 +154,14 @@
- */
- static void print_buttons(WINDOW * win, int height, int width, int selected)
- {
-- int x = width / 2 - 16;
-+ int x = width / 2 - 28;
- int y = height - 2;
-
- print_button(win, gettext("Select"), y, x, selected == 0);
- print_button(win, gettext(" Exit "), y, x + 12, selected == 1);
- print_button(win, gettext(" Help "), y, x + 24, selected == 2);
-+ print_button(win, gettext(" Save "), y, x + 36, selected == 3);
-+ print_button(win, gettext(" Load "), y, x + 48, selected == 4);
-
- wmove(win, y, x + 1 + 12 * selected);
- wrefresh(win);
-@@ -191,7 +193,7 @@
- do_resize:
- height = getmaxy(stdscr);
- width = getmaxx(stdscr);
-- if (height < 15 || width < 65)
-+ if (height < MENUBOX_HEIGTH_MIN || width < MENUBOX_WIDTH_MIN)
- return -ERRDISPLAYTOOSMALL;
-
- height -= 4;
-@@ -201,8 +203,8 @@
- max_choice = MIN(menu_height, item_count());
-
- /* center dialog box on screen */
-- x = (COLS - width) / 2;
-- y = (LINES - height) / 2;
-+ x = (getmaxx(stdscr) - width) / 2;
-+ y = (getmaxy(stdscr) - height) / 2;
-
- draw_shadow(stdscr, y, x, height, width);
-
-@@ -301,10 +303,11 @@
- }
- }
-
-- if (i < max_choice ||
-- key == KEY_UP || key == KEY_DOWN ||
-- key == '-' || key == '+' ||
-- key == KEY_PPAGE || key == KEY_NPAGE) {
-+ if (item_count() != 0 &&
-+ (i < max_choice ||
-+ key == KEY_UP || key == KEY_DOWN ||
-+ key == '-' || key == '+' ||
-+ key == KEY_PPAGE || key == KEY_NPAGE)) {
- /* Remove highligt of current item */
- print_item(scroll + choice, choice, FALSE);
-
-@@ -372,7 +375,7 @@
- case TAB:
- case KEY_RIGHT:
- button = ((key == KEY_LEFT ? --button : ++button) < 0)
-- ? 2 : (button > 2 ? 0 : button);
-+ ? 4 : (button > 4 ? 0 : button);
-
- print_buttons(dialog, height, width, button);
- wrefresh(menu);
-@@ -383,6 +386,10 @@
- case 'n':
- case 'm':
- case '/':
-+ case 'h':
-+ case '?':
-+ case 'z':
-+ case '\n':
- /* save scroll info */
- *s_scroll = scroll;
- delwin(menu);
-@@ -390,30 +397,26 @@
- item_set(scroll + choice);
- item_set_selected(1);
- switch (key) {
-+ case 'h':
-+ case '?':
-+ return 2;
- case 's':
-- return 3;
- case 'y':
-- return 3;
-+ return 5;
- case 'n':
-- return 4;
-+ return 6;
- case 'm':
-- return 5;
-+ return 7;
- case ' ':
-- return 6;
-+ return 8;
- case '/':
-- return 7;
-+ return 9;
-+ case 'z':
-+ return 10;
-+ case '\n':
-+ return button;
- }
- return 0;
-- case 'h':
-- case '?':
-- button = 2;
-- case '\n':
-- *s_scroll = scroll;
-- delwin(menu);
-- delwin(dialog);
-- item_set(scroll + choice);
-- item_set_selected(1);
-- return button;
- case 'e':
- case 'x':
- key = KEY_ESC;
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/textbox.c uClibc-git/extra/config/lxdialog/textbox.c
---- uClibc-0.9.33.2/extra/config/lxdialog/textbox.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/textbox.c 2014-07-25 20:36:04.861324498 +0200
-@@ -22,23 +22,25 @@
- #include "dialog.h"
-
- static void back_lines(int n);
--static void print_page(WINDOW * win, int height, int width);
--static void print_line(WINDOW * win, int row, int width);
-+static void print_page(WINDOW *win, int height, int width, update_text_fn
-+ update_text, void *data);
-+static void print_line(WINDOW *win, int row, int width);
- static char *get_line(void);
- static void print_position(WINDOW * win);
-
- static int hscroll;
- static int begin_reached, end_reached, page_length;
--static const char *buf;
--static const char *page;
-+static char *buf;
-+static char *page;
-
- /*
- * refresh window content
- */
- static void refresh_text_box(WINDOW *dialog, WINDOW *box, int boxh, int boxw,
-- int cur_y, int cur_x)
-+ int cur_y, int cur_x, update_text_fn update_text,
-+ void *data)
- {
-- print_page(box, boxh, boxw);
-+ print_page(box, boxh, boxw, update_text, data);
- print_position(dialog);
- wmove(dialog, cur_y, cur_x); /* Restore cursor position */
- wrefresh(dialog);
-@@ -47,14 +49,18 @@
-
- /*
- * Display text from a file in a dialog box.
-+ *
-+ * keys is a null-terminated array
-+ * update_text() may not add or remove any '\n' or '\0' in tbuf
- */
--int dialog_textbox(const char *title, const char *tbuf,
-- int initial_height, int initial_width)
-+int dialog_textbox(const char *title, char *tbuf, int initial_height,
-+ int initial_width, int *keys, int *_vscroll, int *_hscroll,
-+ update_text_fn update_text, void *data)
- {
- int i, x, y, cur_x, cur_y, key = 0;
- int height, width, boxh, boxw;
-- int passed_end;
- WINDOW *dialog, *box;
-+ bool done = false;
-
- begin_reached = 1;
- end_reached = 0;
-@@ -63,9 +69,18 @@
- buf = tbuf;
- page = buf; /* page is pointer to start of page to be displayed */
-
-+ if (_vscroll && *_vscroll) {
-+ begin_reached = 0;
-+
-+ for (i = 0; i < *_vscroll; i++)
-+ get_line();
-+ }
-+ if (_hscroll)
-+ hscroll = *_hscroll;
-+
- do_resize:
- getmaxyx(stdscr, height, width);
-- if (height < 8 || width < 8)
-+ if (height < TEXTBOX_HEIGTH_MIN || width < TEXTBOX_WIDTH_MIN)
- return -ERRDISPLAYTOOSMALL;
- if (initial_height != 0)
- height = initial_height;
-@@ -83,8 +98,8 @@
- width = 0;
-
- /* center dialog box on screen */
-- x = (COLS - width) / 2;
-- y = (LINES - height) / 2;
-+ x = (getmaxx(stdscr) - width) / 2;
-+ y = (getmaxy(stdscr) - height) / 2;
-
- draw_shadow(stdscr, y, x, height, width);
-
-@@ -120,25 +135,28 @@
-
- /* Print first page of text */
- attr_clear(box, boxh, boxw, dlg.dialog.atr);
-- refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x, update_text,
-+ data);
-
-- while ((key != KEY_ESC) && (key != '\n')) {
-+ while (!done) {
- key = wgetch(dialog);
- switch (key) {
- case 'E': /* Exit */
- case 'e':
- case 'X':
- case 'x':
-- delwin(box);
-- delwin(dialog);
-- return 0;
-+ case 'q':
-+ case '\n':
-+ done = true;
-+ break;
- case 'g': /* First page */
- case KEY_HOME:
- if (!begin_reached) {
- begin_reached = 1;
- page = buf;
- refresh_text_box(dialog, box, boxh, boxw,
-- cur_y, cur_x);
-+ cur_y, cur_x, update_text,
-+ data);
- }
- break;
- case 'G': /* Last page */
-@@ -148,78 +166,48 @@
- /* point to last char in buf */
- page = buf + strlen(buf);
- back_lines(boxh);
-- refresh_text_box(dialog, box, boxh, boxw,
-- cur_y, cur_x);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case 'K': /* Previous line */
- case 'k':
- case KEY_UP:
-- if (!begin_reached) {
-- back_lines(page_length + 1);
--
-- /* We don't call print_page() here but use
-- * scrolling to ensure faster screen update.
-- * However, 'end_reached' and 'page_length'
-- * should still be updated, and 'page' should
-- * point to start of next page. This is done
-- * by calling get_line() in the following
-- * 'for' loop. */
-- scrollok(box, TRUE);
-- wscrl(box, -1); /* Scroll box region down one line */
-- scrollok(box, FALSE);
-- page_length = 0;
-- passed_end = 0;
-- for (i = 0; i < boxh; i++) {
-- if (!i) {
-- /* print first line of page */
-- print_line(box, 0, boxw);
-- wnoutrefresh(box);
-- } else
-- /* Called to update 'end_reached' and 'page' */
-- get_line();
-- if (!passed_end)
-- page_length++;
-- if (end_reached && !passed_end)
-- passed_end = 1;
-- }
-+ if (begin_reached)
-+ break;
-
-- print_position(dialog);
-- wmove(dialog, cur_y, cur_x); /* Restore cursor position */
-- wrefresh(dialog);
-- }
-+ back_lines(page_length + 1);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case 'B': /* Previous page */
- case 'b':
-+ case 'u':
- case KEY_PPAGE:
- if (begin_reached)
- break;
- back_lines(page_length + boxh);
-- refresh_text_box(dialog, box, boxh, boxw,
-- cur_y, cur_x);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case 'J': /* Next line */
- case 'j':
- case KEY_DOWN:
-- if (!end_reached) {
-- begin_reached = 0;
-- scrollok(box, TRUE);
-- scroll(box); /* Scroll box region up one line */
-- scrollok(box, FALSE);
-- print_line(box, boxh - 1, boxw);
-- wnoutrefresh(box);
-- print_position(dialog);
-- wmove(dialog, cur_y, cur_x); /* Restore cursor position */
-- wrefresh(dialog);
-- }
-+ if (end_reached)
-+ break;
-+
-+ back_lines(page_length - 1);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case KEY_NPAGE: /* Next page */
- case ' ':
-+ case 'd':
- if (end_reached)
- break;
-
- begin_reached = 0;
-- refresh_text_box(dialog, box, boxh, boxw,
-- cur_y, cur_x);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case '0': /* Beginning of line */
- case 'H': /* Scroll left */
-@@ -234,8 +222,8 @@
- hscroll--;
- /* Reprint current page to scroll horizontally */
- back_lines(page_length);
-- refresh_text_box(dialog, box, boxh, boxw,
-- cur_y, cur_x);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case 'L': /* Scroll right */
- case 'l':
-@@ -245,11 +233,12 @@
- hscroll++;
- /* Reprint current page to scroll horizontally */
- back_lines(page_length);
-- refresh_text_box(dialog, box, boxh, boxw,
-- cur_y, cur_x);
-+ refresh_text_box(dialog, box, boxh, boxw, cur_y,
-+ cur_x, update_text, data);
- break;
- case KEY_ESC:
-- key = on_key_esc(dialog);
-+ if (on_key_esc(dialog) == KEY_ESC)
-+ done = true;
- break;
- case KEY_RESIZE:
- back_lines(height);
-@@ -257,11 +246,31 @@
- delwin(dialog);
- on_key_resize();
- goto do_resize;
-+ default:
-+ for (i = 0; keys[i]; i++) {
-+ if (key == keys[i]) {
-+ done = true;
-+ break;
-+ }
-+ }
- }
- }
- delwin(box);
- delwin(dialog);
-- return key; /* ESC pressed */
-+ if (_vscroll) {
-+ const char *s;
-+
-+ s = buf;
-+ *_vscroll = 0;
-+ back_lines(page_length);
-+ while (s < page && (s = strchr(s, '\n'))) {
-+ (*_vscroll)++;
-+ s++;
-+ }
-+ }
-+ if (_hscroll)
-+ *_hscroll = hscroll;
-+ return key;
- }
-
- /*
-@@ -298,12 +307,23 @@
- }
-
- /*
-- * Print a new page of text. Called by dialog_textbox().
-+ * Print a new page of text.
- */
--static void print_page(WINDOW * win, int height, int width)
-+static void print_page(WINDOW *win, int height, int width, update_text_fn
-+ update_text, void *data)
- {
- int i, passed_end = 0;
-
-+ if (update_text) {
-+ char *end;
-+
-+ for (i = 0; i < height; i++)
-+ get_line();
-+ end = page;
-+ back_lines(height);
-+ update_text(buf, page - buf, end - buf, data);
-+ }
-+
- page_length = 0;
- for (i = 0; i < height; i++) {
- print_line(win, i, width);
-@@ -316,11 +336,10 @@
- }
-
- /*
-- * Print a new line of text. Called by dialog_textbox() and print_page().
-+ * Print a new line of text.
- */
- static void print_line(WINDOW * win, int row, int width)
- {
-- int y, x;
- char *line;
-
- line = get_line();
-@@ -329,10 +348,10 @@
- waddch(win, ' ');
- waddnstr(win, line, MIN(strlen(line), width - 2));
-
-- getyx(win, y, x);
- /* Clear 'residue' of previous line */
- #if OLD_NCURSES
- {
-+ int x = getcurx(win);
- int i;
- for (i = 0; i < width - x; i++)
- waddch(win, ' ');
-@@ -355,10 +374,8 @@
- end_reached = 0;
- while (*page != '\n') {
- if (*page == '\0') {
-- if (!end_reached) {
-- end_reached = 1;
-- break;
-- }
-+ end_reached = 1;
-+ break;
- } else if (i < MAX_LEN)
- line[i++] = *(page++);
- else {
-@@ -371,7 +388,7 @@
- if (i <= MAX_LEN)
- line[i] = '\0';
- if (!end_reached)
-- page++; /* move pass '\n' */
-+ page++; /* move past '\n' */
-
- return line;
- }
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/util.c uClibc-git/extra/config/lxdialog/util.c
---- uClibc-0.9.33.2/extra/config/lxdialog/util.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/util.c 2014-07-25 20:36:04.861324498 +0200
-@@ -19,8 +19,13 @@
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-+#include <stdarg.h>
-+
- #include "dialog.h"
-
-+/* Needed in signal handler in mconf.c */
-+int saved_x, saved_y;
-+
- struct dialog_info dlg;
-
- static void set_mono_theme(void)
-@@ -249,15 +254,56 @@
-
- void dialog_clear(void)
- {
-- attr_clear(stdscr, LINES, COLS, dlg.screen.atr);
-+ int lines, columns;
-+
-+ lines = getmaxy(stdscr);
-+ columns = getmaxx(stdscr);
-+
-+ attr_clear(stdscr, lines, columns, dlg.screen.atr);
- /* Display background title if it exists ... - SLH */
- if (dlg.backtitle != NULL) {
-- int i;
-+ int i, len = 0, skip = 0;
-+ struct subtitle_list *pos;
-
- wattrset(stdscr, dlg.screen.atr);
- mvwaddstr(stdscr, 0, 1, (char *)dlg.backtitle);
-+
-+ for (pos = dlg.subtitles; pos != NULL; pos = pos->next) {
-+ /* 3 is for the arrow and spaces */
-+ len += strlen(pos->text) + 3;
-+ }
-+
- wmove(stdscr, 1, 1);
-- for (i = 1; i < COLS - 1; i++)
-+ if (len > columns - 2) {
-+ const char *ellipsis = "[...] ";
-+ waddstr(stdscr, ellipsis);
-+ skip = len - (columns - 2 - strlen(ellipsis));
-+ }
-+
-+ for (pos = dlg.subtitles; pos != NULL; pos = pos->next) {
-+ if (skip == 0)
-+ waddch(stdscr, ACS_RARROW);
-+ else
-+ skip--;
-+
-+ if (skip == 0)
-+ waddch(stdscr, ' ');
-+ else
-+ skip--;
-+
-+ if (skip < strlen(pos->text)) {
-+ waddstr(stdscr, pos->text + skip);
-+ skip = 0;
-+ } else
-+ skip -= strlen(pos->text);
-+
-+ if (skip == 0)
-+ waddch(stdscr, ' ');
-+ else
-+ skip--;
-+ }
-+
-+ for (i = len + 1; i < columns - 1; i++)
- waddch(stdscr, ACS_HLINE);
- }
- wnoutrefresh(stdscr);
-@@ -271,8 +317,12 @@
- int height, width;
-
- initscr(); /* Init curses */
-+
-+ /* Get current cursor position for signal handler in mconf.c */
-+ getyx(stdscr, saved_y, saved_x);
-+
- getmaxyx(stdscr, height, width);
-- if (height < 19 || width < 80) {
-+ if (height < WINDOW_HEIGTH_MIN || width < WINDOW_WIDTH_MIN) {
- endwin();
- return -ERRDISPLAYTOOSMALL;
- }
-@@ -293,6 +343,11 @@
- dlg.backtitle = backtitle;
- }
-
-+void set_dialog_subtitles(struct subtitle_list *subtitles)
-+{
-+ dlg.subtitles = subtitles;
-+}
-+
- /*
- * End using dialog functions.
- */
-@@ -321,27 +376,19 @@
- /*
- * Print a string of text in a window, automatically wrap around to the
- * next line if the string is too long to fit on one line. Newline
-- * characters '\n' are replaced by spaces. We start on a new line
-+ * characters '\n' are propperly processed. We start on a new line
- * if there is no room for at least 4 nonblanks following a double-space.
- */
- void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
- {
- int newl, cur_x, cur_y;
-- int i, prompt_len, room, wlen;
-- char tempstr[MAX_LEN + 1], *word, *sp, *sp2;
-+ int prompt_len, room, wlen;
-+ char tempstr[MAX_LEN + 1], *word, *sp, *sp2, *newline_separator = 0;
-
- strcpy(tempstr, prompt);
-
- prompt_len = strlen(tempstr);
-
-- /*
-- * Remove newlines
-- */
-- for (i = 0; i < prompt_len; i++) {
-- if (tempstr[i] == '\n')
-- tempstr[i] = ' ';
-- }
--
- if (prompt_len <= width - x * 2) { /* If prompt is short */
- wmove(win, y, (width - prompt_len) / 2);
- waddstr(win, tempstr);
-@@ -351,7 +398,10 @@
- newl = 1;
- word = tempstr;
- while (word && *word) {
-- sp = strchr(word, ' ');
-+ sp = strpbrk(word, "\n ");
-+ if (sp && *sp == '\n')
-+ newline_separator = sp;
-+
- if (sp)
- *sp++ = 0;
-
-@@ -363,7 +413,7 @@
- if (wlen > room ||
- (newl && wlen < 4 && sp
- && wlen + 1 + strlen(sp) > room
-- && (!(sp2 = strchr(sp, ' '))
-+ && (!(sp2 = strpbrk(sp, "\n "))
- || wlen + 1 + (sp2 - sp) > room))) {
- cur_y++;
- cur_x = x;
-@@ -371,7 +421,15 @@
- wmove(win, cur_y, cur_x);
- waddstr(win, word);
- getyx(win, cur_y, cur_x);
-- cur_x++;
-+
-+ /* Move to the next line if the word separator was a newline */
-+ if (newline_separator) {
-+ cur_y++;
-+ cur_x = x;
-+ newline_separator = 0;
-+ } else
-+ cur_x++;
-+
- if (sp && *sp == ' ') {
- cur_x++; /* double space */
- while (*++sp == ' ') ;
-diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/yesno.c uClibc-git/extra/config/lxdialog/yesno.c
---- uClibc-0.9.33.2/extra/config/lxdialog/yesno.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/lxdialog/yesno.c 2014-07-25 20:36:04.861324498 +0200
-@@ -45,14 +45,14 @@
- WINDOW *dialog;
-
- do_resize:
-- if (getmaxy(stdscr) < (height + 4))
-+ if (getmaxy(stdscr) < (height + YESNO_HEIGTH_MIN))
- return -ERRDISPLAYTOOSMALL;
-- if (getmaxx(stdscr) < (width + 4))
-+ if (getmaxx(stdscr) < (width + YESNO_WIDTH_MIN))
- return -ERRDISPLAYTOOSMALL;
-
- /* center dialog box on screen */
-- x = (COLS - width) / 2;
-- y = (LINES - height) / 2;
-+ x = (getmaxx(stdscr) - width) / 2;
-+ y = (getmaxy(stdscr) - height) / 2;
-
- draw_shadow(stdscr, y, x, height, width);
-
-diff -Nur uClibc-0.9.33.2/extra/config/Makefile uClibc-git/extra/config/Makefile
---- uClibc-0.9.33.2/extra/config/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/Makefile 2014-07-25 20:36:04.853324457 +0200
-@@ -1,16 +1,17 @@
- top_srcdir ?= ../../
-
--include $(top_srcdir)Rules.mak
--include $(top_srcdir)Makerules
--
--# ugh
--top_srcdir:=$(shell cd $(top_srcdir) && pwd)/
- ifdef O
- top_builddir ?= ../../
- else
- top_builddir = ../../
- endif
--srctree := $(top_srcdir)
-+
-+include $(top_srcdir)Rules.mak
-+include $(top_srcdir)Makerules
-+
-+# ugh
-+top_srcdir:=$(shell cd $(top_srcdir) && pwd)/
-+
- src := extra/config
- obj := $(top_builddir)$(src)
-
-@@ -18,29 +19,23 @@
- generated := $(addprefix $(obj)/,$(generated:.c=.o))
-
- include $(top_srcdir)extra/config/Makefile.kconfig
--PHONY += $(always)
--chk-lxdialog := $(top_srcdir)$(src)/lxdialog/check-lxdialog.sh
--check-lxdialog := cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog)
--HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ccflags')
--HOST_LOADLIBES = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ldflags $(HOSTCC)')
--HOST_EXTRACFLAGS += -DLOCALE
--HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) -c '$(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)')
-+HOST_EXTRACFLAGS += -DCONFIG_='""'
-
- # do not create temporary object in the readonly srctree
--$(obj)/dochecklxdialog:
-- $(Q)cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
--HOSTCFLAGS_lex.zconf.o := -I$(top_srcdir)$(src)
-+$(obj)/dochecklxdialog: CONFIG_SHELL:=cd $(obj) && $(CONFIG_SHELL)
-+HOSTCFLAGS_zconf.lex.o := -I$(top_srcdir)$(src)
- HOSTCFLAGS_zconf.tab.o := -I$(top_srcdir)$(src)
- conf-objs := $(addprefix $(obj)/,$(conf-objs))
- mconf-objs := $(addprefix $(obj)/,$(mconf-objs))
-+nconf-objs := $(addprefix $(obj)/,$(nconf-objs))
- kxgettext-objs := $(addprefix $(obj)/,$(kxgettext-objs))
-
- ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
- hostprogs-y += mconf
- endif
--
--#BUILD_CFLAGS-config = -W -Wall -pedantic
--#BUILD_CFLAGS-lxdialog = -W -Wall -pedantic
-+ifeq ($(findstring nconf,$(MAKECMDGOALS)),nconf)
-+hostprogs-y += nconf
-+endif
-
- __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
- host-csingle:= $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
-@@ -48,16 +43,18 @@
- $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
- host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
-
--conf mconf kxgettext: %: $(obj)/%
--$(obj)/conf $(obj)/mconf $(obj)/kxgettext: BUILD_LDFLAGS=$(HOST_LOADLIBES)
-+conf mconf nconf kxgettext: %: $(obj)/%
-+$(obj)/conf $(obj)/mconf $(obj)/nconf $(obj)/kxgettext: BUILD_LDFLAGS=$(HOSTLOADLIBES_$(@F))
- $(obj)/conf: $(conf-objs)
- $(hcompile.u)
- $(obj)/mconf: $(mconf-objs)
- $(hcompile.u)
-+$(obj)/nconf: $(nconf-objs)
-+ $(hcompile.u)
- $(obj)/kxgettext: $(kxgettext-objs)
- $(hcompile.u)
-
--$(host-csingle) $(host-cmulti) $(host-cobjs): BUILD_CFLAGS=$(HOST_EXTRACFLAGS) \
-+$(host-csingle) $(host-cmulti) $(host-cobjs): BUILD_CFLAGS+=$(HOST_EXTRACFLAGS) \
- $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F))
-
- host-cobjs.nogen := $(filter-out $(generated),$(host-cobjs))
-@@ -68,19 +65,18 @@
- $(host-cobjs.generated): $(obj)/%.o: $(obj)/%.c
- $(hcompile.o)
-
--ifndef LKC_GENPARSER
-+# we use the pre-generated always
- $(obj)/%:: $(top_srcdir)$(src)/%_shipped
- @$(disp_gen)
- $(Q)cat $< > $@
--endif
-+
- CLEAN_extra/config menuconfig_clean:
- $(do_rm) $(clean-files) $(lxdialog) conf $(wildcard *.o)
--distclean: clean
-- $(do_rm) $(lxdialog) $(conf-objs) $(mconf-objs) \
-+distclean: CLEAN_extra/config
-+ $(Q)$(RM) -r $(lxdialog) $(conf-objs) $(mconf-objs) $(nconf-objs) \
- $(kxgettext-objs) \
- $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \
-- .depend
-- $(do_rm) -r $(top_builddir)include/config
-+ .depend \
-+ $(top_builddir)include/config $(top_builddir)include/generated
-
--FORCE:
--.PHONY: FORCE clean distclean $(always)
-+.PHONY: clean distclean $(PHONY)
-diff -Nur uClibc-0.9.33.2/extra/config/Makefile.kconfig uClibc-git/extra/config/Makefile.kconfig
---- uClibc-0.9.33.2/extra/config/Makefile.kconfig 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/Makefile.kconfig 2014-07-25 20:36:04.853324457 +0200
-@@ -2,14 +2,18 @@
- # Kernel configuration targets
- # These targets are used from top-level makefile
-
--PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
-+PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
-+ localmodconfig localyesconfig
-
- ifdef KBUILD_KCONFIG
- Kconfig := $(KBUILD_KCONFIG)
- else
--Kconfig := arch/$(SRCARCH)/Kconfig
-+Kconfig := Kconfig
- endif
-
-+# We need this, in case the user has it in its environment
-+unexport CONFIG_
-+
- xconfig: $(obj)/qconf
- $< $(Kconfig)
-
-@@ -20,91 +24,121 @@
- $< $(Kconfig)
-
- config: $(obj)/conf
-+ $< --oldaskconfig $(Kconfig)
-+
-+nconfig: $(obj)/nconf
- $< $(Kconfig)
-
- oldconfig: $(obj)/conf
-- $< -o $(Kconfig)
-+ $< --$@ $(Kconfig)
-
- silentoldconfig: $(obj)/conf
-- $< -s $(Kconfig)
-+ $(Q)mkdir -p include/generated
-+ $< --$@ $(Kconfig)
-+
-+localyesconfig localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
-+ $(Q)mkdir -p include/generated
-+ $(Q)perl $< --$@ $(srctree) $(Kconfig) > .tmp.config
-+ $(Q)if [ -f .config ]; then \
-+ cmp -s .tmp.config .config || \
-+ (mv -f .config .config.old.1; \
-+ mv -f .tmp.config .config; \
-+ $(obj)/conf --silentoldconfig $(Kconfig); \
-+ mv -f .config.old.1 .config.old) \
-+ else \
-+ mv -f .tmp.config .config; \
-+ $(obj)/conf --silentoldconfig $(Kconfig); \
-+ fi
-+ $(Q)rm -f .tmp.config
-
- # Create new linux.pot file
- # Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
--# The symlink is used to repair a deficiency in arch/um
- update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
-- $(Q)echo " GEN config"
-- $(Q)xgettext --default-domain=linux \
-- --add-comments --keyword=_ --keyword=N_ \
-- --from-code=UTF-8 \
-- --files-from=scripts/kconfig/POTFILES.in \
-+ $(Q)echo " GEN config.pot"
-+ $(Q)xgettext --default-domain=linux \
-+ --add-comments --keyword=_ --keyword=N_ \
-+ --from-code=UTF-8 \
-+ --files-from=$(srctree)/scripts/kconfig/POTFILES.in \
-+ --directory=$(srctree) --directory=$(objtree) \
- --output $(obj)/config.pot
- $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
-- $(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
-- $(Q)(for i in `ls arch/*/Kconfig`; \
-+ $(Q)(for i in `ls $(srctree)/arch/*/Kconfig \
-+ $(srctree)/arch/*/um/Kconfig`; \
- do \
-- echo " GEN $$i"; \
-+ echo " GEN $$i"; \
- $(obj)/kxgettext $$i \
- >> $(obj)/config.pot; \
- done )
-+ $(Q)echo " GEN linux.pot"
- $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
- --output $(obj)/linux.pot
-- $(Q)rm -f arch/um/Kconfig.arch
- $(Q)rm -f $(obj)/config.pot
-
--PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig
-+PHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig
-
--randconfig: $(obj)/conf
-- $< -r $(Kconfig)
-+allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
-+ $< --$@ $(Kconfig)
-
--allyesconfig: $(obj)/conf
-- $< -y $(Kconfig)
-+PHONY += listnewconfig olddefconfig oldnoconfig savedefconfig defconfig
-
--allnoconfig: $(obj)/conf
-- $< -n $(Kconfig)
-+listnewconfig olddefconfig: $(obj)/conf
-+ $< --$@ $(Kconfig)
-
--allmodconfig: $(obj)/conf
-- $< -m $(Kconfig)
-+# oldnoconfig is an alias of olddefconfig, because people already are dependent
-+# on its behavior(sets new symbols to their default value but not 'n') with the
-+# counter-intuitive name.
-+oldnoconfig: $(obj)/conf
-+ $< --olddefconfig $(Kconfig)
-+
-+savedefconfig: $(obj)/conf
-+ $< --$@=defconfig $(Kconfig)
-
- defconfig: $(obj)/conf
- ifeq ($(KBUILD_DEFCONFIG),)
-- $< -d $(Kconfig)
-+ $< --defconfig $(Kconfig)
- else
- @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
-- $(Q)$< -D arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
-+ $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
- endif
-
- %_defconfig: $(obj)/conf
-- $(Q)$< -D arch/$(SRCARCH)/configs/$@ $(Kconfig)
-+ $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
-
- # Help text used by make help
- help:
- @echo ' config - Update current config utilising a line-oriented program'
-+ @echo ' nconfig - Update current config utilising a ncurses menu based program'
- @echo ' menuconfig - Update current config utilising a menu based program'
- @echo ' xconfig - Update current config utilising a QT based front-end'
- @echo ' gconfig - Update current config utilising a GTK based front-end'
- @echo ' oldconfig - Update current config utilising a provided .config as base'
-- @echo ' silentoldconfig - Same as oldconfig, but quietly'
-- @echo ' randconfig - New config with random answer to all options'
-- @echo ' defconfig - New config with default answer to all options'
-- @echo ' allmodconfig - New config selecting modules when possible'
-- @echo ' allyesconfig - New config where all options are accepted with yes'
-+ @echo ' localmodconfig - Update current config disabling modules not loaded'
-+ @echo ' localyesconfig - Update current config converting local mods to core'
-+ @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
-+ @echo ' defconfig - New config with default from ARCH supplied defconfig'
-+ @echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
- @echo ' allnoconfig - New config where all options are answered with no'
-+ @echo ' allyesconfig - New config where all options are accepted with yes'
-+ @echo ' allmodconfig - New config selecting modules when possible'
-+ @echo ' alldefconfig - New config with all symbols set to default'
-+ @echo ' randconfig - New config with random answer to all options'
-+ @echo ' listnewconfig - List new options'
-+ @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their default value'
-
- # lxdialog stuff
- check-lxdialog := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
-
- # Use recursively expanded variables so we do not call gcc unless
- # we really need to do so. (Do not call gcc as part of make mrproper)
--HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
--HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
--
--HOST_EXTRACFLAGS += -DLOCALE
--
-+HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
-+ -DLOCALE
-
- # ===========================================================================
- # Shared Makefile for the various kconfig executables:
- # conf: Used for defconfig, oldconfig and related targets
--# mconf: Used for the mconfig target.
-+# nconf: Used for the nconfig target.
-+# Utilizes ncurses
-+# mconf: Used for the menuconfig target
- # Utilizes the lxdialog package
- # qconf: Used for the xconfig target
- # Based on QT which needs to be installed to compile it
-@@ -116,15 +150,27 @@
- lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
-
- conf-objs := conf.o zconf.tab.o
--mconf-objs := mconf.o zconf.tab.o $(lxdialog)
-+mconf-objs := mconf.o zconf.tab.o $(lxdialog)
-+nconf-objs := nconf.o zconf.tab.o nconf.gui.o
- kxgettext-objs := kxgettext.o zconf.tab.o
-+qconf-cxxobjs := qconf.o
-+qconf-objs := zconf.tab.o
-+gconf-objs := gconf.o zconf.tab.o
-+
-+hostprogs-y := conf
-
--hostprogs-y := conf qconf gconf kxgettext
-+ifeq ($(MAKECMDGOALS),nconfig)
-+ hostprogs-y += nconf
-+endif
-
- ifeq ($(MAKECMDGOALS),menuconfig)
- hostprogs-y += mconf
- endif
-
-+ifeq ($(MAKECMDGOALS),update-po-config)
-+ hostprogs-y += kxgettext
-+endif
-+
- ifeq ($(MAKECMDGOALS),xconfig)
- qconf-target := 1
- endif
-@@ -134,24 +180,23 @@
-
-
- ifeq ($(qconf-target),1)
--qconf-cxxobjs := qconf.o
--qconf-objs := kconfig_load.o zconf.tab.o
-+ hostprogs-y += qconf
- endif
-
- ifeq ($(gconf-target),1)
--gconf-objs := gconf.o kconfig_load.o zconf.tab.o
-+ hostprogs-y += gconf
- endif
-
--clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
-- .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
--clean-files += mconf qconf gconf
-+clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck
-+clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
-+clean-files += mconf qconf gconf nconf
- clean-files += config.pot linux.pot
-
- # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
- PHONY += $(obj)/dochecklxdialog
- $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
--#$(obj)/dochecklxdialog:
--# $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
-+$(obj)/dochecklxdialog:
-+ $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
-
- always := dochecklxdialog
-
-@@ -159,16 +204,24 @@
- HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
-
- # generated files seem to need this to find local include files
--HOSTCFLAGS_lex.zconf.o := -I$(src)
-+HOSTCFLAGS_zconf.lex.o := -I$(src)
- HOSTCFLAGS_zconf.tab.o := -I$(src)
-
--HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
--HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
-+LEX_PREFIX_zconf := zconf
-+YACC_PREFIX_zconf := zconf
-+
-+HOSTLOADLIBES_qconf = $(KC_QT_LIBS)
-+HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS)
-
- HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
- HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
-- -D LKC_DIRECT_LINK
-+ -Wno-missing-prototypes
-
-+HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
-+
-+HOSTLOADLIBES_nconf = $(shell \
-+ pkg-config --libs menu panel ncurses 2>/dev/null \
-+ || echo "-lmenu -lpanel -lncurses" )
- $(obj)/qconf.o: $(obj)/.tmp_qtcheck
-
- ifeq ($(qconf-target),1)
-@@ -178,40 +231,48 @@
- # QT needs some extra effort...
- $(obj)/.tmp_qtcheck:
- @set -e; echo " CHECK qt"; dir=""; pkg=""; \
-- pkg-config --exists qt 2> /dev/null && pkg=qt; \
-- pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
-- if [ -n "$$pkg" ]; then \
-- cflags="\$$(shell pkg-config $$pkg --cflags)"; \
-- libs="\$$(shell pkg-config $$pkg --libs)"; \
-- moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
-- dir="$$(pkg-config $$pkg --variable=prefix)"; \
-+ if ! pkg-config --exists QtCore 2> /dev/null; then \
-+ echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \
-+ pkg-config --exists qt 2> /dev/null && pkg=qt; \
-+ pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
-+ if [ -n "$$pkg" ]; then \
-+ cflags="\$$(shell pkg-config $$pkg --cflags)"; \
-+ libs="\$$(shell pkg-config $$pkg --libs)"; \
-+ moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
-+ dir="$$(pkg-config $$pkg --variable=prefix)"; \
-+ else \
-+ for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
-+ if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
-+ done; \
-+ if [ -z "$$dir" ]; then \
-+ echo >&2 "*"; \
-+ echo >&2 "* Unable to find any QT installation. Please make sure that"; \
-+ echo >&2 "* the QT4 or QT3 development package is correctly installed and"; \
-+ echo >&2 "* either qmake can be found or install pkg-config or set"; \
-+ echo >&2 "* the QTDIR environment variable to the correct location."; \
-+ echo >&2 "*"; \
-+ false; \
-+ fi; \
-+ libpath=$$dir/lib; lib=qt; osdir=""; \
-+ $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
-+ osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
-+ test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
-+ test -f $$libpath/libqt-mt.so && lib=qt-mt; \
-+ cflags="-I$$dir/include"; \
-+ libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
-+ moc="$$dir/bin/moc"; \
-+ fi; \
-+ if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
-+ echo "*"; \
-+ echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
-+ echo "*"; \
-+ moc="/usr/bin/moc"; \
-+ fi; \
- else \
-- for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
-- if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
-- done; \
-- if [ -z "$$dir" ]; then \
-- echo "*"; \
-- echo "* Unable to find the QT3 installation. Please make sure that"; \
-- echo "* the QT3 development package is correctly installed and"; \
-- echo "* either install pkg-config or set the QTDIR environment"; \
-- echo "* variable to the correct location."; \
-- echo "*"; \
-- false; \
-- fi; \
-- libpath=$$dir/lib; lib=qt; osdir=""; \
-- $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
-- osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
-- test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
-- test -f $$libpath/libqt-mt.so && lib=qt-mt; \
-- cflags="-I$$dir/include"; \
-- libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
-- moc="$$dir/bin/moc"; \
-- fi; \
-- if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
-- echo "*"; \
-- echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
-- echo "*"; \
-- moc="/usr/bin/moc"; \
-+ cflags="\$$(shell pkg-config QtCore QtGui Qt3Support --cflags)"; \
-+ libs="\$$(shell pkg-config QtCore QtGui Qt3Support --libs)"; \
-+ moc="\$$(shell pkg-config QtCore --variable=moc_location)"; \
-+ [ -n "$$moc" ] || moc="\$$(shell pkg-config QtCore --variable=prefix)/bin/moc"; \
- fi; \
- echo "KC_QT_CFLAGS=$$cflags" > $@; \
- echo "KC_QT_LIBS=$$libs" >> $@; \
-@@ -229,61 +290,33 @@
- if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
- touch $@; \
- else \
-- echo "*"; \
-- echo "* GTK+ is present but version >= 2.0.0 is required."; \
-- echo "*"; \
-+ echo >&2 "*"; \
-+ echo >&2 "* GTK+ is present but version >= 2.0.0 is required."; \
-+ echo >&2 "*"; \
- false; \
- fi \
- else \
-- echo "*"; \
-- echo "* Unable to find the GTK+ installation. Please make sure that"; \
-- echo "* the GTK+ 2.0 development package is correctly installed..."; \
-- echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \
-- echo "*"; \
-+ echo >&2 "*"; \
-+ echo >&2 "* Unable to find the GTK+ installation. Please make sure that"; \
-+ echo >&2 "* the GTK+ 2.0 development package is correctly installed..."; \
-+ echo >&2 "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \
-+ echo >&2 "*"; \
- false; \
- fi
- endif
-
--$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
--
--$(obj)/kconfig_load.o: $(obj)/lkc_defs.h
-+$(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c
-
--$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h
-+$(obj)/qconf.o: $(obj)/qconf.moc
-
--$(obj)/gconf.o: $(obj)/lkc_defs.h
-+quiet_cmd_moc = MOC $@
-+ cmd_moc = $(KC_QT_MOC) -i $< -o $@
-
--$(obj)/%.moc: $(src)/%.h
-- $(KC_QT_MOC) -i $< -o $@
--
--$(obj)/lkc_defs.h: $(src)/lkc_proto.h
-- sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
-+$(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck
-+ $(call cmd,moc)
-
- # Extract gconf menu items for I18N support
- $(obj)/gconf.glade.h: $(obj)/gconf.glade
-- intltool-extract --type=gettext/glade $(obj)/gconf.glade
--
--###
--# The following requires flex/bison/gperf
--# By default we use the _shipped versions, uncomment the following line if
--# you are modifying the flex/bison src.
--# LKC_GENPARSER := 1
--
--ifdef LKC_GENPARSER
--
--$(obj)/zconf.tab.c: $(src)/zconf.y
--$(obj)/lex.zconf.c: $(src)/zconf.l
--$(obj)/zconf.hash.c: $(src)/zconf.gperf
--
--%.tab.c: %.y
-- bison -l -b $* -p $(notdir $*) $<
-- cp $@ $@_shipped
--
--lex.%.c: %.l
-- flex -L -P$(notdir $*) -o$@ $<
-- cp $@ $@_shipped
--
--%.hash.c: %.gperf
-- gperf < $< > $@
-- cp $@ $@_shipped
-+ $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
-+ $(obj)/gconf.glade
-
--endif
-diff -Nur uClibc-0.9.33.2/extra/config/mconf.c uClibc-git/extra/config/mconf.c
---- uClibc-0.9.33.2/extra/config/mconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/mconf.c 2014-07-25 20:36:04.861324498 +0200
-@@ -15,20 +15,19 @@
- #include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <signal.h>
- #include <unistd.h>
- #include <locale.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
- #include "lxdialog/dialog.h"
-
- static const char mconf_readme[] = N_(
- "Overview\n"
- "--------\n"
--"Some features may be built directly into uClibc. Some features\n"
--"may be completely removed altogether. There are also certain\n"
--"parameters which are not really features, but must be\n"
--"entered in as decimal or hexadecimal numbers or possibly text.\n"
-+"This interface let you select features and parameters for the build.\n"
-+"Features can either be built-in, modularized, or ignored. Parameters\n"
-+"must be entered in as decimal or hexadecimal numbers or text.\n"
- "\n"
- "Menu items beginning with following braces represent features that\n"
- " [ ] can be built in or removed\n"
-@@ -49,7 +48,7 @@
- "----------\n"
- "o Use the Up/Down arrow keys (cursor keys) to highlight the item\n"
- " you wish to change or submenu wish to select and press <Enter>.\n"
--" Submenus are designated by \"--->\".\n"
-+" Submenus are designated by \"--->\", empty ones by \"----\".\n"
- "\n"
- " Shortcut: Press the option's highlighted letter (hotkey).\n"
- " Pressing a hotkey more than once will sequence\n"
-@@ -66,13 +65,15 @@
- " there is a delayed response which you may find annoying.\n"
- "\n"
- " Also, the <TAB> and cursor keys will cycle between <Select>,\n"
--" <Exit> and <Help>\n"
-+" <Exit> and <Help>.\n"
- "\n"
- "o To get help with an item, use the cursor keys to highlight <Help>\n"
--" and Press <ENTER>.\n"
-+" and press <ENTER>.\n"
- "\n"
- " Shortcut: Press <H> or <?>.\n"
- "\n"
-+"o To toggle the display of hidden options, press <Z>.\n"
-+"\n"
- "\n"
- "Radiolists (Choice lists)\n"
- "-----------\n"
-@@ -104,10 +105,10 @@
- "Text Box (Help Window)\n"
- "--------\n"
- "o Use the cursor keys to scroll up/down/left/right. The VI editor\n"
--" keys h,j,k,l function here as do <SPACE BAR> and <B> for those\n"
--" who are familiar with less and lynx.\n"
-+" keys h,j,k,l function here as do <u>, <d>, <SPACE BAR> and <B> for \n"
-+" those who are familiar with less and lynx.\n"
- "\n"
--"o Press <E>, <X>, <Enter> or <Esc><Esc> to exit.\n"
-+"o Press <E>, <X>, <q>, <Enter> or <Esc><Esc> to exit.\n"
- "\n"
- "\n"
- "Alternate Configuration Files\n"
-@@ -147,9 +148,9 @@
- "\n"
- "Optional personality available\n"
- "------------------------------\n"
--"If you prefer to have all of the options listed in a single\n"
--"menu, rather than the default multimenu hierarchy, run the menuconfig\n"
--"with MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
-+"If you prefer to have all of the options listed in a single menu, rather\n"
-+"than the default multimenu hierarchy, run the menuconfig with\n"
-+"MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
- "\n"
- "make MENUCONFIG_MODE=single_menu menuconfig\n"
- "\n"
-@@ -175,11 +176,11 @@
- "\n"),
- menu_instructions[] = N_(
- "Arrow keys navigate the menu. "
-- "<Enter> selects submenus --->. "
-+ "<Enter> selects submenus ---> (or empty submenus ----). "
- "Highlighted letters are hotkeys. "
-- "Pressing <Y> selectes a feature, while <N> will exclude a feature. "
-+ "Pressing <Y> includes, <N> excludes, <M> modularizes features. "
- "Press <Esc><Esc> to exit, <?> for Help, </> for Search. "
-- "Legend: [*] feature is selected [ ] feature is excluded"),
-+ "Legend: [*] built-in [ ] excluded <M> module < > module capable"),
- radiolist_instructions[] = N_(
- "Use the arrow keys to navigate this window or "
- "press the hotkey of the item you wish to select "
-@@ -198,8 +199,6 @@
- setmod_text[] = N_(
- "This feature depends on another which has been configured as a module.\n"
- "As a result, this feature will be built as a module."),
--nohelp_text[] = N_(
-- "There is no help available for this option.\n"),
- load_config_text[] = N_(
- "Enter the name of the configuration file you wish to load. "
- "Accept the name shown to restore the configuration you "
-@@ -210,18 +209,18 @@
- "configurations available on a single machine.\n"
- "\n"
- "If you have saved a previous configuration in a file other than the\n"
-- "default, entering the name of the file here will allow you\n"
-- "to modify that configuration.\n"
-+ "default one, entering its name here will allow you to modify that\n"
-+ "configuration.\n"
- "\n"
- "If you are uncertain, then you have probably never used alternate\n"
-- "configuration files. You should therefor leave this blank to abort.\n"),
-+ "configuration files. You should therefore leave this blank to abort.\n"),
- save_config_text[] = N_(
- "Enter a filename to which this configuration should be saved "
- "as an alternate. Leave blank to abort."),
- save_config_help[] = N_(
- "\n"
-- "For various reasons, one may wish to keep different\n"
-- "configurations available on a single machine.\n"
-+ "For various reasons, one may wish to keep different configurations\n"
-+ "available on a single machine.\n"
- "\n"
- "Entering a file name here will allow you to later retrieve, modify\n"
- "and use the current configuration as an alternate to whatever\n"
-@@ -231,32 +230,39 @@
- "leave this blank.\n"),
- search_help[] = N_(
- "\n"
-- "Search for CONFIG_ symbols and display their relations.\n"
-+ "Search for symbols and display their relations.\n"
- "Regular expressions are allowed.\n"
- "Example: search for \"^FOO\"\n"
- "Result:\n"
- "-----------------------------------------------------------------\n"
- "Symbol: FOO [=m]\n"
-+ "Type : tristate\n"
- "Prompt: Foo bus is used to drive the bar HW\n"
-- "Defined at drivers/pci/Kconfig:47\n"
-- "Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
-- "Location:\n"
-- " -> Bus options (PCI, PCMCIA, EISA, MCA, ISA)\n"
-- " -> PCI support (PCI [=y])\n"
-- " -> PCI access mode (<choice> [=y])\n"
-- "Selects: LIBCRC32\n"
-- "Selected by: BAR\n"
-+ " Defined at drivers/pci/Kconfig:47\n"
-+ " Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
-+ " Location:\n"
-+ " -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
-+ " -> PCI support (PCI [=y])\n"
-+ "(1) -> PCI access mode (<choice> [=y])\n"
-+ " Selects: LIBCRC32\n"
-+ " Selected by: BAR\n"
- "-----------------------------------------------------------------\n"
-+ "o The line 'Type:' shows the type of the configuration option for\n"
-+ " this symbol (boolean, tristate, string, ...)\n"
- "o The line 'Prompt:' shows the text used in the menu structure for\n"
-- " this CONFIG_ symbol\n"
-+ " this symbol\n"
- "o The 'Defined at' line tell at what file / line number the symbol\n"
- " is defined\n"
- "o The 'Depends on:' line tell what symbols needs to be defined for\n"
- " this symbol to be visible in the menu (selectable)\n"
- "o The 'Location:' lines tell where in the menu structure this symbol\n"
- " is located\n"
-- " A location followed by a [=y] indicate that this is a selectable\n"
-- " menu item - and current value is displayed inside brackets.\n"
-+ " A location followed by a [=y] indicates that this is a\n"
-+ " selectable menu item - and the current value is displayed inside\n"
-+ " brackets.\n"
-+ " Press the key in the (#) prefix to jump directly to that\n"
-+ " location. You will be returned to the current search results\n"
-+ " after exiting this new menu.\n"
- "o The 'Selects:' line tell what symbol will be automatically\n"
- " selected if this symbol is selected (y or m)\n"
- "o The 'Selected by' line tell what symbol has selected this symbol\n"
-@@ -264,131 +270,144 @@
- "Only relevant lines are shown.\n"
- "\n\n"
- "Search examples:\n"
-- "Examples: USB => find all CONFIG_ symbols containing USB\n"
-- " ^USB => find all CONFIG_ symbols starting with USB\n"
-- " USB$ => find all CONFIG_ symbols ending with USB\n"
-+ "Examples: USB => find all symbols containing USB\n"
-+ " ^USB => find all symbols starting with USB\n"
-+ " USB$ => find all symbols ending with USB\n"
- "\n");
-
- static int indent;
- static struct menu *current_menu;
- static int child_count;
- static int single_menu_mode;
-+static int show_all_options;
-+static int save_and_exit;
-
--static void conf(struct menu *menu);
-+static void conf(struct menu *menu, struct menu *active_menu);
- static void conf_choice(struct menu *menu);
- static void conf_string(struct menu *menu);
- static void conf_load(void);
- static void conf_save(void);
-+static int show_textbox_ext(const char *title, char *text, int r, int c,
-+ int *keys, int *vscroll, int *hscroll,
-+ update_text_fn update_text, void *data);
- static void show_textbox(const char *title, const char *text, int r, int c);
- static void show_helptext(const char *title, const char *text);
- static void show_help(struct menu *menu);
-
--static void get_prompt_str(struct gstr *r, struct property *prop)
-+static char filename[PATH_MAX+1];
-+static void set_config_filename(const char *config_filename)
- {
-- int i, j;
-- struct menu *submenu[8], *menu;
-+ static char menu_backtitle[PATH_MAX+128];
-+ int size;
-
-- str_printf(r, _("Prompt: %s\n"), _(prop->text));
-- str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
-- prop->menu->lineno);
-- if (!expr_is_yes(prop->visible.expr)) {
-- str_append(r, _(" Depends on: "));
-- expr_gstr_print(prop->visible.expr, r);
-- str_append(r, "\n");
-- }
-- menu = prop->menu->parent;
-- for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent)
-- submenu[i++] = menu;
-- if (i > 0) {
-- str_printf(r, _(" Location:\n"));
-- for (j = 4; --i >= 0; j += 2) {
-- menu = submenu[i];
-- str_printf(r, "%*c-> %s", j, ' ', _(menu_get_prompt(menu)));
-- if (menu->sym) {
-- str_printf(r, " (%s [=%s])", menu->sym->name ?
-- menu->sym->name : _("<choice>"),
-- sym_get_string_value(menu->sym));
-- }
-- str_append(r, "\n");
-- }
-- }
-+ size = snprintf(menu_backtitle, sizeof(menu_backtitle),
-+ "%s - %s", config_filename, rootmenu.prompt->text);
-+ if (size >= sizeof(menu_backtitle))
-+ menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
-+ set_dialog_backtitle(menu_backtitle);
-+
-+ size = snprintf(filename, sizeof(filename), "%s", config_filename);
-+ if (size >= sizeof(filename))
-+ filename[sizeof(filename)-1] = '\0';
- }
-
--static void get_symbol_str(struct gstr *r, struct symbol *sym)
-+struct subtitle_part {
-+ struct list_head entries;
-+ const char *text;
-+};
-+static LIST_HEAD(trail);
-+
-+static struct subtitle_list *subtitles;
-+static void set_subtitle(void)
- {
-- bool hit;
-- struct property *prop;
-+ struct subtitle_part *sp;
-+ struct subtitle_list *pos, *tmp;
-
-- if (sym && sym->name)
-- str_printf(r, "Symbol: %s [=%s]\n", sym->name,
-- sym_get_string_value(sym));
-- for_all_prompts(sym, prop)
-- get_prompt_str(r, prop);
-- hit = false;
-- for_all_properties(sym, prop, P_SELECT) {
-- if (!hit) {
-- str_append(r, " Selects: ");
-- hit = true;
-- } else
-- str_printf(r, " && ");
-- expr_gstr_print(prop->expr, r);
-+ for (pos = subtitles; pos != NULL; pos = tmp) {
-+ tmp = pos->next;
-+ free(pos);
- }
-- if (hit)
-- str_append(r, "\n");
-- if (sym->rev_dep.expr) {
-- str_append(r, _(" Selected by: "));
-- expr_gstr_print(sym->rev_dep.expr, r);
-- str_append(r, "\n");
-+
-+ subtitles = NULL;
-+ list_for_each_entry(sp, &trail, entries) {
-+ if (sp->text) {
-+ if (pos) {
-+ pos->next = xcalloc(sizeof(*pos), 1);
-+ pos = pos->next;
-+ } else {
-+ subtitles = pos = xcalloc(sizeof(*pos), 1);
-+ }
-+ pos->text = sp->text;
-+ }
- }
-- str_append(r, "\n\n");
-+
-+ set_dialog_subtitles(subtitles);
- }
-
--static struct gstr get_relations_str(struct symbol **sym_arr)
-+static void reset_subtitle(void)
- {
-- struct symbol *sym;
-- struct gstr res = str_new();
-- int i;
-+ struct subtitle_list *pos, *tmp;
-
-- for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
-- get_symbol_str(&res, sym);
-- if (!i)
-- str_append(&res, _("No matches found.\n"));
-- return res;
-+ for (pos = subtitles; pos != NULL; pos = tmp) {
-+ tmp = pos->next;
-+ free(pos);
-+ }
-+ subtitles = NULL;
-+ set_dialog_subtitles(subtitles);
- }
-
--static char filename[PATH_MAX+1];
--static void set_config_filename(const char *config_filename)
--{
-- static char menu_backtitle[PATH_MAX+128];
-- int size;
-- struct symbol *sym;
-+struct search_data {
-+ struct list_head *head;
-+ struct menu **targets;
-+ int *keys;
-+};
-
-- sym = sym_lookup("VERSION", 0);
-- sym_calc_value(sym);
-- size = snprintf(menu_backtitle, sizeof(menu_backtitle),
-- _("%s - uClibc v%s Configuration"),
-- config_filename, sym_get_string_value(sym));
-- if (size >= sizeof(menu_backtitle))
-- menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
-- set_dialog_backtitle(menu_backtitle);
-+static void update_text(char *buf, size_t start, size_t end, void *_data)
-+{
-+ struct search_data *data = _data;
-+ struct jump_key *pos;
-+ int k = 0;
-+
-+ list_for_each_entry(pos, data->head, entries) {
-+ if (pos->offset >= start && pos->offset < end) {
-+ char header[4];
-+
-+ if (k < JUMP_NB) {
-+ int key = '0' + (pos->index % JUMP_NB) + 1;
-+
-+ sprintf(header, "(%c)", key);
-+ data->keys[k] = key;
-+ data->targets[k] = pos->target;
-+ k++;
-+ } else {
-+ sprintf(header, " ");
-+ }
-
-- size = snprintf(filename, sizeof(filename), "%s", config_filename);
-- if (size >= sizeof(filename))
-- filename[sizeof(filename)-1] = '\0';
-+ memcpy(buf + pos->offset, header, sizeof(header) - 1);
-+ }
-+ }
-+ data->keys[k] = 0;
- }
-
--
- static void search_conf(void)
- {
- struct symbol **sym_arr;
- struct gstr res;
-+ struct gstr title;
- char *dialog_input;
-- int dres;
-+ int dres, vscroll = 0, hscroll = 0;
-+ bool again;
-+ struct gstr sttext;
-+ struct subtitle_part stpart;
-+
-+ title = str_new();
-+ str_printf( &title, _("Enter %s (sub)string or regexp to search for "
-+ "(with or without \"%s\")"), CONFIG_, CONFIG_);
-+
- again:
- dialog_clear();
- dres = dialog_inputbox(_("Search Configuration Parameter"),
-- _("Enter CONFIG_ (sub)string to search for "
-- "(with or without \"CONFIG\")"),
-+ str_get(&title),
- 10, 75, "");
- switch (dres) {
- case 0:
-@@ -397,19 +416,52 @@
- show_helptext(_("Search Configuration"), search_help);
- goto again;
- default:
-+ str_free(&title);
- return;
- }
-
-- /* strip CONFIG_ if necessary */
-+ /* strip the prefix if necessary */
- dialog_input = dialog_input_result;
-- if (strncasecmp(dialog_input_result, "CONFIG_", 7) == 0)
-- dialog_input += 7;
-+ if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
-+ dialog_input += strlen(CONFIG_);
-+
-+ sttext = str_new();
-+ str_printf(&sttext, "Search (%s)", dialog_input_result);
-+ stpart.text = str_get(&sttext);
-+ list_add_tail(&stpart.entries, &trail);
-
- sym_arr = sym_re_search(dialog_input);
-- res = get_relations_str(sym_arr);
-+ do {
-+ LIST_HEAD(head);
-+ struct menu *targets[JUMP_NB];
-+ int keys[JUMP_NB + 1], i;
-+ struct search_data data = {
-+ .head = &head,
-+ .targets = targets,
-+ .keys = keys,
-+ };
-+ struct jump_key *pos, *tmp;
-+
-+ res = get_relations_str(sym_arr, &head);
-+ set_subtitle();
-+ dres = show_textbox_ext(_("Search Results"), (char *)
-+ str_get(&res), 0, 0, keys, &vscroll,
-+ &hscroll, &update_text, (void *)
-+ &data);
-+ again = false;
-+ for (i = 0; i < JUMP_NB && keys[i]; i++)
-+ if (dres == keys[i]) {
-+ conf(targets[i]->parent, targets[i]);
-+ again = true;
-+ }
-+ str_free(&res);
-+ list_for_each_entry_safe(pos, tmp, &head, entries)
-+ free(pos);
-+ } while (again);
- free(sym_arr);
-- show_textbox(_("Search Results"), str_get(&res), 0, 0);
-- str_free(&res);
-+ str_free(&title);
-+ list_del(trail.prev);
-+ str_free(&sttext);
- }
-
- static void build_conf(struct menu *menu)
-@@ -420,8 +472,16 @@
- int type, tmp, doint = 2;
- tristate val;
- char ch;
-+ bool visible;
-
-- if (!menu_is_visible(menu))
-+ /*
-+ * note: menu_is_visible() has side effect that it will
-+ * recalc the value of the symbol.
-+ */
-+ visible = menu_is_visible(menu);
-+ if (show_all_options && !menu_has_prompt(menu))
-+ return;
-+ else if (!show_all_options && !visible)
- return;
-
- sym = menu->sym;
-@@ -438,8 +498,9 @@
- menu->data ? "-->" : "++>",
- indent + 1, ' ', prompt);
- } else
-- item_make(" %*c%s --->", indent + 1, ' ', prompt);
--
-+ item_make(" %*c%s %s",
-+ indent + 1, ' ', prompt,
-+ menu_is_empty(menu) ? "----" : "--->");
- item_set_tag('m');
- item_set_data(menu);
- if (single_menu_mode && menu->data)
-@@ -570,7 +631,7 @@
- (sym_has_value(sym) || !sym_is_changable(sym)) ?
- "" : _(" (NEW)"));
- if (menu->prompt->type == P_MENU) {
-- item_add_str(" --->");
-+ item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
- return;
- }
- }
-@@ -582,40 +643,40 @@
- indent -= doint;
- }
-
--static void conf(struct menu *menu)
-+static void conf(struct menu *menu, struct menu *active_menu)
- {
- struct menu *submenu;
- const char *prompt = menu_get_prompt(menu);
-+ struct subtitle_part stpart;
- struct symbol *sym;
-- struct menu *active_menu = NULL;
- int res;
- int s_scroll = 0;
-
-+ if (menu != &rootmenu)
-+ stpart.text = menu_get_prompt(menu);
-+ else
-+ stpart.text = NULL;
-+ list_add_tail(&stpart.entries, &trail);
-+
- while (1) {
- item_reset();
- current_menu = menu;
- build_conf(menu);
- if (!child_count)
- break;
-- if (menu == &rootmenu) {
-- item_make("--- ");
-- item_set_tag(':');
-- item_make(_(" Load an Alternate Configuration File"));
-- item_set_tag('L');
-- item_make(_(" Save an Alternate Configuration File"));
-- item_set_tag('S');
-- }
-+ set_subtitle();
- dialog_clear();
- res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
- _(menu_instructions),
- active_menu, &s_scroll);
- if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
- break;
-- if (!item_activate_selected())
-- continue;
-- if (!item_tag())
-- continue;
--
-+ if (item_count() != 0) {
-+ if (!item_activate_selected())
-+ continue;
-+ if (!item_tag())
-+ continue;
-+ }
- submenu = item_data();
- active_menu = item_data();
- if (submenu)
-@@ -630,32 +691,36 @@
- if (single_menu_mode)
- submenu->data = (void *) (long) !submenu->data;
- else
-- conf(submenu);
-+ conf(submenu, NULL);
- break;
- case 't':
- if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
- conf_choice(submenu);
- else if (submenu->prompt->type == P_MENU)
-- conf(submenu);
-+ conf(submenu, NULL);
- break;
- case 's':
- conf_string(submenu);
- break;
-- case 'L':
-- conf_load();
-- break;
-- case 'S':
-- conf_save();
-- break;
- }
- break;
- case 2:
- if (sym)
- show_help(submenu);
-- else
-+ else {
-+ reset_subtitle();
- show_helptext(_("README"), _(mconf_readme));
-+ }
- break;
- case 3:
-+ reset_subtitle();
-+ conf_save();
-+ break;
-+ case 4:
-+ reset_subtitle();
-+ conf_load();
-+ break;
-+ case 5:
- if (item_is_tag('t')) {
- if (sym_set_tristate_value(sym, yes))
- break;
-@@ -663,31 +728,45 @@
- show_textbox(NULL, setmod_text, 6, 74);
- }
- break;
-- case 4:
-+ case 6:
- if (item_is_tag('t'))
- sym_set_tristate_value(sym, no);
- break;
-- case 5:
-+ case 7:
- if (item_is_tag('t'))
- sym_set_tristate_value(sym, mod);
- break;
-- case 6:
-+ case 8:
- if (item_is_tag('t'))
- sym_toggle_tristate_value(sym);
- else if (item_is_tag('m'))
-- conf(submenu);
-+ conf(submenu, NULL);
- break;
-- case 7:
-+ case 9:
- search_conf();
- break;
-+ case 10:
-+ show_all_options = !show_all_options;
-+ break;
- }
- }
-+
-+ list_del(trail.prev);
- }
-
--static void show_textbox(const char *title, const char *text, int r, int c)
-+static int show_textbox_ext(const char *title, char *text, int r, int c, int
-+ *keys, int *vscroll, int *hscroll, update_text_fn
-+ update_text, void *data)
- {
- dialog_clear();
-- dialog_textbox(title, text, r, c);
-+ return dialog_textbox(title, text, r, c, keys, vscroll, hscroll,
-+ update_text, data);
-+}
-+
-+static void show_textbox(const char *title, const char *text, int r, int c)
-+{
-+ show_textbox_ext(title, (char *) text, r, c, (int []) {0}, NULL, NULL,
-+ NULL, NULL);
- }
-
- static void show_helptext(const char *title, const char *text)
-@@ -695,25 +774,24 @@
- show_textbox(title, text, 0, 0);
- }
-
-+static void conf_message_callback(const char *fmt, va_list ap)
-+{
-+ char buf[PATH_MAX+1];
-+
-+ vsnprintf(buf, sizeof(buf), fmt, ap);
-+ if (save_and_exit)
-+ printf("%s", buf);
-+ else
-+ show_textbox(NULL, buf, 6, 60);
-+}
-+
- static void show_help(struct menu *menu)
- {
- struct gstr help = str_new();
-- struct symbol *sym = menu->sym;
-
-- if (menu_has_help(menu))
-- {
-- if (sym->name) {
-- str_printf(&help, "%s:\n\n", sym->name);
-- }
-- str_append(&help, _(menu_get_help(menu)));
-- str_append(&help, "\n");
-- } else if (menu_has_help(sym->prop->menu->parent)) {
-- str_append(&help, _(menu_get_help(sym->prop->menu->parent)));
-- str_append(&help, "\n");
-- } else {
-- str_append(&help, nohelp_text);
-- }
-- get_symbol_str(&help, sym);
-+ help.max_width = getmaxx(stdscr) - 10;
-+ menu_get_ext_help(menu, &help);
-+
- show_helptext(_(menu_get_prompt(menu)), str_get(&help));
- str_free(&help);
- }
-@@ -734,7 +812,12 @@
- for (child = menu->list; child; child = child->next) {
- if (!menu_is_visible(child))
- continue;
-- item_make("%s", _(menu_get_prompt(child)));
-+ if (child->sym)
-+ item_make("%s", _(menu_get_prompt(child)));
-+ else {
-+ item_make("*** %s ***", _(menu_get_prompt(child)));
-+ item_set_tag(':');
-+ }
- item_set_data(child);
- if (child->sym == active)
- item_set_selected(1);
-@@ -744,12 +827,17 @@
- dialog_clear();
- res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
- _(radiolist_instructions),
-- 15, 70, 6);
-+ MENUBOX_HEIGTH_MIN,
-+ MENUBOX_WIDTH_MIN,
-+ CHECKLIST_HEIGTH_MIN);
- selected = item_activate_selected();
- switch (res) {
- case 0:
- if (selected) {
- child = item_data();
-+ if (!child->sym)
-+ break;
-+
- sym_set_tristate_value(child->sym, yes);
- }
- return;
-@@ -863,9 +951,58 @@
- }
- }
-
-+static int handle_exit(void)
-+{
-+ int res;
-+
-+ save_and_exit = 1;
-+ reset_subtitle();
-+ dialog_clear();
-+ if (conf_get_changed())
-+ res = dialog_yesno(NULL,
-+ _("Do you wish to save your new configuration?\n"
-+ "(Press <ESC><ESC> to continue configuration.)"),
-+ 6, 60);
-+ else
-+ res = -1;
-+
-+ end_dialog(saved_x, saved_y);
-+
-+ switch (res) {
-+ case 0:
-+ if (conf_write(filename)) {
-+ fprintf(stderr, _("\n\n"
-+ "Error while writing of the configuration.\n"
-+ "Your configuration changes were NOT saved."
-+ "\n\n"));
-+ return 1;
-+ }
-+ /* fall through */
-+ case -1:
-+ printf(_("\n\n"
-+ "*** End of the configuration.\n"
-+ "*** Execute 'make' to start the build or try 'make help'."
-+ "\n\n"));
-+ res = 0;
-+ break;
-+ default:
-+ fprintf(stderr, _("\n\n"
-+ "Your configuration changes were NOT saved."
-+ "\n\n"));
-+ if (res != KEY_ESC)
-+ res = 0;
-+ }
-+
-+ return res;
-+}
-+
-+static void sig_handler(int signo)
-+{
-+ exit(handle_exit());
-+}
-+
- int main(int ac, char **av)
- {
-- int saved_x, saved_y;
- char *mode;
- int res;
-
-@@ -873,6 +1010,8 @@
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-
-+ signal(SIGINT, sig_handler);
-+
- conf_parse(av[1]);
- conf_read(NULL);
-
-@@ -882,7 +1021,6 @@
- single_menu_mode = 1;
- }
-
-- getyx(stdscr, saved_y, saved_x);
- if (init_dialog(NULL)) {
- fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
- fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
-@@ -890,41 +1028,12 @@
- }
-
- set_config_filename(conf_get_configname());
-+ conf_set_message_callback(conf_message_callback);
- do {
-- conf(&rootmenu);
-- dialog_clear();
-- if (conf_get_changed())
-- res = dialog_yesno(NULL,
-- _("Do you wish to save your "
-- "new configuration?\n"
-- "<ESC><ESC> to continue."),
-- 6, 60);
-- else
-- res = -1;
-+ conf(&rootmenu, NULL);
-+ res = handle_exit();
- } while (res == KEY_ESC);
-- end_dialog(saved_x, saved_y);
--
-- switch (res) {
-- case 0:
-- if (conf_write(filename)) {
-- fprintf(stderr, _("\n\n"
-- "Error during writing of the configuration.\n"
-- "Your configuration changes were NOT saved."
-- "\n\n"));
-- return 1;
-- }
-- case -1:
-- printf(_("\n\n"
-- "*** End of configuration.\n"
-- "*** Execute 'make' to build or try 'make help'."
-- "\n\n"));
-- break;
-- default:
-- fprintf(stderr, _("\n\n"
-- "Your configuration changes were NOT saved."
-- "\n\n"));
-- }
-
-- return conf_write_autoconf();
-+ return res;
- }
-
-diff -Nur uClibc-0.9.33.2/extra/config/menu.c uClibc-git/extra/config/menu.c
---- uClibc-0.9.33.2/extra/config/menu.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/menu.c 2014-07-25 20:36:04.861324498 +0200
-@@ -3,12 +3,15 @@
- * Released under the terms of the GNU GPL v2.0.
- */
-
-+#include <ctype.h>
-+#include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
-+static const char nohelp_text[] = "There is no help available for this option.";
-+
- struct menu rootmenu;
- static struct menu **last_entry_ptr;
-
-@@ -35,7 +38,7 @@
- va_end(ap);
- }
-
--void menu_init(void)
-+void _menu_init(void)
- {
- current_entry = current_menu = &rootmenu;
- last_entry_ptr = &rootmenu.list;
-@@ -45,7 +48,7 @@
- {
- struct menu *menu;
-
-- menu = malloc(sizeof(*menu));
-+ menu = xmalloc(sizeof(*menu));
- memset(menu, 0, sizeof(*menu));
- menu->sym = sym;
- menu->parent = current_menu;
-@@ -55,6 +58,8 @@
- *last_entry_ptr = menu;
- last_entry_ptr = &menu->next;
- current_entry = menu;
-+ if (sym)
-+ menu_add_symbol(P_SYMBOL, sym, NULL);
- }
-
- void menu_end_entry(void)
-@@ -74,7 +79,7 @@
- current_menu = current_menu->parent;
- }
-
--struct expr *menu_check_dep(struct expr *e)
-+static struct expr *menu_check_dep(struct expr *e)
- {
- if (!e)
- return e;
-@@ -133,8 +138,35 @@
- while (isspace(*prompt))
- prompt++;
- }
-- if (current_entry->prompt)
-+ if (current_entry->prompt && current_entry != &rootmenu)
- prop_warn(prop, "prompt redefined");
-+
-+ /* Apply all upper menus' visibilities to actual prompts. */
-+ if(type == P_PROMPT) {
-+ struct menu *menu = current_entry;
-+
-+ while ((menu = menu->parent) != NULL) {
-+ struct expr *dup_expr;
-+
-+ if (!menu->visibility)
-+ continue;
-+ /*
-+ * Do not add a reference to the
-+ * menu's visibility expression but
-+ * use a copy of it. Otherwise the
-+ * expression reduction functions
-+ * will modify expressions that have
-+ * multiple references which can
-+ * cause unwanted side effects.
-+ */
-+ dup_expr = expr_copy(menu->visibility);
-+
-+ prop->visible.expr
-+ = expr_alloc_and(prop->visible.expr,
-+ dup_expr);
-+ }
-+ }
-+
- current_entry->prompt = prop;
- }
- prop->text = prompt;
-@@ -147,6 +179,12 @@
- return menu_add_prop(type, prompt, NULL, dep);
- }
-
-+void menu_add_visibility(struct expr *expr)
-+{
-+ current_entry->visibility = expr_alloc_and(current_entry->visibility,
-+ expr);
-+}
-+
- void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
- {
- menu_add_prop(type, NULL, expr, dep);
-@@ -178,13 +216,13 @@
- }
- }
-
--static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2)
-+static int menu_validate_number(struct symbol *sym, struct symbol *sym2)
- {
- return sym2->type == S_INT || sym2->type == S_HEX ||
- (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name));
- }
-
--void sym_check_prop(struct symbol *sym)
-+static void sym_check_prop(struct symbol *sym)
- {
- struct property *prop;
- struct symbol *sym2;
-@@ -194,8 +232,17 @@
- if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&
- prop->expr->type != E_SYMBOL)
- prop_warn(prop,
-- "default for config symbol '%'"
-+ "default for config symbol '%s'"
- " must be a single symbol", sym->name);
-+ if (prop->expr->type != E_SYMBOL)
-+ break;
-+ sym2 = prop_get_symbol(prop);
-+ if (sym->type == S_HEX || sym->type == S_INT) {
-+ if (!menu_validate_number(sym, sym2))
-+ prop_warn(prop,
-+ "'%s': number is invalid",
-+ sym->name);
-+ }
- break;
- case P_SELECT:
- sym2 = prop_get_symbol(prop);
-@@ -215,8 +262,8 @@
- if (sym->type != S_INT && sym->type != S_HEX)
- prop_warn(prop, "range is only allowed "
- "for int or hex symbols");
-- if (!menu_range_valid_sym(sym, prop->expr->left.sym) ||
-- !menu_range_valid_sym(sym, prop->expr->right.sym))
-+ if (!menu_validate_number(sym, prop->expr->left.sym) ||
-+ !menu_validate_number(sym, prop->expr->right.sym))
- prop_warn(prop, "range is invalid");
- break;
- default:
-@@ -315,6 +362,8 @@
- parent->next = last_menu->next;
- last_menu->next = NULL;
- }
-+
-+ sym->dir_dep.expr = expr_alloc_or(sym->dir_dep.expr, parent->dep);
- }
- for (menu = parent->list; menu; menu = menu->next) {
- if (sym && sym_is_choice(sym) &&
-@@ -387,6 +436,29 @@
- }
- }
-
-+bool menu_has_prompt(struct menu *menu)
-+{
-+ if (!menu->prompt)
-+ return false;
-+ return true;
-+}
-+
-+/*
-+ * Determine if a menu is empty.
-+ * A menu is considered empty if it contains no or only
-+ * invisible entries.
-+ */
-+bool menu_is_empty(struct menu *menu)
-+{
-+ struct menu *child;
-+
-+ for (child = menu->list; child; child = child->next) {
-+ if (menu_is_visible(child))
-+ return(false);
-+ }
-+ return(true);
-+}
-+
- bool menu_is_visible(struct menu *menu)
- {
- struct menu *child;
-@@ -395,6 +467,12 @@
-
- if (!menu->prompt)
- return false;
-+
-+ if (menu->visibility) {
-+ if (expr_calc_value(menu->visibility) == no)
-+ return no;
-+ }
-+
- sym = menu->sym;
- if (sym) {
- sym_calc_value(sym);
-@@ -404,12 +482,18 @@
-
- if (visible != no)
- return true;
-+
- if (!sym || sym_get_tristate_value(menu->sym) == no)
- return false;
-
-- for (child = menu->list; child; child = child->next)
-- if (menu_is_visible(child))
-+ for (child = menu->list; child; child = child->next) {
-+ if (menu_is_visible(child)) {
-+ if (sym)
-+ sym->flags |= SYMBOL_DEF_USER;
- return true;
-+ }
-+ }
-+
- return false;
- }
-
-@@ -451,3 +535,156 @@
- else
- return "";
- }
-+
-+static void get_prompt_str(struct gstr *r, struct property *prop,
-+ struct list_head *head)
-+{
-+ int i, j;
-+ struct menu *submenu[8], *menu, *location = NULL;
-+ struct jump_key *jump;
-+
-+ str_printf(r, _("Prompt: %s\n"), _(prop->text));
-+ menu = prop->menu->parent;
-+ for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
-+ bool accessible = menu_is_visible(menu);
-+
-+ submenu[i++] = menu;
-+ if (location == NULL && accessible)
-+ location = menu;
-+ }
-+ if (head && location) {
-+ jump = xmalloc(sizeof(struct jump_key));
-+
-+ if (menu_is_visible(prop->menu)) {
-+ /*
-+ * There is not enough room to put the hint at the
-+ * beginning of the "Prompt" line. Put the hint on the
-+ * last "Location" line even when it would belong on
-+ * the former.
-+ */
-+ jump->target = prop->menu;
-+ } else
-+ jump->target = location;
-+
-+ if (list_empty(head))
-+ jump->index = 0;
-+ else
-+ jump->index = list_entry(head->prev, struct jump_key,
-+ entries)->index + 1;
-+
-+ list_add_tail(&jump->entries, head);
-+ }
-+
-+ if (i > 0) {
-+ str_printf(r, _(" Location:\n"));
-+ for (j = 4; --i >= 0; j += 2) {
-+ menu = submenu[i];
-+ if (head && location && menu == location)
-+ jump->offset = r->len - 1;
-+ str_printf(r, "%*c-> %s", j, ' ',
-+ _(menu_get_prompt(menu)));
-+ if (menu->sym) {
-+ str_printf(r, " (%s [=%s])", menu->sym->name ?
-+ menu->sym->name : _("<choice>"),
-+ sym_get_string_value(menu->sym));
-+ }
-+ str_append(r, "\n");
-+ }
-+ }
-+}
-+
-+/*
-+ * get peoperty of type P_SYMBOL
-+ */
-+static struct property *get_symbol_prop(struct symbol *sym)
-+{
-+ struct property *prop = NULL;
-+
-+ for_all_properties(sym, prop, P_SYMBOL)
-+ break;
-+ return prop;
-+}
-+
-+/*
-+ * head is optional and may be NULL
-+ */
-+void get_symbol_str(struct gstr *r, struct symbol *sym,
-+ struct list_head *head)
-+{
-+ bool hit;
-+ struct property *prop;
-+
-+ if (sym && sym->name) {
-+ str_printf(r, "Symbol: %s [=%s]\n", sym->name,
-+ sym_get_string_value(sym));
-+ str_printf(r, "Type : %s\n", sym_type_name(sym->type));
-+ if (sym->type == S_INT || sym->type == S_HEX) {
-+ prop = sym_get_range_prop(sym);
-+ if (prop) {
-+ str_printf(r, "Range : ");
-+ expr_gstr_print(prop->expr, r);
-+ str_append(r, "\n");
-+ }
-+ }
-+ }
-+ for_all_prompts(sym, prop)
-+ get_prompt_str(r, prop, head);
-+
-+ prop = get_symbol_prop(sym);
-+ if (prop) {
-+ str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
-+ prop->menu->lineno);
-+ if (!expr_is_yes(prop->visible.expr)) {
-+ str_append(r, _(" Depends on: "));
-+ expr_gstr_print(prop->visible.expr, r);
-+ str_append(r, "\n");
-+ }
-+ }
-+
-+ hit = false;
-+ for_all_properties(sym, prop, P_SELECT) {
-+ if (!hit) {
-+ str_append(r, " Selects: ");
-+ hit = true;
-+ } else
-+ str_printf(r, " && ");
-+ expr_gstr_print(prop->expr, r);
-+ }
-+ if (hit)
-+ str_append(r, "\n");
-+ if (sym->rev_dep.expr) {
-+ str_append(r, _(" Selected by: "));
-+ expr_gstr_print(sym->rev_dep.expr, r);
-+ str_append(r, "\n");
-+ }
-+ str_append(r, "\n\n");
-+}
-+
-+struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head)
-+{
-+ struct symbol *sym;
-+ struct gstr res = str_new();
-+ int i;
-+
-+ for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
-+ get_symbol_str(&res, sym, head);
-+ if (!i)
-+ str_append(&res, _("No matches found.\n"));
-+ return res;
-+}
-+
-+
-+void menu_get_ext_help(struct menu *menu, struct gstr *help)
-+{
-+ struct symbol *sym = menu->sym;
-+ const char *help_text = nohelp_text;
-+
-+ if (menu_has_help(menu)) {
-+ if (sym->name)
-+ str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
-+ help_text = menu_get_help(menu);
-+ }
-+ str_printf(help, "%s\n", _(help_text));
-+ if (sym)
-+ get_symbol_str(help, sym, NULL);
-+}
-diff -Nur uClibc-0.9.33.2/extra/config/merge_config.sh uClibc-git/extra/config/merge_config.sh
---- uClibc-0.9.33.2/extra/config/merge_config.sh 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/merge_config.sh 2014-07-25 20:36:04.861324498 +0200
-@@ -0,0 +1,150 @@
-+#!/bin/sh
-+# merge_config.sh - Takes a list of config fragment values, and merges
-+# them one by one. Provides warnings on overridden values, and specified
-+# values that did not make it to the resulting .config file (due to missed
-+# dependencies or config symbol removal).
-+#
-+# Portions reused from kconf_check and generate_cfg:
-+# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/kconf_check
-+# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/generate_cfg
-+#
-+# Copyright (c) 2009-2010 Wind River Systems, Inc.
-+# Copyright 2011 Linaro
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License version 2 as
-+# published by the Free Software Foundation.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+# See the GNU General Public License for more details.
-+
-+clean_up() {
-+ rm -f $TMP_FILE
-+ exit
-+}
-+trap clean_up HUP INT TERM
-+
-+usage() {
-+ echo "Usage: $0 [OPTIONS] [CONFIG [...]]"
-+ echo " -h display this help text"
-+ echo " -m only merge the fragments, do not execute the make command"
-+ echo " -n use allnoconfig instead of alldefconfig"
-+ echo " -r list redundant entries when merging fragments"
-+ echo " -O dir to put generated output files"
-+}
-+
-+MAKE=true
-+ALLTARGET=alldefconfig
-+WARNREDUN=false
-+OUTPUT=.
-+
-+while true; do
-+ case $1 in
-+ "-n")
-+ ALLTARGET=allnoconfig
-+ shift
-+ continue
-+ ;;
-+ "-m")
-+ MAKE=false
-+ shift
-+ continue
-+ ;;
-+ "-h")
-+ usage
-+ exit
-+ ;;
-+ "-r")
-+ WARNREDUN=true
-+ shift
-+ continue
-+ ;;
-+ "-O")
-+ if [ -d $2 ];then
-+ OUTPUT=$(echo $2 | sed 's/\/*$//')
-+ else
-+ echo "output directory $2 does not exist" 1>&2
-+ exit 1
-+ fi
-+ shift 2
-+ continue
-+ ;;
-+ *)
-+ break
-+ ;;
-+ esac
-+done
-+
-+INITFILE=$1
-+shift;
-+
-+MERGE_LIST=$*
-+SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
-+TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX)
-+
-+echo "Using $INITFILE as base"
-+cat $INITFILE > $TMP_FILE
-+
-+# Merge files, printing warnings on overrided values
-+for MERGE_FILE in $MERGE_LIST ; do
-+ echo "Merging $MERGE_FILE"
-+ CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE)
-+
-+ for CFG in $CFG_LIST ; do
-+ grep -q -w $CFG $TMP_FILE
-+ if [ $? -eq 0 ] ; then
-+ PREV_VAL=$(grep -w $CFG $TMP_FILE)
-+ NEW_VAL=$(grep -w $CFG $MERGE_FILE)
-+ if [ "x$PREV_VAL" != "x$NEW_VAL" ] ; then
-+ echo Value of $CFG is redefined by fragment $MERGE_FILE:
-+ echo Previous value: $PREV_VAL
-+ echo New value: $NEW_VAL
-+ echo
-+ elif [ "$WARNREDUN" = "true" ]; then
-+ echo Value of $CFG is redundant by fragment $MERGE_FILE:
-+ fi
-+ sed -i "/$CFG[ =]/d" $TMP_FILE
-+ fi
-+ done
-+ cat $MERGE_FILE >> $TMP_FILE
-+done
-+
-+if [ "$MAKE" = "false" ]; then
-+ cp $TMP_FILE $OUTPUT/.config
-+ echo "#"
-+ echo "# merged configuration written to $OUTPUT/.config (needs make)"
-+ echo "#"
-+ clean_up
-+ exit
-+fi
-+
-+# If we have an output dir, setup the O= argument, otherwise leave
-+# it blank, since O=. will create an unnecessary ./source softlink
-+OUTPUT_ARG=""
-+if [ "$OUTPUT" != "." ] ; then
-+ OUTPUT_ARG="O=$OUTPUT"
-+fi
-+
-+
-+# Use the merged file as the starting point for:
-+# alldefconfig: Fills in any missing symbols with Kconfig default
-+# allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
-+make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
-+
-+
-+# Check all specified config values took (might have missed-dependency issues)
-+for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
-+
-+ REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
-+ ACTUAL_VAL=$(grep -w -e "$CFG" $OUTPUT/.config)
-+ if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
-+ echo "Value requested for $CFG not in final .config"
-+ echo "Requested value: $REQUESTED_VAL"
-+ echo "Actual value: $ACTUAL_VAL"
-+ echo ""
-+ fi
-+done
-+
-+clean_up
-diff -Nur uClibc-0.9.33.2/extra/config/nconf.c uClibc-git/extra/config/nconf.c
---- uClibc-0.9.33.2/extra/config/nconf.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/nconf.c 2014-07-25 20:36:04.861324498 +0200
-@@ -0,0 +1,1557 @@
-+/*
-+ * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
-+ * Released under the terms of the GNU GPL v2.0.
-+ *
-+ * Derived from menuconfig.
-+ *
-+ */
-+#define _GNU_SOURCE
-+#include <string.h>
-+#include <stdlib.h>
-+
-+#include "lkc.h"
-+#include "nconf.h"
-+#include <ctype.h>
-+
-+static const char nconf_global_help[] = N_(
-+"Help windows\n"
-+"------------\n"
-+"o Global help: Unless in a data entry window, pressing <F1> will give \n"
-+" you the global help window, which you are just reading.\n"
-+"\n"
-+"o A short version of the global help is available by pressing <F3>.\n"
-+"\n"
-+"o Local help: To get help related to the current menu entry, use any\n"
-+" of <?> <h>, or if in a data entry window then press <F1>.\n"
-+"\n"
-+"\n"
-+"Menu entries\n"
-+"------------\n"
-+"This interface lets you select features and parameters for the \n"
-+"build. Features can either be built-in, modularized, or removed.\n"
-+"Parameters must be entered as text or decimal or hexadecimal numbers.\n"
-+"\n"
-+"Menu entries beginning with following braces represent features that\n"
-+" [ ] can be built in or removed\n"
-+" < > can be built in, modularized or removed\n"
-+" { } can be built in or modularized, are selected by another feature\n"
-+" - - are selected by another feature\n"
-+" XXX cannot be selected. Symbol Info <F2> tells you why.\n"
-+"*, M or whitespace inside braces means to build in, build as a module\n"
-+"or to exclude the feature respectively.\n"
-+"\n"
-+"To change any of these features, highlight it with the movement keys\n"
-+"listed below and press <y> to build it in, <m> to make it a module or\n"
-+"<n> to remove it. You may press the <Space> key to cycle through the\n"
-+"available options.\n"
-+"\n"
-+"A trailing \"--->\" designates a submenu, a trailing \"----\" an\n"
-+"empty submenu.\n"
-+"\n"
-+"Menu navigation keys\n"
-+"----------------------------------------------------------------------\n"
-+"Linewise up <Up>\n"
-+"Linewise down <Down>\n"
-+"Pagewise up <Page Up>\n"
-+"Pagewise down <Page Down>\n"
-+"First entry <Home>\n"
-+"Last entry <End>\n"
-+"Enter a submenu <Right> <Enter>\n"
-+"Go back to parent menu <Left> <Esc> <F5>\n"
-+"Close a help window <Enter> <Esc> <F5>\n"
-+"Close entry window, apply <Enter>\n"
-+"Close entry window, forget <Esc> <F5>\n"
-+"Start incremental, case-insensitive search for STRING in menu entries,\n"
-+" no regex support, STRING is displayed in upper left corner\n"
-+" </>STRING\n"
-+" Remove last character <Backspace>\n"
-+" Jump to next hit <Down>\n"
-+" Jump to previous hit <Up>\n"
-+"Exit menu search mode </> <Esc>\n"
-+"Search for configuration variables with or without leading CONFIG_\n"
-+" <F8>RegExpr<Enter>\n"
-+"Verbose search help <F8><F1>\n"
-+"----------------------------------------------------------------------\n"
-+"\n"
-+"Unless in a data entry window, key <1> may be used instead of <F1>,\n"
-+"<2> instead of <F2>, etc.\n"
-+"\n"
-+"\n"
-+"Radiolist (Choice list)\n"
-+"-----------------------\n"
-+"Use the movement keys listed above to select the option you wish to set\n"
-+"and press <Space>.\n"
-+"\n"
-+"\n"
-+"Data entry\n"
-+"----------\n"
-+"Enter the requested information and press <Enter>. Hexadecimal values\n"
-+"may be entered without the \"0x\" prefix.\n"
-+"\n"
-+"\n"
-+"Text Box (Help Window)\n"
-+"----------------------\n"
-+"Use movement keys as listed in table above.\n"
-+"\n"
-+"Press any of <Enter> <Esc> <q> <F5> <F9> to exit.\n"
-+"\n"
-+"\n"
-+"Alternate configuration files\n"
-+"-----------------------------\n"
-+"nconfig supports switching between different configurations.\n"
-+"Press <F6> to save your current configuration. Press <F7> and enter\n"
-+"a file name to load a previously saved configuration.\n"
-+"\n"
-+"\n"
-+"Terminal configuration\n"
-+"----------------------\n"
-+"If you use nconfig in a xterm window, make sure your TERM environment\n"
-+"variable specifies a terminal configuration which supports at least\n"
-+"16 colors. Otherwise nconfig will look rather bad.\n"
-+"\n"
-+"If the \"stty size\" command reports the current terminalsize correctly,\n"
-+"nconfig will adapt to sizes larger than the traditional 80x25 \"standard\"\n"
-+"and display longer menus properly.\n"
-+"\n"
-+"\n"
-+"Single menu mode\n"
-+"----------------\n"
-+"If you prefer to have all of the menu entries listed in a single menu,\n"
-+"rather than the default multimenu hierarchy, run nconfig with\n"
-+"NCONFIG_MODE environment variable set to single_menu. Example:\n"
-+"\n"
-+"make NCONFIG_MODE=single_menu nconfig\n"
-+"\n"
-+"<Enter> will then unfold the appropriate category, or fold it if it\n"
-+"is already unfolded. Folded menu entries will be designated by a\n"
-+"leading \"++>\" and unfolded entries by a leading \"-->\".\n"
-+"\n"
-+"Note that this mode can eventually be a little more CPU expensive than\n"
-+"the default mode, especially with a larger number of unfolded submenus.\n"
-+"\n"),
-+menu_no_f_instructions[] = N_(
-+"Legend: [*] built-in [ ] excluded <M> module < > module capable.\n"
-+"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
-+"\n"
-+"Use the following keys to navigate the menus:\n"
-+"Move up or down with <Up> and <Down>.\n"
-+"Enter a submenu with <Enter> or <Right>.\n"
-+"Exit a submenu to its parent menu with <Esc> or <Left>.\n"
-+"Pressing <y> includes, <n> excludes, <m> modularizes features.\n"
-+"Pressing <Space> cycles through the available options.\n"
-+"To search for menu entries press </>.\n"
-+"<Esc> always leaves the current window.\n"
-+"\n"
-+"You do not have function keys support.\n"
-+"Press <1> instead of <F1>, <2> instead of <F2>, etc.\n"
-+"For verbose global help use key <1>.\n"
-+"For help related to the current menu entry press <?> or <h>.\n"),
-+menu_instructions[] = N_(
-+"Legend: [*] built-in [ ] excluded <M> module < > module capable.\n"
-+"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
-+"\n"
-+"Use the following keys to navigate the menus:\n"
-+"Move up or down with <Up> or <Down>.\n"
-+"Enter a submenu with <Enter> or <Right>.\n"
-+"Exit a submenu to its parent menu with <Esc> or <Left>.\n"
-+"Pressing <y> includes, <n> excludes, <m> modularizes features.\n"
-+"Pressing <Space> cycles through the available options.\n"
-+"To search for menu entries press </>.\n"
-+"<Esc> always leaves the current window.\n"
-+"\n"
-+"Pressing <1> may be used instead of <F1>, <2> instead of <F2>, etc.\n"
-+"For verbose global help press <F1>.\n"
-+"For help related to the current menu entry press <?> or <h>.\n"),
-+radiolist_instructions[] = N_(
-+"Press <Up>, <Down>, <Home> or <End> to navigate a radiolist, select\n"
-+"with <Space>.\n"
-+"For help related to the current entry press <?> or <h>.\n"
-+"For global help press <F1>.\n"),
-+inputbox_instructions_int[] = N_(
-+"Please enter a decimal value.\n"
-+"Fractions will not be accepted.\n"
-+"Press <Enter> to apply, <Esc> to cancel."),
-+inputbox_instructions_hex[] = N_(
-+"Please enter a hexadecimal value.\n"
-+"Press <Enter> to apply, <Esc> to cancel."),
-+inputbox_instructions_string[] = N_(
-+"Please enter a string value.\n"
-+"Press <Enter> to apply, <Esc> to cancel."),
-+setmod_text[] = N_(
-+"This feature depends on another feature which has been configured as a\n"
-+"module. As a result, the current feature will be built as a module too."),
-+load_config_text[] = N_(
-+"Enter the name of the configuration file you wish to load.\n"
-+"Accept the name shown to restore the configuration you last\n"
-+"retrieved. Leave empty to abort."),
-+load_config_help[] = N_(
-+"For various reasons, one may wish to keep several different\n"
-+"configurations available on a single machine.\n"
-+"\n"
-+"If you have saved a previous configuration in a file other than the\n"
-+"default one, entering its name here will allow you to load and modify\n"
-+"that configuration.\n"
-+"\n"
-+"Leave empty to abort.\n"),
-+save_config_text[] = N_(
-+"Enter a filename to which this configuration should be saved\n"
-+"as an alternate. Leave empty to abort."),
-+save_config_help[] = N_(
-+"For various reasons, one may wish to keep several different\n"
-+"configurations available on a single machine.\n"
-+"\n"
-+"Entering a file name here will allow you to later retrieve, modify\n"
-+"and use the current configuration as an alternate to whatever\n"
-+"configuration options you have selected at that time.\n"
-+"\n"
-+"Leave empty to abort.\n"),
-+search_help[] = N_(
-+"Search for symbols (configuration variable names CONFIG_*) and display\n"
-+"their relations. Regular expressions are supported.\n"
-+"Example: Search for \"^FOO\".\n"
-+"Result:\n"
-+"-----------------------------------------------------------------\n"
-+"Symbol: FOO [ = m]\n"
-+"Prompt: Foo bus is used to drive the bar HW\n"
-+"Defined at drivers/pci/Kconfig:47\n"
-+"Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
-+"Location:\n"
-+" -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
-+" -> PCI support (PCI [ = y])\n"
-+" -> PCI access mode (<choice> [ = y])\n"
-+"Selects: LIBCRC32\n"
-+"Selected by: BAR\n"
-+"-----------------------------------------------------------------\n"
-+"o The line 'Prompt:' shows the text displayed for this symbol in\n"
-+" the menu hierarchy.\n"
-+"o The 'Defined at' line tells at what file / line number the symbol is\n"
-+" defined.\n"
-+"o The 'Depends on:' line lists symbols that need to be defined for\n"
-+" this symbol to be visible and selectable in the menu.\n"
-+"o The 'Location:' lines tell, where in the menu structure this symbol\n"
-+" is located. A location followed by a [ = y] indicates that this is\n"
-+" a selectable menu item, and the current value is displayed inside\n"
-+" brackets.\n"
-+"o The 'Selects:' line tells, what symbol will be automatically selected\n"
-+" if this symbol is selected (y or m).\n"
-+"o The 'Selected by' line tells what symbol has selected this symbol.\n"
-+"\n"
-+"Only relevant lines are shown.\n"
-+"\n\n"
-+"Search examples:\n"
-+"USB => find all symbols containing USB\n"
-+"^USB => find all symbols starting with USB\n"
-+"USB$ => find all symbols ending with USB\n"
-+"\n");
-+
-+struct mitem {
-+ char str[256];
-+ char tag;
-+ void *usrptr;
-+ int is_visible;
-+};
-+
-+#define MAX_MENU_ITEMS 4096
-+static int show_all_items;
-+static int indent;
-+static struct menu *current_menu;
-+static int child_count;
-+static int single_menu_mode;
-+/* the window in which all information appears */
-+static WINDOW *main_window;
-+/* the largest size of the menu window */
-+static int mwin_max_lines;
-+static int mwin_max_cols;
-+/* the window in which we show option buttons */
-+static MENU *curses_menu;
-+static ITEM *curses_menu_items[MAX_MENU_ITEMS];
-+static struct mitem k_menu_items[MAX_MENU_ITEMS];
-+static int items_num;
-+static int global_exit;
-+/* the currently selected button */
-+const char *current_instructions = menu_instructions;
-+
-+static char *dialog_input_result;
-+static int dialog_input_result_len;
-+
-+static void conf(struct menu *menu);
-+static void conf_choice(struct menu *menu);
-+static void conf_string(struct menu *menu);
-+static void conf_load(void);
-+static void conf_save(void);
-+static void show_help(struct menu *menu);
-+static int do_exit(void);
-+static void setup_windows(void);
-+static void search_conf(void);
-+
-+typedef void (*function_key_handler_t)(int *key, struct menu *menu);
-+static void handle_f1(int *key, struct menu *current_item);
-+static void handle_f2(int *key, struct menu *current_item);
-+static void handle_f3(int *key, struct menu *current_item);
-+static void handle_f4(int *key, struct menu *current_item);
-+static void handle_f5(int *key, struct menu *current_item);
-+static void handle_f6(int *key, struct menu *current_item);
-+static void handle_f7(int *key, struct menu *current_item);
-+static void handle_f8(int *key, struct menu *current_item);
-+static void handle_f9(int *key, struct menu *current_item);
-+
-+struct function_keys {
-+ const char *key_str;
-+ const char *func;
-+ function_key key;
-+ function_key_handler_t handler;
-+};
-+
-+static const int function_keys_num = 9;
-+struct function_keys function_keys[] = {
-+ {
-+ .key_str = "F1",
-+ .func = "Help",
-+ .key = F_HELP,
-+ .handler = handle_f1,
-+ },
-+ {
-+ .key_str = "F2",
-+ .func = "SymInfo",
-+ .key = F_SYMBOL,
-+ .handler = handle_f2,
-+ },
-+ {
-+ .key_str = "F3",
-+ .func = "Help 2",
-+ .key = F_INSTS,
-+ .handler = handle_f3,
-+ },
-+ {
-+ .key_str = "F4",
-+ .func = "ShowAll",
-+ .key = F_CONF,
-+ .handler = handle_f4,
-+ },
-+ {
-+ .key_str = "F5",
-+ .func = "Back",
-+ .key = F_BACK,
-+ .handler = handle_f5,
-+ },
-+ {
-+ .key_str = "F6",
-+ .func = "Save",
-+ .key = F_SAVE,
-+ .handler = handle_f6,
-+ },
-+ {
-+ .key_str = "F7",
-+ .func = "Load",
-+ .key = F_LOAD,
-+ .handler = handle_f7,
-+ },
-+ {
-+ .key_str = "F8",
-+ .func = "SymSearch",
-+ .key = F_SEARCH,
-+ .handler = handle_f8,
-+ },
-+ {
-+ .key_str = "F9",
-+ .func = "Exit",
-+ .key = F_EXIT,
-+ .handler = handle_f9,
-+ },
-+};
-+
-+static void print_function_line(void)
-+{
-+ int i;
-+ int offset = 1;
-+ const int skip = 1;
-+ int lines = getmaxy(stdscr);
-+
-+ for (i = 0; i < function_keys_num; i++) {
-+ (void) wattrset(main_window, attributes[FUNCTION_HIGHLIGHT]);
-+ mvwprintw(main_window, lines-3, offset,
-+ "%s",
-+ function_keys[i].key_str);
-+ (void) wattrset(main_window, attributes[FUNCTION_TEXT]);
-+ offset += strlen(function_keys[i].key_str);
-+ mvwprintw(main_window, lines-3,
-+ offset, "%s",
-+ function_keys[i].func);
-+ offset += strlen(function_keys[i].func) + skip;
-+ }
-+ (void) wattrset(main_window, attributes[NORMAL]);
-+}
-+
-+/* help */
-+static void handle_f1(int *key, struct menu *current_item)
-+{
-+ show_scroll_win(main_window,
-+ _("Global help"), _(nconf_global_help));
-+ return;
-+}
-+
-+/* symbole help */
-+static void handle_f2(int *key, struct menu *current_item)
-+{
-+ show_help(current_item);
-+ return;
-+}
-+
-+/* instructions */
-+static void handle_f3(int *key, struct menu *current_item)
-+{
-+ show_scroll_win(main_window,
-+ _("Short help"),
-+ _(current_instructions));
-+ return;
-+}
-+
-+/* config */
-+static void handle_f4(int *key, struct menu *current_item)
-+{
-+ int res = btn_dialog(main_window,
-+ _("Show all symbols?"),
-+ 2,
-+ " <Show All> ",
-+ "<Don't show all>");
-+ if (res == 0)
-+ show_all_items = 1;
-+ else if (res == 1)
-+ show_all_items = 0;
-+
-+ return;
-+}
-+
-+/* back */
-+static void handle_f5(int *key, struct menu *current_item)
-+{
-+ *key = KEY_LEFT;
-+ return;
-+}
-+
-+/* save */
-+static void handle_f6(int *key, struct menu *current_item)
-+{
-+ conf_save();
-+ return;
-+}
-+
-+/* load */
-+static void handle_f7(int *key, struct menu *current_item)
-+{
-+ conf_load();
-+ return;
-+}
-+
-+/* search */
-+static void handle_f8(int *key, struct menu *current_item)
-+{
-+ search_conf();
-+ return;
-+}
-+
-+/* exit */
-+static void handle_f9(int *key, struct menu *current_item)
-+{
-+ do_exit();
-+ return;
-+}
-+
-+/* return != 0 to indicate the key was handles */
-+static int process_special_keys(int *key, struct menu *menu)
-+{
-+ int i;
-+
-+ if (*key == KEY_RESIZE) {
-+ setup_windows();
-+ return 1;
-+ }
-+
-+ for (i = 0; i < function_keys_num; i++) {
-+ if (*key == KEY_F(function_keys[i].key) ||
-+ *key == '0' + function_keys[i].key){
-+ function_keys[i].handler(key, menu);
-+ return 1;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static void clean_items(void)
-+{
-+ int i;
-+ for (i = 0; curses_menu_items[i]; i++)
-+ free_item(curses_menu_items[i]);
-+ bzero(curses_menu_items, sizeof(curses_menu_items));
-+ bzero(k_menu_items, sizeof(k_menu_items));
-+ items_num = 0;
-+}
-+
-+typedef enum {MATCH_TINKER_PATTERN_UP, MATCH_TINKER_PATTERN_DOWN,
-+ FIND_NEXT_MATCH_DOWN, FIND_NEXT_MATCH_UP} match_f;
-+
-+/* return the index of the matched item, or -1 if no such item exists */
-+static int get_mext_match(const char *match_str, match_f flag)
-+{
-+ int match_start = item_index(current_item(curses_menu));
-+ int index;
-+
-+ if (flag == FIND_NEXT_MATCH_DOWN)
-+ ++match_start;
-+ else if (flag == FIND_NEXT_MATCH_UP)
-+ --match_start;
-+
-+ index = match_start;
-+ index = (index + items_num) % items_num;
-+ while (true) {
-+ char *str = k_menu_items[index].str;
-+ if (strcasestr(str, match_str) != 0)
-+ return index;
-+ if (flag == FIND_NEXT_MATCH_UP ||
-+ flag == MATCH_TINKER_PATTERN_UP)
-+ --index;
-+ else
-+ ++index;
-+ index = (index + items_num) % items_num;
-+ if (index == match_start)
-+ return -1;
-+ }
-+}
-+
-+/* Make a new item. */
-+static void item_make(struct menu *menu, char tag, const char *fmt, ...)
-+{
-+ va_list ap;
-+
-+ if (items_num > MAX_MENU_ITEMS-1)
-+ return;
-+
-+ bzero(&k_menu_items[items_num], sizeof(k_menu_items[0]));
-+ k_menu_items[items_num].tag = tag;
-+ k_menu_items[items_num].usrptr = menu;
-+ if (menu != NULL)
-+ k_menu_items[items_num].is_visible =
-+ menu_is_visible(menu);
-+ else
-+ k_menu_items[items_num].is_visible = 1;
-+
-+ va_start(ap, fmt);
-+ vsnprintf(k_menu_items[items_num].str,
-+ sizeof(k_menu_items[items_num].str),
-+ fmt, ap);
-+ va_end(ap);
-+
-+ if (!k_menu_items[items_num].is_visible)
-+ memcpy(k_menu_items[items_num].str, "XXX", 3);
-+
-+ curses_menu_items[items_num] = new_item(
-+ k_menu_items[items_num].str,
-+ k_menu_items[items_num].str);
-+ set_item_userptr(curses_menu_items[items_num],
-+ &k_menu_items[items_num]);
-+ /*
-+ if (!k_menu_items[items_num].is_visible)
-+ item_opts_off(curses_menu_items[items_num], O_SELECTABLE);
-+ */
-+
-+ items_num++;
-+ curses_menu_items[items_num] = NULL;
-+}
-+
-+/* very hackish. adds a string to the last item added */
-+static void item_add_str(const char *fmt, ...)
-+{
-+ va_list ap;
-+ int index = items_num-1;
-+ char new_str[256];
-+ char tmp_str[256];
-+
-+ if (index < 0)
-+ return;
-+
-+ va_start(ap, fmt);
-+ vsnprintf(new_str, sizeof(new_str), fmt, ap);
-+ va_end(ap);
-+ snprintf(tmp_str, sizeof(tmp_str), "%s%s",
-+ k_menu_items[index].str, new_str);
-+ strncpy(k_menu_items[index].str,
-+ tmp_str,
-+ sizeof(k_menu_items[index].str));
-+
-+ free_item(curses_menu_items[index]);
-+ curses_menu_items[index] = new_item(
-+ k_menu_items[index].str,
-+ k_menu_items[index].str);
-+ set_item_userptr(curses_menu_items[index],
-+ &k_menu_items[index]);
-+}
-+
-+/* get the tag of the currently selected item */
-+static char item_tag(void)
-+{
-+ ITEM *cur;
-+ struct mitem *mcur;
-+
-+ cur = current_item(curses_menu);
-+ if (cur == NULL)
-+ return 0;
-+ mcur = (struct mitem *) item_userptr(cur);
-+ return mcur->tag;
-+}
-+
-+static int curses_item_index(void)
-+{
-+ return item_index(current_item(curses_menu));
-+}
-+
-+static void *item_data(void)
-+{
-+ ITEM *cur;
-+ struct mitem *mcur;
-+
-+ cur = current_item(curses_menu);
-+ if (!cur)
-+ return NULL;
-+ mcur = (struct mitem *) item_userptr(cur);
-+ return mcur->usrptr;
-+
-+}
-+
-+static int item_is_tag(char tag)
-+{
-+ return item_tag() == tag;
-+}
-+
-+static char filename[PATH_MAX+1];
-+static char menu_backtitle[PATH_MAX+128];
-+static const char *set_config_filename(const char *config_filename)
-+{
-+ int size;
-+
-+ size = snprintf(menu_backtitle, sizeof(menu_backtitle),
-+ "%s - %s", config_filename, rootmenu.prompt->text);
-+ if (size >= sizeof(menu_backtitle))
-+ menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
-+
-+ size = snprintf(filename, sizeof(filename), "%s", config_filename);
-+ if (size >= sizeof(filename))
-+ filename[sizeof(filename)-1] = '\0';
-+ return menu_backtitle;
-+}
-+
-+/* return = 0 means we are successful.
-+ * -1 means go on doing what you were doing
-+ */
-+static int do_exit(void)
-+{
-+ int res;
-+ if (!conf_get_changed()) {
-+ global_exit = 1;
-+ return 0;
-+ }
-+ res = btn_dialog(main_window,
-+ _("Do you wish to save your new configuration?\n"
-+ "<ESC> to cancel and resume nconfig."),
-+ 2,
-+ " <save> ",
-+ "<don't save>");
-+ if (res == KEY_EXIT) {
-+ global_exit = 0;
-+ return -1;
-+ }
-+
-+ /* if we got here, the user really wants to exit */
-+ switch (res) {
-+ case 0:
-+ res = conf_write(filename);
-+ if (res)
-+ btn_dialog(
-+ main_window,
-+ _("Error during writing of configuration.\n"
-+ "Your configuration changes were NOT saved."),
-+ 1,
-+ "<OK>");
-+ break;
-+ default:
-+ btn_dialog(
-+ main_window,
-+ _("Your configuration changes were NOT saved."),
-+ 1,
-+ "<OK>");
-+ break;
-+ }
-+ global_exit = 1;
-+ return 0;
-+}
-+
-+
-+static void search_conf(void)
-+{
-+ struct symbol **sym_arr;
-+ struct gstr res;
-+ struct gstr title;
-+ char *dialog_input;
-+ int dres;
-+
-+ title = str_new();
-+ str_printf( &title, _("Enter %s (sub)string or regexp to search for "
-+ "(with or without \"%s\")"), CONFIG_, CONFIG_);
-+
-+again:
-+ dres = dialog_inputbox(main_window,
-+ _("Search Configuration Parameter"),
-+ str_get(&title),
-+ "", &dialog_input_result, &dialog_input_result_len);
-+ switch (dres) {
-+ case 0:
-+ break;
-+ case 1:
-+ show_scroll_win(main_window,
-+ _("Search Configuration"), search_help);
-+ goto again;
-+ default:
-+ str_free(&title);
-+ return;
-+ }
-+
-+ /* strip the prefix if necessary */
-+ dialog_input = dialog_input_result;
-+ if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
-+ dialog_input += strlen(CONFIG_);
-+
-+ sym_arr = sym_re_search(dialog_input);
-+ res = get_relations_str(sym_arr, NULL);
-+ free(sym_arr);
-+ show_scroll_win(main_window,
-+ _("Search Results"), str_get(&res));
-+ str_free(&res);
-+ str_free(&title);
-+}
-+
-+
-+static void build_conf(struct menu *menu)
-+{
-+ struct symbol *sym;
-+ struct property *prop;
-+ struct menu *child;
-+ int type, tmp, doint = 2;
-+ tristate val;
-+ char ch;
-+
-+ if (!menu || (!show_all_items && !menu_is_visible(menu)))
-+ return;
-+
-+ sym = menu->sym;
-+ prop = menu->prompt;
-+ if (!sym) {
-+ if (prop && menu != current_menu) {
-+ const char *prompt = menu_get_prompt(menu);
-+ enum prop_type ptype;
-+ ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
-+ switch (ptype) {
-+ case P_MENU:
-+ child_count++;
-+ prompt = _(prompt);
-+ if (single_menu_mode) {
-+ item_make(menu, 'm',
-+ "%s%*c%s",
-+ menu->data ? "-->" : "++>",
-+ indent + 1, ' ', prompt);
-+ } else
-+ item_make(menu, 'm',
-+ " %*c%s %s",
-+ indent + 1, ' ', prompt,
-+ menu_is_empty(menu) ? "----" : "--->");
-+
-+ if (single_menu_mode && menu->data)
-+ goto conf_childs;
-+ return;
-+ case P_COMMENT:
-+ if (prompt) {
-+ child_count++;
-+ item_make(menu, ':',
-+ " %*c*** %s ***",
-+ indent + 1, ' ',
-+ _(prompt));
-+ }
-+ break;
-+ default:
-+ if (prompt) {
-+ child_count++;
-+ item_make(menu, ':', "---%*c%s",
-+ indent + 1, ' ',
-+ _(prompt));
-+ }
-+ }
-+ } else
-+ doint = 0;
-+ goto conf_childs;
-+ }
-+
-+ type = sym_get_type(sym);
-+ if (sym_is_choice(sym)) {
-+ struct symbol *def_sym = sym_get_choice_value(sym);
-+ struct menu *def_menu = NULL;
-+
-+ child_count++;
-+ for (child = menu->list; child; child = child->next) {
-+ if (menu_is_visible(child) && child->sym == def_sym)
-+ def_menu = child;
-+ }
-+
-+ val = sym_get_tristate_value(sym);
-+ if (sym_is_changable(sym)) {
-+ switch (type) {
-+ case S_BOOLEAN:
-+ item_make(menu, 't', "[%c]",
-+ val == no ? ' ' : '*');
-+ break;
-+ case S_TRISTATE:
-+ switch (val) {
-+ case yes:
-+ ch = '*';
-+ break;
-+ case mod:
-+ ch = 'M';
-+ break;
-+ default:
-+ ch = ' ';
-+ break;
-+ }
-+ item_make(menu, 't', "<%c>", ch);
-+ break;
-+ }
-+ } else {
-+ item_make(menu, def_menu ? 't' : ':', " ");
-+ }
-+
-+ item_add_str("%*c%s", indent + 1,
-+ ' ', _(menu_get_prompt(menu)));
-+ if (val == yes) {
-+ if (def_menu) {
-+ item_add_str(" (%s)",
-+ _(menu_get_prompt(def_menu)));
-+ item_add_str(" --->");
-+ if (def_menu->list) {
-+ indent += 2;
-+ build_conf(def_menu);
-+ indent -= 2;
-+ }
-+ }
-+ return;
-+ }
-+ } else {
-+ if (menu == current_menu) {
-+ item_make(menu, ':',
-+ "---%*c%s", indent + 1,
-+ ' ', _(menu_get_prompt(menu)));
-+ goto conf_childs;
-+ }
-+ child_count++;
-+ val = sym_get_tristate_value(sym);
-+ if (sym_is_choice_value(sym) && val == yes) {
-+ item_make(menu, ':', " ");
-+ } else {
-+ switch (type) {
-+ case S_BOOLEAN:
-+ if (sym_is_changable(sym))
-+ item_make(menu, 't', "[%c]",
-+ val == no ? ' ' : '*');
-+ else
-+ item_make(menu, 't', "-%c-",
-+ val == no ? ' ' : '*');
-+ break;
-+ case S_TRISTATE:
-+ switch (val) {
-+ case yes:
-+ ch = '*';
-+ break;
-+ case mod:
-+ ch = 'M';
-+ break;
-+ default:
-+ ch = ' ';
-+ break;
-+ }
-+ if (sym_is_changable(sym)) {
-+ if (sym->rev_dep.tri == mod)
-+ item_make(menu,
-+ 't', "{%c}", ch);
-+ else
-+ item_make(menu,
-+ 't', "<%c>", ch);
-+ } else
-+ item_make(menu, 't', "-%c-", ch);
-+ break;
-+ default:
-+ tmp = 2 + strlen(sym_get_string_value(sym));
-+ item_make(menu, 's', " (%s)",
-+ sym_get_string_value(sym));
-+ tmp = indent - tmp + 4;
-+ if (tmp < 0)
-+ tmp = 0;
-+ item_add_str("%*c%s%s", tmp, ' ',
-+ _(menu_get_prompt(menu)),
-+ (sym_has_value(sym) ||
-+ !sym_is_changable(sym)) ? "" :
-+ _(" (NEW)"));
-+ goto conf_childs;
-+ }
-+ }
-+ item_add_str("%*c%s%s", indent + 1, ' ',
-+ _(menu_get_prompt(menu)),
-+ (sym_has_value(sym) || !sym_is_changable(sym)) ?
-+ "" : _(" (NEW)"));
-+ if (menu->prompt && menu->prompt->type == P_MENU) {
-+ item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
-+ return;
-+ }
-+ }
-+
-+conf_childs:
-+ indent += doint;
-+ for (child = menu->list; child; child = child->next)
-+ build_conf(child);
-+ indent -= doint;
-+}
-+
-+static void reset_menu(void)
-+{
-+ unpost_menu(curses_menu);
-+ clean_items();
-+}
-+
-+/* adjust the menu to show this item.
-+ * prefer not to scroll the menu if possible*/
-+static void center_item(int selected_index, int *last_top_row)
-+{
-+ int toprow;
-+
-+ set_top_row(curses_menu, *last_top_row);
-+ toprow = top_row(curses_menu);
-+ if (selected_index < toprow ||
-+ selected_index >= toprow+mwin_max_lines) {
-+ toprow = max(selected_index-mwin_max_lines/2, 0);
-+ if (toprow >= item_count(curses_menu)-mwin_max_lines)
-+ toprow = item_count(curses_menu)-mwin_max_lines;
-+ set_top_row(curses_menu, toprow);
-+ }
-+ set_current_item(curses_menu,
-+ curses_menu_items[selected_index]);
-+ *last_top_row = toprow;
-+ post_menu(curses_menu);
-+ refresh_all_windows(main_window);
-+}
-+
-+/* this function assumes reset_menu has been called before */
-+static void show_menu(const char *prompt, const char *instructions,
-+ int selected_index, int *last_top_row)
-+{
-+ int maxx, maxy;
-+ WINDOW *menu_window;
-+
-+ current_instructions = instructions;
-+
-+ clear();
-+ (void) wattrset(main_window, attributes[NORMAL]);
-+ print_in_middle(stdscr, 1, 0, getmaxx(stdscr),
-+ menu_backtitle,
-+ attributes[MAIN_HEADING]);
-+
-+ (void) wattrset(main_window, attributes[MAIN_MENU_BOX]);
-+ box(main_window, 0, 0);
-+ (void) wattrset(main_window, attributes[MAIN_MENU_HEADING]);
-+ mvwprintw(main_window, 0, 3, " %s ", prompt);
-+ (void) wattrset(main_window, attributes[NORMAL]);
-+
-+ set_menu_items(curses_menu, curses_menu_items);
-+
-+ /* position the menu at the middle of the screen */
-+ scale_menu(curses_menu, &maxy, &maxx);
-+ maxx = min(maxx, mwin_max_cols-2);
-+ maxy = mwin_max_lines;
-+ menu_window = derwin(main_window,
-+ maxy,
-+ maxx,
-+ 2,
-+ (mwin_max_cols-maxx)/2);
-+ keypad(menu_window, TRUE);
-+ set_menu_win(curses_menu, menu_window);
-+ set_menu_sub(curses_menu, menu_window);
-+
-+ /* must reassert this after changing items, otherwise returns to a
-+ * default of 16
-+ */
-+ set_menu_format(curses_menu, maxy, 1);
-+ center_item(selected_index, last_top_row);
-+ set_menu_format(curses_menu, maxy, 1);
-+
-+ print_function_line();
-+
-+ /* Post the menu */
-+ post_menu(curses_menu);
-+ refresh_all_windows(main_window);
-+}
-+
-+static void adj_match_dir(match_f *match_direction)
-+{
-+ if (*match_direction == FIND_NEXT_MATCH_DOWN)
-+ *match_direction =
-+ MATCH_TINKER_PATTERN_DOWN;
-+ else if (*match_direction == FIND_NEXT_MATCH_UP)
-+ *match_direction =
-+ MATCH_TINKER_PATTERN_UP;
-+ /* else, do no change.. */
-+}
-+
-+struct match_state
-+{
-+ int in_search;
-+ match_f match_direction;
-+ char pattern[256];
-+};
-+
-+/* Return 0 means I have handled the key. In such a case, ans should hold the
-+ * item to center, or -1 otherwise.
-+ * Else return -1 .
-+ */
-+static int do_match(int key, struct match_state *state, int *ans)
-+{
-+ char c = (char) key;
-+ int terminate_search = 0;
-+ *ans = -1;
-+ if (key == '/' || (state->in_search && key == 27)) {
-+ move(0, 0);
-+ refresh();
-+ clrtoeol();
-+ state->in_search = 1-state->in_search;
-+ bzero(state->pattern, sizeof(state->pattern));
-+ state->match_direction = MATCH_TINKER_PATTERN_DOWN;
-+ return 0;
-+ } else if (!state->in_search)
-+ return 1;
-+
-+ if (isalnum(c) || isgraph(c) || c == ' ') {
-+ state->pattern[strlen(state->pattern)] = c;
-+ state->pattern[strlen(state->pattern)] = '\0';
-+ adj_match_dir(&state->match_direction);
-+ *ans = get_mext_match(state->pattern,
-+ state->match_direction);
-+ } else if (key == KEY_DOWN) {
-+ state->match_direction = FIND_NEXT_MATCH_DOWN;
-+ *ans = get_mext_match(state->pattern,
-+ state->match_direction);
-+ } else if (key == KEY_UP) {
-+ state->match_direction = FIND_NEXT_MATCH_UP;
-+ *ans = get_mext_match(state->pattern,
-+ state->match_direction);
-+ } else if (key == KEY_BACKSPACE || key == 127) {
-+ state->pattern[strlen(state->pattern)-1] = '\0';
-+ adj_match_dir(&state->match_direction);
-+ } else
-+ terminate_search = 1;
-+
-+ if (terminate_search) {
-+ state->in_search = 0;
-+ bzero(state->pattern, sizeof(state->pattern));
-+ move(0, 0);
-+ refresh();
-+ clrtoeol();
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+static void conf(struct menu *menu)
-+{
-+ struct menu *submenu = 0;
-+ const char *prompt = menu_get_prompt(menu);
-+ struct symbol *sym;
-+ int res;
-+ int current_index = 0;
-+ int last_top_row = 0;
-+ struct match_state match_state = {
-+ .in_search = 0,
-+ .match_direction = MATCH_TINKER_PATTERN_DOWN,
-+ .pattern = "",
-+ };
-+
-+ while (!global_exit) {
-+ reset_menu();
-+ current_menu = menu;
-+ build_conf(menu);
-+ if (!child_count)
-+ break;
-+
-+ show_menu(prompt ? _(prompt) : _("Main Menu"),
-+ _(menu_instructions),
-+ current_index, &last_top_row);
-+ keypad((menu_win(curses_menu)), TRUE);
-+ while (!global_exit) {
-+ if (match_state.in_search) {
-+ mvprintw(0, 0,
-+ "searching: %s", match_state.pattern);
-+ clrtoeol();
-+ }
-+ refresh_all_windows(main_window);
-+ res = wgetch(menu_win(curses_menu));
-+ if (!res)
-+ break;
-+ if (do_match(res, &match_state, &current_index) == 0) {
-+ if (current_index != -1)
-+ center_item(current_index,
-+ &last_top_row);
-+ continue;
-+ }
-+ if (process_special_keys(&res,
-+ (struct menu *) item_data()))
-+ break;
-+ switch (res) {
-+ case KEY_DOWN:
-+ menu_driver(curses_menu, REQ_DOWN_ITEM);
-+ break;
-+ case KEY_UP:
-+ menu_driver(curses_menu, REQ_UP_ITEM);
-+ break;
-+ case KEY_NPAGE:
-+ menu_driver(curses_menu, REQ_SCR_DPAGE);
-+ break;
-+ case KEY_PPAGE:
-+ menu_driver(curses_menu, REQ_SCR_UPAGE);
-+ break;
-+ case KEY_HOME:
-+ menu_driver(curses_menu, REQ_FIRST_ITEM);
-+ break;
-+ case KEY_END:
-+ menu_driver(curses_menu, REQ_LAST_ITEM);
-+ break;
-+ case 'h':
-+ case '?':
-+ show_help((struct menu *) item_data());
-+ break;
-+ }
-+ if (res == 10 || res == 27 ||
-+ res == 32 || res == 'n' || res == 'y' ||
-+ res == KEY_LEFT || res == KEY_RIGHT ||
-+ res == 'm')
-+ break;
-+ refresh_all_windows(main_window);
-+ }
-+
-+ refresh_all_windows(main_window);
-+ /* if ESC or left*/
-+ if (res == 27 || (menu != &rootmenu && res == KEY_LEFT))
-+ break;
-+
-+ /* remember location in the menu */
-+ last_top_row = top_row(curses_menu);
-+ current_index = curses_item_index();
-+
-+ if (!item_tag())
-+ continue;
-+
-+ submenu = (struct menu *) item_data();
-+ if (!submenu || !menu_is_visible(submenu))
-+ continue;
-+ sym = submenu->sym;
-+
-+ switch (res) {
-+ case ' ':
-+ if (item_is_tag('t'))
-+ sym_toggle_tristate_value(sym);
-+ else if (item_is_tag('m'))
-+ conf(submenu);
-+ break;
-+ case KEY_RIGHT:
-+ case 10: /* ENTER WAS PRESSED */
-+ switch (item_tag()) {
-+ case 'm':
-+ if (single_menu_mode)
-+ submenu->data =
-+ (void *) (long) !submenu->data;
-+ else
-+ conf(submenu);
-+ break;
-+ case 't':
-+ if (sym_is_choice(sym) &&
-+ sym_get_tristate_value(sym) == yes)
-+ conf_choice(submenu);
-+ else if (submenu->prompt &&
-+ submenu->prompt->type == P_MENU)
-+ conf(submenu);
-+ else if (res == 10)
-+ sym_toggle_tristate_value(sym);
-+ break;
-+ case 's':
-+ conf_string(submenu);
-+ break;
-+ }
-+ break;
-+ case 'y':
-+ if (item_is_tag('t')) {
-+ if (sym_set_tristate_value(sym, yes))
-+ break;
-+ if (sym_set_tristate_value(sym, mod))
-+ btn_dialog(main_window, setmod_text, 0);
-+ }
-+ break;
-+ case 'n':
-+ if (item_is_tag('t'))
-+ sym_set_tristate_value(sym, no);
-+ break;
-+ case 'm':
-+ if (item_is_tag('t'))
-+ sym_set_tristate_value(sym, mod);
-+ break;
-+ }
-+ }
-+}
-+
-+static void conf_message_callback(const char *fmt, va_list ap)
-+{
-+ char buf[1024];
-+
-+ vsnprintf(buf, sizeof(buf), fmt, ap);
-+ btn_dialog(main_window, buf, 1, "<OK>");
-+}
-+
-+static void show_help(struct menu *menu)
-+{
-+ struct gstr help;
-+
-+ if (!menu)
-+ return;
-+
-+ help = str_new();
-+ menu_get_ext_help(menu, &help);
-+ show_scroll_win(main_window, _(menu_get_prompt(menu)), str_get(&help));
-+ str_free(&help);
-+}
-+
-+static void conf_choice(struct menu *menu)
-+{
-+ const char *prompt = _(menu_get_prompt(menu));
-+ struct menu *child = 0;
-+ struct symbol *active;
-+ int selected_index = 0;
-+ int last_top_row = 0;
-+ int res, i = 0;
-+ struct match_state match_state = {
-+ .in_search = 0,
-+ .match_direction = MATCH_TINKER_PATTERN_DOWN,
-+ .pattern = "",
-+ };
-+
-+ active = sym_get_choice_value(menu->sym);
-+ /* this is mostly duplicated from the conf() function. */
-+ while (!global_exit) {
-+ reset_menu();
-+
-+ for (i = 0, child = menu->list; child; child = child->next) {
-+ if (!show_all_items && !menu_is_visible(child))
-+ continue;
-+
-+ if (child->sym == sym_get_choice_value(menu->sym))
-+ item_make(child, ':', "<X> %s",
-+ _(menu_get_prompt(child)));
-+ else if (child->sym)
-+ item_make(child, ':', " %s",
-+ _(menu_get_prompt(child)));
-+ else
-+ item_make(child, ':', "*** %s ***",
-+ _(menu_get_prompt(child)));
-+
-+ if (child->sym == active){
-+ last_top_row = top_row(curses_menu);
-+ selected_index = i;
-+ }
-+ i++;
-+ }
-+ show_menu(prompt ? _(prompt) : _("Choice Menu"),
-+ _(radiolist_instructions),
-+ selected_index,
-+ &last_top_row);
-+ while (!global_exit) {
-+ if (match_state.in_search) {
-+ mvprintw(0, 0, "searching: %s",
-+ match_state.pattern);
-+ clrtoeol();
-+ }
-+ refresh_all_windows(main_window);
-+ res = wgetch(menu_win(curses_menu));
-+ if (!res)
-+ break;
-+ if (do_match(res, &match_state, &selected_index) == 0) {
-+ if (selected_index != -1)
-+ center_item(selected_index,
-+ &last_top_row);
-+ continue;
-+ }
-+ if (process_special_keys(
-+ &res,
-+ (struct menu *) item_data()))
-+ break;
-+ switch (res) {
-+ case KEY_DOWN:
-+ menu_driver(curses_menu, REQ_DOWN_ITEM);
-+ break;
-+ case KEY_UP:
-+ menu_driver(curses_menu, REQ_UP_ITEM);
-+ break;
-+ case KEY_NPAGE:
-+ menu_driver(curses_menu, REQ_SCR_DPAGE);
-+ break;
-+ case KEY_PPAGE:
-+ menu_driver(curses_menu, REQ_SCR_UPAGE);
-+ break;
-+ case KEY_HOME:
-+ menu_driver(curses_menu, REQ_FIRST_ITEM);
-+ break;
-+ case KEY_END:
-+ menu_driver(curses_menu, REQ_LAST_ITEM);
-+ break;
-+ case 'h':
-+ case '?':
-+ show_help((struct menu *) item_data());
-+ break;
-+ }
-+ if (res == 10 || res == 27 || res == ' ' ||
-+ res == KEY_LEFT){
-+ break;
-+ }
-+ refresh_all_windows(main_window);
-+ }
-+ /* if ESC or left */
-+ if (res == 27 || res == KEY_LEFT)
-+ break;
-+
-+ child = item_data();
-+ if (!child || !menu_is_visible(child) || !child->sym)
-+ continue;
-+ switch (res) {
-+ case ' ':
-+ case 10:
-+ case KEY_RIGHT:
-+ sym_set_tristate_value(child->sym, yes);
-+ return;
-+ case 'h':
-+ case '?':
-+ show_help(child);
-+ active = child->sym;
-+ break;
-+ case KEY_EXIT:
-+ return;
-+ }
-+ }
-+}
-+
-+static void conf_string(struct menu *menu)
-+{
-+ const char *prompt = menu_get_prompt(menu);
-+
-+ while (1) {
-+ int res;
-+ const char *heading;
-+
-+ switch (sym_get_type(menu->sym)) {
-+ case S_INT:
-+ heading = _(inputbox_instructions_int);
-+ break;
-+ case S_HEX:
-+ heading = _(inputbox_instructions_hex);
-+ break;
-+ case S_STRING:
-+ heading = _(inputbox_instructions_string);
-+ break;
-+ default:
-+ heading = _("Internal nconf error!");
-+ }
-+ res = dialog_inputbox(main_window,
-+ prompt ? _(prompt) : _("Main Menu"),
-+ heading,
-+ sym_get_string_value(menu->sym),
-+ &dialog_input_result,
-+ &dialog_input_result_len);
-+ switch (res) {
-+ case 0:
-+ if (sym_set_string_value(menu->sym,
-+ dialog_input_result))
-+ return;
-+ btn_dialog(main_window,
-+ _("You have made an invalid entry."), 0);
-+ break;
-+ case 1:
-+ show_help(menu);
-+ break;
-+ case KEY_EXIT:
-+ return;
-+ }
-+ }
-+}
-+
-+static void conf_load(void)
-+{
-+ while (1) {
-+ int res;
-+ res = dialog_inputbox(main_window,
-+ NULL, load_config_text,
-+ filename,
-+ &dialog_input_result,
-+ &dialog_input_result_len);
-+ switch (res) {
-+ case 0:
-+ if (!dialog_input_result[0])
-+ return;
-+ if (!conf_read(dialog_input_result)) {
-+ set_config_filename(dialog_input_result);
-+ sym_set_change_count(1);
-+ return;
-+ }
-+ btn_dialog(main_window, _("File does not exist!"), 0);
-+ break;
-+ case 1:
-+ show_scroll_win(main_window,
-+ _("Load Alternate Configuration"),
-+ load_config_help);
-+ break;
-+ case KEY_EXIT:
-+ return;
-+ }
-+ }
-+}
-+
-+static void conf_save(void)
-+{
-+ while (1) {
-+ int res;
-+ res = dialog_inputbox(main_window,
-+ NULL, save_config_text,
-+ filename,
-+ &dialog_input_result,
-+ &dialog_input_result_len);
-+ switch (res) {
-+ case 0:
-+ if (!dialog_input_result[0])
-+ return;
-+ res = conf_write(dialog_input_result);
-+ if (!res) {
-+ set_config_filename(dialog_input_result);
-+ return;
-+ }
-+ btn_dialog(main_window, _("Can't create file! "
-+ "Probably a nonexistent directory."),
-+ 1, "<OK>");
-+ break;
-+ case 1:
-+ show_scroll_win(main_window,
-+ _("Save Alternate Configuration"),
-+ save_config_help);
-+ break;
-+ case KEY_EXIT:
-+ return;
-+ }
-+ }
-+}
-+
-+void setup_windows(void)
-+{
-+ int lines, columns;
-+
-+ getmaxyx(stdscr, lines, columns);
-+
-+ if (main_window != NULL)
-+ delwin(main_window);
-+
-+ /* set up the menu and menu window */
-+ main_window = newwin(lines-2, columns-2, 2, 1);
-+ keypad(main_window, TRUE);
-+ mwin_max_lines = lines-7;
-+ mwin_max_cols = columns-6;
-+
-+ /* panels order is from bottom to top */
-+ new_panel(main_window);
-+}
-+
-+int main(int ac, char **av)
-+{
-+ int lines, columns;
-+ char *mode;
-+
-+ setlocale(LC_ALL, "");
-+ bindtextdomain(PACKAGE, LOCALEDIR);
-+ textdomain(PACKAGE);
-+
-+ conf_parse(av[1]);
-+ conf_read(NULL);
-+
-+ mode = getenv("NCONFIG_MODE");
-+ if (mode) {
-+ if (!strcasecmp(mode, "single_menu"))
-+ single_menu_mode = 1;
-+ }
-+
-+ /* Initialize curses */
-+ initscr();
-+ /* set color theme */
-+ set_colors();
-+
-+ cbreak();
-+ noecho();
-+ keypad(stdscr, TRUE);
-+ curs_set(0);
-+
-+ getmaxyx(stdscr, lines, columns);
-+ if (columns < 75 || lines < 20) {
-+ endwin();
-+ printf("Your terminal should have at "
-+ "least 20 lines and 75 columns\n");
-+ return 1;
-+ }
-+
-+ notimeout(stdscr, FALSE);
-+#if NCURSES_REENTRANT
-+ set_escdelay(1);
-+#else
-+ ESCDELAY = 1;
-+#endif
-+
-+ /* set btns menu */
-+ curses_menu = new_menu(curses_menu_items);
-+ menu_opts_off(curses_menu, O_SHOWDESC);
-+ menu_opts_on(curses_menu, O_SHOWMATCH);
-+ menu_opts_on(curses_menu, O_ONEVALUE);
-+ menu_opts_on(curses_menu, O_NONCYCLIC);
-+ menu_opts_on(curses_menu, O_IGNORECASE);
-+ set_menu_mark(curses_menu, " ");
-+ set_menu_fore(curses_menu, attributes[MAIN_MENU_FORE]);
-+ set_menu_back(curses_menu, attributes[MAIN_MENU_BACK]);
-+ set_menu_grey(curses_menu, attributes[MAIN_MENU_GREY]);
-+
-+ set_config_filename(conf_get_configname());
-+ setup_windows();
-+
-+ /* check for KEY_FUNC(1) */
-+ if (has_key(KEY_F(1)) == FALSE) {
-+ show_scroll_win(main_window,
-+ _("Instructions"),
-+ _(menu_no_f_instructions));
-+ }
-+
-+ conf_set_message_callback(conf_message_callback);
-+ /* do the work */
-+ while (!global_exit) {
-+ conf(&rootmenu);
-+ if (!global_exit && do_exit() == 0)
-+ break;
-+ }
-+ /* ok, we are done */
-+ unpost_menu(curses_menu);
-+ free_menu(curses_menu);
-+ delwin(main_window);
-+ clear();
-+ refresh();
-+ endwin();
-+ return 0;
-+}
-+
-diff -Nur uClibc-0.9.33.2/extra/config/nconf.gui.c uClibc-git/extra/config/nconf.gui.c
---- uClibc-0.9.33.2/extra/config/nconf.gui.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/nconf.gui.c 2014-07-25 20:36:04.865324519 +0200
-@@ -0,0 +1,656 @@
-+/*
-+ * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
-+ * Released under the terms of the GNU GPL v2.0.
-+ *
-+ * Derived from menuconfig.
-+ *
-+ */
-+#include "nconf.h"
-+
-+/* a list of all the different widgets we use */
-+attributes_t attributes[ATTR_MAX+1] = {0};
-+
-+/* available colors:
-+ COLOR_BLACK 0
-+ COLOR_RED 1
-+ COLOR_GREEN 2
-+ COLOR_YELLOW 3
-+ COLOR_BLUE 4
-+ COLOR_MAGENTA 5
-+ COLOR_CYAN 6
-+ COLOR_WHITE 7
-+ */
-+static void set_normal_colors(void)
-+{
-+ init_pair(NORMAL, -1, -1);
-+ init_pair(MAIN_HEADING, COLOR_MAGENTA, -1);
-+
-+ /* FORE is for the selected item */
-+ init_pair(MAIN_MENU_FORE, -1, -1);
-+ /* BACK for all the rest */
-+ init_pair(MAIN_MENU_BACK, -1, -1);
-+ init_pair(MAIN_MENU_GREY, -1, -1);
-+ init_pair(MAIN_MENU_HEADING, COLOR_GREEN, -1);
-+ init_pair(MAIN_MENU_BOX, COLOR_YELLOW, -1);
-+
-+ init_pair(SCROLLWIN_TEXT, -1, -1);
-+ init_pair(SCROLLWIN_HEADING, COLOR_GREEN, -1);
-+ init_pair(SCROLLWIN_BOX, COLOR_YELLOW, -1);
-+
-+ init_pair(DIALOG_TEXT, -1, -1);
-+ init_pair(DIALOG_BOX, COLOR_YELLOW, -1);
-+ init_pair(DIALOG_MENU_BACK, COLOR_YELLOW, -1);
-+ init_pair(DIALOG_MENU_FORE, COLOR_RED, -1);
-+
-+ init_pair(INPUT_BOX, COLOR_YELLOW, -1);
-+ init_pair(INPUT_HEADING, COLOR_GREEN, -1);
-+ init_pair(INPUT_TEXT, -1, -1);
-+ init_pair(INPUT_FIELD, -1, -1);
-+
-+ init_pair(FUNCTION_HIGHLIGHT, -1, -1);
-+ init_pair(FUNCTION_TEXT, COLOR_YELLOW, -1);
-+}
-+
-+/* available attributes:
-+ A_NORMAL Normal display (no highlight)
-+ A_STANDOUT Best highlighting mode of the terminal.
-+ A_UNDERLINE Underlining
-+ A_REVERSE Reverse video
-+ A_BLINK Blinking
-+ A_DIM Half bright
-+ A_BOLD Extra bright or bold
-+ A_PROTECT Protected mode
-+ A_INVIS Invisible or blank mode
-+ A_ALTCHARSET Alternate character set
-+ A_CHARTEXT Bit-mask to extract a character
-+ COLOR_PAIR(n) Color-pair number n
-+ */
-+static void normal_color_theme(void)
-+{
-+ /* automatically add color... */
-+#define mkattr(name, attr) do { \
-+attributes[name] = attr | COLOR_PAIR(name); } while (0)
-+ mkattr(NORMAL, NORMAL);
-+ mkattr(MAIN_HEADING, A_BOLD | A_UNDERLINE);
-+
-+ mkattr(MAIN_MENU_FORE, A_REVERSE);
-+ mkattr(MAIN_MENU_BACK, A_NORMAL);
-+ mkattr(MAIN_MENU_GREY, A_NORMAL);
-+ mkattr(MAIN_MENU_HEADING, A_BOLD);
-+ mkattr(MAIN_MENU_BOX, A_NORMAL);
-+
-+ mkattr(SCROLLWIN_TEXT, A_NORMAL);
-+ mkattr(SCROLLWIN_HEADING, A_BOLD);
-+ mkattr(SCROLLWIN_BOX, A_BOLD);
-+
-+ mkattr(DIALOG_TEXT, A_BOLD);
-+ mkattr(DIALOG_BOX, A_BOLD);
-+ mkattr(DIALOG_MENU_FORE, A_STANDOUT);
-+ mkattr(DIALOG_MENU_BACK, A_NORMAL);
-+
-+ mkattr(INPUT_BOX, A_NORMAL);
-+ mkattr(INPUT_HEADING, A_BOLD);
-+ mkattr(INPUT_TEXT, A_NORMAL);
-+ mkattr(INPUT_FIELD, A_UNDERLINE);
-+
-+ mkattr(FUNCTION_HIGHLIGHT, A_BOLD);
-+ mkattr(FUNCTION_TEXT, A_REVERSE);
-+}
-+
-+static void no_colors_theme(void)
-+{
-+ /* automatically add highlight, no color */
-+#define mkattrn(name, attr) { attributes[name] = attr; }
-+
-+ mkattrn(NORMAL, NORMAL);
-+ mkattrn(MAIN_HEADING, A_BOLD | A_UNDERLINE);
-+
-+ mkattrn(MAIN_MENU_FORE, A_STANDOUT);
-+ mkattrn(MAIN_MENU_BACK, A_NORMAL);
-+ mkattrn(MAIN_MENU_GREY, A_NORMAL);
-+ mkattrn(MAIN_MENU_HEADING, A_BOLD);
-+ mkattrn(MAIN_MENU_BOX, A_NORMAL);
-+
-+ mkattrn(SCROLLWIN_TEXT, A_NORMAL);
-+ mkattrn(SCROLLWIN_HEADING, A_BOLD);
-+ mkattrn(SCROLLWIN_BOX, A_BOLD);
-+
-+ mkattrn(DIALOG_TEXT, A_NORMAL);
-+ mkattrn(DIALOG_BOX, A_BOLD);
-+ mkattrn(DIALOG_MENU_FORE, A_STANDOUT);
-+ mkattrn(DIALOG_MENU_BACK, A_NORMAL);
-+
-+ mkattrn(INPUT_BOX, A_BOLD);
-+ mkattrn(INPUT_HEADING, A_BOLD);
-+ mkattrn(INPUT_TEXT, A_NORMAL);
-+ mkattrn(INPUT_FIELD, A_UNDERLINE);
-+
-+ mkattrn(FUNCTION_HIGHLIGHT, A_BOLD);
-+ mkattrn(FUNCTION_TEXT, A_REVERSE);
-+}
-+
-+void set_colors()
-+{
-+ start_color();
-+ use_default_colors();
-+ set_normal_colors();
-+ if (has_colors()) {
-+ normal_color_theme();
-+ } else {
-+ /* give defaults */
-+ no_colors_theme();
-+ }
-+}
-+
-+
-+/* this changes the windows attributes !!! */
-+void print_in_middle(WINDOW *win,
-+ int starty,
-+ int startx,
-+ int width,
-+ const char *string,
-+ chtype color)
-+{ int length, x, y;
-+ float temp;
-+
-+
-+ if (win == NULL)
-+ win = stdscr;
-+ getyx(win, y, x);
-+ if (startx != 0)
-+ x = startx;
-+ if (starty != 0)
-+ y = starty;
-+ if (width == 0)
-+ width = 80;
-+
-+ length = strlen(string);
-+ temp = (width - length) / 2;
-+ x = startx + (int)temp;
-+ (void) wattrset(win, color);
-+ mvwprintw(win, y, x, "%s", string);
-+ refresh();
-+}
-+
-+int get_line_no(const char *text)
-+{
-+ int i;
-+ int total = 1;
-+
-+ if (!text)
-+ return 0;
-+
-+ for (i = 0; text[i] != '\0'; i++)
-+ if (text[i] == '\n')
-+ total++;
-+ return total;
-+}
-+
-+const char *get_line(const char *text, int line_no)
-+{
-+ int i;
-+ int lines = 0;
-+
-+ if (!text)
-+ return 0;
-+
-+ for (i = 0; text[i] != '\0' && lines < line_no; i++)
-+ if (text[i] == '\n')
-+ lines++;
-+ return text+i;
-+}
-+
-+int get_line_length(const char *line)
-+{
-+ int res = 0;
-+ while (*line != '\0' && *line != '\n') {
-+ line++;
-+ res++;
-+ }
-+ return res;
-+}
-+
-+/* print all lines to the window. */
-+void fill_window(WINDOW *win, const char *text)
-+{
-+ int x, y;
-+ int total_lines = get_line_no(text);
-+ int i;
-+
-+ getmaxyx(win, y, x);
-+ /* do not go over end of line */
-+ total_lines = min(total_lines, y);
-+ for (i = 0; i < total_lines; i++) {
-+ char tmp[x+10];
-+ const char *line = get_line(text, i);
-+ int len = get_line_length(line);
-+ strncpy(tmp, line, min(len, x));
-+ tmp[len] = '\0';
-+ mvwprintw(win, i, 0, "%s", tmp);
-+ }
-+}
-+
-+/* get the message, and buttons.
-+ * each button must be a char*
-+ * return the selected button
-+ *
-+ * this dialog is used for 2 different things:
-+ * 1) show a text box, no buttons.
-+ * 2) show a dialog, with horizontal buttons
-+ */
-+int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...)
-+{
-+ va_list ap;
-+ char *btn;
-+ int btns_width = 0;
-+ int msg_lines = 0;
-+ int msg_width = 0;
-+ int total_width;
-+ int win_rows = 0;
-+ WINDOW *win;
-+ WINDOW *msg_win;
-+ WINDOW *menu_win;
-+ MENU *menu;
-+ ITEM *btns[btn_num+1];
-+ int i, x, y;
-+ int res = -1;
-+
-+
-+ va_start(ap, btn_num);
-+ for (i = 0; i < btn_num; i++) {
-+ btn = va_arg(ap, char *);
-+ btns[i] = new_item(btn, "");
-+ btns_width += strlen(btn)+1;
-+ }
-+ va_end(ap);
-+ btns[btn_num] = NULL;
-+
-+ /* find the widest line of msg: */
-+ msg_lines = get_line_no(msg);
-+ for (i = 0; i < msg_lines; i++) {
-+ const char *line = get_line(msg, i);
-+ int len = get_line_length(line);
-+ if (msg_width < len)
-+ msg_width = len;
-+ }
-+
-+ total_width = max(msg_width, btns_width);
-+ /* place dialog in middle of screen */
-+ y = (getmaxy(stdscr)-(msg_lines+4))/2;
-+ x = (getmaxx(stdscr)-(total_width+4))/2;
-+
-+
-+ /* create the windows */
-+ if (btn_num > 0)
-+ win_rows = msg_lines+4;
-+ else
-+ win_rows = msg_lines+2;
-+
-+ win = newwin(win_rows, total_width+4, y, x);
-+ keypad(win, TRUE);
-+ menu_win = derwin(win, 1, btns_width, win_rows-2,
-+ 1+(total_width+2-btns_width)/2);
-+ menu = new_menu(btns);
-+ msg_win = derwin(win, win_rows-2, msg_width, 1,
-+ 1+(total_width+2-msg_width)/2);
-+
-+ set_menu_fore(menu, attributes[DIALOG_MENU_FORE]);
-+ set_menu_back(menu, attributes[DIALOG_MENU_BACK]);
-+
-+ (void) wattrset(win, attributes[DIALOG_BOX]);
-+ box(win, 0, 0);
-+
-+ /* print message */
-+ (void) wattrset(msg_win, attributes[DIALOG_TEXT]);
-+ fill_window(msg_win, msg);
-+
-+ set_menu_win(menu, win);
-+ set_menu_sub(menu, menu_win);
-+ set_menu_format(menu, 1, btn_num);
-+ menu_opts_off(menu, O_SHOWDESC);
-+ menu_opts_off(menu, O_SHOWMATCH);
-+ menu_opts_on(menu, O_ONEVALUE);
-+ menu_opts_on(menu, O_NONCYCLIC);
-+ set_menu_mark(menu, "");
-+ post_menu(menu);
-+
-+
-+ touchwin(win);
-+ refresh_all_windows(main_window);
-+ while ((res = wgetch(win))) {
-+ switch (res) {
-+ case KEY_LEFT:
-+ menu_driver(menu, REQ_LEFT_ITEM);
-+ break;
-+ case KEY_RIGHT:
-+ menu_driver(menu, REQ_RIGHT_ITEM);
-+ break;
-+ case 10: /* ENTER */
-+ case 27: /* ESCAPE */
-+ case ' ':
-+ case KEY_F(F_BACK):
-+ case KEY_F(F_EXIT):
-+ break;
-+ }
-+ touchwin(win);
-+ refresh_all_windows(main_window);
-+
-+ if (res == 10 || res == ' ') {
-+ res = item_index(current_item(menu));
-+ break;
-+ } else if (res == 27 || res == KEY_F(F_BACK) ||
-+ res == KEY_F(F_EXIT)) {
-+ res = KEY_EXIT;
-+ break;
-+ }
-+ }
-+
-+ unpost_menu(menu);
-+ free_menu(menu);
-+ for (i = 0; i < btn_num; i++)
-+ free_item(btns[i]);
-+
-+ delwin(win);
-+ return res;
-+}
-+
-+int dialog_inputbox(WINDOW *main_window,
-+ const char *title, const char *prompt,
-+ const char *init, char **resultp, int *result_len)
-+{
-+ int prompt_lines = 0;
-+ int prompt_width = 0;
-+ WINDOW *win;
-+ WINDOW *prompt_win;
-+ WINDOW *form_win;
-+ PANEL *panel;
-+ int i, x, y;
-+ int res = -1;
-+ int cursor_position = strlen(init);
-+ int cursor_form_win;
-+ char *result = *resultp;
-+
-+ if (strlen(init)+1 > *result_len) {
-+ *result_len = strlen(init)+1;
-+ *resultp = result = realloc(result, *result_len);
-+ }
-+
-+ /* find the widest line of msg: */
-+ prompt_lines = get_line_no(prompt);
-+ for (i = 0; i < prompt_lines; i++) {
-+ const char *line = get_line(prompt, i);
-+ int len = get_line_length(line);
-+ prompt_width = max(prompt_width, len);
-+ }
-+
-+ if (title)
-+ prompt_width = max(prompt_width, strlen(title));
-+
-+ /* place dialog in middle of screen */
-+ y = (getmaxy(stdscr)-(prompt_lines+4))/2;
-+ x = (getmaxx(stdscr)-(prompt_width+4))/2;
-+
-+ strncpy(result, init, *result_len);
-+
-+ /* create the windows */
-+ win = newwin(prompt_lines+6, prompt_width+7, y, x);
-+ prompt_win = derwin(win, prompt_lines+1, prompt_width, 2, 2);
-+ form_win = derwin(win, 1, prompt_width, prompt_lines+3, 2);
-+ keypad(form_win, TRUE);
-+
-+ (void) wattrset(form_win, attributes[INPUT_FIELD]);
-+
-+ (void) wattrset(win, attributes[INPUT_BOX]);
-+ box(win, 0, 0);
-+ (void) wattrset(win, attributes[INPUT_HEADING]);
-+ if (title)
-+ mvwprintw(win, 0, 3, "%s", title);
-+
-+ /* print message */
-+ (void) wattrset(prompt_win, attributes[INPUT_TEXT]);
-+ fill_window(prompt_win, prompt);
-+
-+ mvwprintw(form_win, 0, 0, "%*s", prompt_width, " ");
-+ cursor_form_win = min(cursor_position, prompt_width-1);
-+ mvwprintw(form_win, 0, 0, "%s",
-+ result + cursor_position-cursor_form_win);
-+
-+ /* create panels */
-+ panel = new_panel(win);
-+
-+ /* show the cursor */
-+ curs_set(1);
-+
-+ touchwin(win);
-+ refresh_all_windows(main_window);
-+ while ((res = wgetch(form_win))) {
-+ int len = strlen(result);
-+ switch (res) {
-+ case 10: /* ENTER */
-+ case 27: /* ESCAPE */
-+ case KEY_F(F_HELP):
-+ case KEY_F(F_EXIT):
-+ case KEY_F(F_BACK):
-+ break;
-+ case 127:
-+ case KEY_BACKSPACE:
-+ if (cursor_position > 0) {
-+ memmove(&result[cursor_position-1],
-+ &result[cursor_position],
-+ len-cursor_position+1);
-+ cursor_position--;
-+ cursor_form_win--;
-+ len--;
-+ }
-+ break;
-+ case KEY_DC:
-+ if (cursor_position >= 0 && cursor_position < len) {
-+ memmove(&result[cursor_position],
-+ &result[cursor_position+1],
-+ len-cursor_position+1);
-+ len--;
-+ }
-+ break;
-+ case KEY_UP:
-+ case KEY_RIGHT:
-+ if (cursor_position < len) {
-+ cursor_position++;
-+ cursor_form_win++;
-+ }
-+ break;
-+ case KEY_DOWN:
-+ case KEY_LEFT:
-+ if (cursor_position > 0) {
-+ cursor_position--;
-+ cursor_form_win--;
-+ }
-+ break;
-+ case KEY_HOME:
-+ cursor_position = 0;
-+ cursor_form_win = 0;
-+ break;
-+ case KEY_END:
-+ cursor_position = len;
-+ cursor_form_win = min(cursor_position, prompt_width-1);
-+ break;
-+ default:
-+ if ((isgraph(res) || isspace(res))) {
-+ /* one for new char, one for '\0' */
-+ if (len+2 > *result_len) {
-+ *result_len = len+2;
-+ *resultp = result = realloc(result,
-+ *result_len);
-+ }
-+ /* insert the char at the proper position */
-+ memmove(&result[cursor_position+1],
-+ &result[cursor_position],
-+ len-cursor_position+1);
-+ result[cursor_position] = res;
-+ cursor_position++;
-+ cursor_form_win++;
-+ len++;
-+ } else {
-+ mvprintw(0, 0, "unknown key: %d\n", res);
-+ }
-+ break;
-+ }
-+ if (cursor_form_win < 0)
-+ cursor_form_win = 0;
-+ else if (cursor_form_win > prompt_width-1)
-+ cursor_form_win = prompt_width-1;
-+
-+ wmove(form_win, 0, 0);
-+ wclrtoeol(form_win);
-+ mvwprintw(form_win, 0, 0, "%*s", prompt_width, " ");
-+ mvwprintw(form_win, 0, 0, "%s",
-+ result + cursor_position-cursor_form_win);
-+ wmove(form_win, 0, cursor_form_win);
-+ touchwin(win);
-+ refresh_all_windows(main_window);
-+
-+ if (res == 10) {
-+ res = 0;
-+ break;
-+ } else if (res == 27 || res == KEY_F(F_BACK) ||
-+ res == KEY_F(F_EXIT)) {
-+ res = KEY_EXIT;
-+ break;
-+ } else if (res == KEY_F(F_HELP)) {
-+ res = 1;
-+ break;
-+ }
-+ }
-+
-+ /* hide the cursor */
-+ curs_set(0);
-+ del_panel(panel);
-+ delwin(prompt_win);
-+ delwin(form_win);
-+ delwin(win);
-+ return res;
-+}
-+
-+/* refresh all windows in the correct order */
-+void refresh_all_windows(WINDOW *main_window)
-+{
-+ update_panels();
-+ touchwin(main_window);
-+ refresh();
-+}
-+
-+/* layman's scrollable window... */
-+void show_scroll_win(WINDOW *main_window,
-+ const char *title,
-+ const char *text)
-+{
-+ int res;
-+ int total_lines = get_line_no(text);
-+ int x, y, lines, columns;
-+ int start_x = 0, start_y = 0;
-+ int text_lines = 0, text_cols = 0;
-+ int total_cols = 0;
-+ int win_cols = 0;
-+ int win_lines = 0;
-+ int i = 0;
-+ WINDOW *win;
-+ WINDOW *pad;
-+ PANEL *panel;
-+
-+ getmaxyx(stdscr, lines, columns);
-+
-+ /* find the widest line of msg: */
-+ total_lines = get_line_no(text);
-+ for (i = 0; i < total_lines; i++) {
-+ const char *line = get_line(text, i);
-+ int len = get_line_length(line);
-+ total_cols = max(total_cols, len+2);
-+ }
-+
-+ /* create the pad */
-+ pad = newpad(total_lines+10, total_cols+10);
-+ (void) wattrset(pad, attributes[SCROLLWIN_TEXT]);
-+ fill_window(pad, text);
-+
-+ win_lines = min(total_lines+4, lines-2);
-+ win_cols = min(total_cols+2, columns-2);
-+ text_lines = max(win_lines-4, 0);
-+ text_cols = max(win_cols-2, 0);
-+
-+ /* place window in middle of screen */
-+ y = (lines-win_lines)/2;
-+ x = (columns-win_cols)/2;
-+
-+ win = newwin(win_lines, win_cols, y, x);
-+ keypad(win, TRUE);
-+ /* show the help in the help window, and show the help panel */
-+ (void) wattrset(win, attributes[SCROLLWIN_BOX]);
-+ box(win, 0, 0);
-+ (void) wattrset(win, attributes[SCROLLWIN_HEADING]);
-+ mvwprintw(win, 0, 3, " %s ", title);
-+ panel = new_panel(win);
-+
-+ /* handle scrolling */
-+ do {
-+
-+ copywin(pad, win, start_y, start_x, 2, 2, text_lines,
-+ text_cols, 0);
-+ print_in_middle(win,
-+ text_lines+2,
-+ 0,
-+ text_cols,
-+ "<OK>",
-+ attributes[DIALOG_MENU_FORE]);
-+ wrefresh(win);
-+
-+ res = wgetch(win);
-+ switch (res) {
-+ case KEY_NPAGE:
-+ case ' ':
-+ case 'd':
-+ start_y += text_lines-2;
-+ break;
-+ case KEY_PPAGE:
-+ case 'u':
-+ start_y -= text_lines+2;
-+ break;
-+ case KEY_HOME:
-+ start_y = 0;
-+ break;
-+ case KEY_END:
-+ start_y = total_lines-text_lines;
-+ break;
-+ case KEY_DOWN:
-+ case 'j':
-+ start_y++;
-+ break;
-+ case KEY_UP:
-+ case 'k':
-+ start_y--;
-+ break;
-+ case KEY_LEFT:
-+ case 'h':
-+ start_x--;
-+ break;
-+ case KEY_RIGHT:
-+ case 'l':
-+ start_x++;
-+ break;
-+ }
-+ if (res == 10 || res == 27 || res == 'q' ||
-+ res == KEY_F(F_HELP) || res == KEY_F(F_BACK) ||
-+ res == KEY_F(F_EXIT))
-+ break;
-+ if (start_y < 0)
-+ start_y = 0;
-+ if (start_y >= total_lines-text_lines)
-+ start_y = total_lines-text_lines;
-+ if (start_x < 0)
-+ start_x = 0;
-+ if (start_x >= total_cols-text_cols)
-+ start_x = total_cols-text_cols;
-+ } while (res);
-+
-+ del_panel(panel);
-+ delwin(win);
-+ refresh_all_windows(main_window);
-+}
-diff -Nur uClibc-0.9.33.2/extra/config/nconf.h uClibc-git/extra/config/nconf.h
---- uClibc-0.9.33.2/extra/config/nconf.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/nconf.h 2014-07-25 20:36:04.865324519 +0200
-@@ -0,0 +1,96 @@
-+/*
-+ * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
-+ * Released under the terms of the GNU GPL v2.0.
-+ *
-+ * Derived from menuconfig.
-+ *
-+ */
-+
-+#include <ctype.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <limits.h>
-+#include <stdarg.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <locale.h>
-+#include <curses.h>
-+#include <menu.h>
-+#include <panel.h>
-+#include <form.h>
-+
-+#include <stdio.h>
-+#include <time.h>
-+#include <sys/time.h>
-+
-+#include "ncurses.h"
-+
-+#define max(a, b) ({\
-+ typeof(a) _a = a;\
-+ typeof(b) _b = b;\
-+ _a > _b ? _a : _b; })
-+
-+#define min(a, b) ({\
-+ typeof(a) _a = a;\
-+ typeof(b) _b = b;\
-+ _a < _b ? _a : _b; })
-+
-+typedef enum {
-+ NORMAL = 1,
-+ MAIN_HEADING,
-+ MAIN_MENU_BOX,
-+ MAIN_MENU_FORE,
-+ MAIN_MENU_BACK,
-+ MAIN_MENU_GREY,
-+ MAIN_MENU_HEADING,
-+ SCROLLWIN_TEXT,
-+ SCROLLWIN_HEADING,
-+ SCROLLWIN_BOX,
-+ DIALOG_TEXT,
-+ DIALOG_MENU_FORE,
-+ DIALOG_MENU_BACK,
-+ DIALOG_BOX,
-+ INPUT_BOX,
-+ INPUT_HEADING,
-+ INPUT_TEXT,
-+ INPUT_FIELD,
-+ FUNCTION_TEXT,
-+ FUNCTION_HIGHLIGHT,
-+ ATTR_MAX
-+} attributes_t;
-+extern attributes_t attributes[];
-+
-+typedef enum {
-+ F_HELP = 1,
-+ F_SYMBOL = 2,
-+ F_INSTS = 3,
-+ F_CONF = 4,
-+ F_BACK = 5,
-+ F_SAVE = 6,
-+ F_LOAD = 7,
-+ F_SEARCH = 8,
-+ F_EXIT = 9,
-+} function_key;
-+
-+void set_colors(void);
-+
-+/* this changes the windows attributes !!! */
-+void print_in_middle(WINDOW *win,
-+ int starty,
-+ int startx,
-+ int width,
-+ const char *string,
-+ chtype color);
-+int get_line_length(const char *line);
-+int get_line_no(const char *text);
-+const char *get_line(const char *text, int line_no);
-+void fill_window(WINDOW *win, const char *text);
-+int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
-+int dialog_inputbox(WINDOW *main_window,
-+ const char *title, const char *prompt,
-+ const char *init, char **resultp, int *result_len);
-+void refresh_all_windows(WINDOW *main_window);
-+void show_scroll_win(WINDOW *main_window,
-+ const char *title,
-+ const char *text);
-diff -Nur uClibc-0.9.33.2/extra/config/qconf.cc uClibc-git/extra/config/qconf.cc
---- uClibc-0.9.33.2/extra/config/qconf.cc 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/qconf.cc 2014-07-25 20:36:04.865324519 +0200
-@@ -3,24 +3,43 @@
- * Released under the terms of the GNU GPL v2.0.
- */
-
--#include <qapplication.h>
-+#include <qglobal.h>
-+
-+#if QT_VERSION < 0x040000
-+#include <stddef.h>
- #include <qmainwindow.h>
-+#include <qvbox.h>
-+#include <qvaluelist.h>
-+#include <qtextbrowser.h>
-+#include <qaction.h>
-+#include <qheader.h>
-+#include <qfiledialog.h>
-+#include <qdragobject.h>
-+#include <qpopupmenu.h>
-+#else
-+#include <q3mainwindow.h>
-+#include <q3vbox.h>
-+#include <q3valuelist.h>
-+#include <q3textbrowser.h>
-+#include <q3action.h>
-+#include <q3header.h>
-+#include <q3filedialog.h>
-+#include <q3dragobject.h>
-+#include <q3popupmenu.h>
-+#endif
-+
-+#include <qapplication.h>
-+#include <qdesktopwidget.h>
- #include <qtoolbar.h>
- #include <qlayout.h>
--#include <qvbox.h>
- #include <qsplitter.h>
--#include <qlistview.h>
--#include <qtextbrowser.h>
- #include <qlineedit.h>
- #include <qlabel.h>
- #include <qpushbutton.h>
- #include <qmenubar.h>
- #include <qmessagebox.h>
--#include <qaction.h>
--#include <qheader.h>
--#include <qfiledialog.h>
--#include <qdragobject.h>
- #include <qregexp.h>
-+#include <qevent.h>
-
- #include <stdlib.h>
-
-@@ -38,7 +57,7 @@
- static QApplication *configApp;
- static ConfigSettings *configSettings;
-
--QAction *ConfigMainWindow::saveAction;
-+Q3Action *ConfigMainWindow::saveAction;
-
- static inline QString qgettext(const char* str)
- {
-@@ -53,15 +72,14 @@
- /**
- * Reads a list of integer values from the application settings.
- */
--QValueList<int> ConfigSettings::readSizes(const QString& key, bool *ok)
-+Q3ValueList<int> ConfigSettings::readSizes(const QString& key, bool *ok)
- {
-- QValueList<int> result;
-+ Q3ValueList<int> result;
- QStringList entryList = readListEntry(key, ok);
-- if (ok) {
-- QStringList::Iterator it;
-- for (it = entryList.begin(); it != entryList.end(); ++it)
-- result.push_back((*it).toInt());
-- }
-+ QStringList::Iterator it;
-+
-+ for (it = entryList.begin(); it != entryList.end(); ++it)
-+ result.push_back((*it).toInt());
-
- return result;
- }
-@@ -69,10 +87,10 @@
- /**
- * Writes a list of integer values to the application settings.
- */
--bool ConfigSettings::writeSizes(const QString& key, const QValueList<int>& value)
-+bool ConfigSettings::writeSizes(const QString& key, const Q3ValueList<int>& value)
- {
- QStringList stringList;
-- QValueList<int>::ConstIterator it;
-+ Q3ValueList<int>::ConstIterator it;
-
- for (it = value.begin(); it != value.end(); ++it)
- stringList.push_back(QString::number(*it));
-@@ -80,7 +98,6 @@
- }
-
-
--#if QT_VERSION >= 300
- /*
- * set the new data
- * TODO check the value
-@@ -91,7 +108,6 @@
- sym_set_string_value(menu->sym, text(dataColIdx).latin1());
- listView()->updateList(this);
- }
--#endif
-
- /*
- * update the displayed of a menu entry
-@@ -148,7 +164,7 @@
- case S_TRISTATE:
- char ch;
-
-- if (!sym_is_changable(sym) && !list->showAll) {
-+ if (!sym_is_changable(sym) && list->optMode == normalOpt) {
- setPixmap(promptColIdx, 0);
- setText(noColIdx, QString::null);
- setText(modColIdx, QString::null);
-@@ -195,11 +211,9 @@
-
- data = sym_get_string_value(sym);
-
--#if QT_VERSION >= 300
- int i = list->mapIdx(dataColIdx);
- if (i >= 0)
- setRenameEnabled(i, TRUE);
--#endif
- setText(dataColIdx, data);
- if (type == S_STRING)
- prompt = QString("%1: %2").arg(prompt).arg(data);
-@@ -297,10 +311,10 @@
- void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
- {
- switch (e->key()) {
-- case Key_Escape:
-+ case Qt::Key_Escape:
- break;
-- case Key_Return:
-- case Key_Enter:
-+ case Qt::Key_Return:
-+ case Qt::Key_Enter:
- sym_set_string_value(item->menu->sym, text().latin1());
- parent()->updateList(item);
- break;
-@@ -319,7 +333,7 @@
- symbolYesPix(xpm_symbol_yes), symbolModPix(xpm_symbol_mod), symbolNoPix(xpm_symbol_no),
- choiceYesPix(xpm_choice_yes), choiceNoPix(xpm_choice_no),
- menuPix(xpm_menu), menuInvPix(xpm_menu_inv), menuBackPix(xpm_menuback), voidPix(xpm_void),
-- showAll(false), showName(false), showRange(false), showData(false),
-+ showName(false), showRange(false), showData(false), optMode(normalOpt),
- rootEntry(0), headerPopup(0)
- {
- int i;
-@@ -336,10 +350,10 @@
-
- if (name) {
- configSettings->beginGroup(name);
-- showAll = configSettings->readBoolEntry("/showAll", false);
- showName = configSettings->readBoolEntry("/showName", false);
- showRange = configSettings->readBoolEntry("/showRange", false);
- showData = configSettings->readBoolEntry("/showData", false);
-+ optMode = (enum optionMode)configSettings->readNumEntry("/optionMode", false);
- configSettings->endGroup();
- connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
- }
-@@ -351,6 +365,17 @@
- reinit();
- }
-
-+bool ConfigList::menuSkip(struct menu *menu)
-+{
-+ if (optMode == normalOpt && menu_is_visible(menu))
-+ return false;
-+ if (optMode == promptOpt && menu_has_prompt(menu))
-+ return false;
-+ if (optMode == allOpt)
-+ return false;
-+ return true;
-+}
-+
- void ConfigList::reinit(void)
- {
- removeColumn(dataColIdx);
-@@ -379,7 +404,7 @@
- configSettings->writeEntry("/showName", showName);
- configSettings->writeEntry("/showRange", showRange);
- configSettings->writeEntry("/showData", showData);
-- configSettings->writeEntry("/showAll", showAll);
-+ configSettings->writeEntry("/optionMode", (int)optMode);
- configSettings->endGroup();
- }
- }
-@@ -421,7 +446,7 @@
- if (!rootEntry) {
- if (mode != listMode)
- goto update;
-- QListViewItemIterator it(this);
-+ Q3ListViewItemIterator it(this);
- ConfigItem* item;
-
- for (; it.current(); ++it) {
-@@ -516,11 +541,9 @@
- case S_INT:
- case S_HEX:
- case S_STRING:
--#if QT_VERSION >= 300
- if (colMap[dataColIdx] >= 0)
- item->startRename(colMap[dataColIdx]);
- else
--#endif
- parent()->lineEdit->show(item);
- break;
- }
-@@ -552,7 +575,7 @@
- return;
- setRootMenu(menu_get_parent_menu(rootEntry->parent));
-
-- QListViewItemIterator it(this);
-+ Q3ListViewItemIterator it(this);
- for (; (item = (ConfigItem*)it.current()); it++) {
- if (item->menu == oldroot) {
- setCurrentItem(item);
-@@ -605,7 +628,7 @@
- }
-
- visible = menu_is_visible(child);
-- if (showAll || visible) {
-+ if (!menuSkip(child)) {
- if (!child->sym && !child->list && !child->prompt)
- continue;
- if (!item || item->menu != child)
-@@ -634,12 +657,12 @@
-
- void ConfigList::keyPressEvent(QKeyEvent* ev)
- {
-- QListViewItem* i = currentItem();
-+ Q3ListViewItem* i = currentItem();
- ConfigItem* item;
- struct menu *menu;
- enum prop_type type;
-
-- if (ev->key() == Key_Escape && mode != fullMode && mode != listMode) {
-+ if (ev->key() == Qt::Key_Escape && mode != fullMode && mode != listMode) {
- emit parentSelected();
- ev->accept();
- return;
-@@ -652,8 +675,8 @@
- item = (ConfigItem*)i;
-
- switch (ev->key()) {
-- case Key_Return:
-- case Key_Enter:
-+ case Qt::Key_Return:
-+ case Qt::Key_Enter:
- if (item->goParent) {
- emit parentSelected();
- break;
-@@ -667,16 +690,16 @@
- emit menuSelected(menu);
- break;
- }
-- case Key_Space:
-+ case Qt::Key_Space:
- changeValue(item);
- break;
-- case Key_N:
-+ case Qt::Key_N:
- setValue(item, no);
- break;
-- case Key_M:
-+ case Qt::Key_M:
- setValue(item, mod);
- break;
-- case Key_Y:
-+ case Qt::Key_Y:
- setValue(item, yes);
- break;
- default:
-@@ -800,10 +823,10 @@
- {
- if (e->y() <= header()->geometry().bottom()) {
- if (!headerPopup) {
-- QAction *action;
-+ Q3Action *action;
-
-- headerPopup = new QPopupMenu(this);
-- action = new QAction(NULL, _("Show Name"), 0, this);
-+ headerPopup = new Q3PopupMenu(this);
-+ action = new Q3Action(NULL, _("Show Name"), 0, this);
- action->setToggleAction(TRUE);
- connect(action, SIGNAL(toggled(bool)),
- parent(), SLOT(setShowName(bool)));
-@@ -811,7 +834,7 @@
- action, SLOT(setOn(bool)));
- action->setOn(showName);
- action->addTo(headerPopup);
-- action = new QAction(NULL, _("Show Range"), 0, this);
-+ action = new Q3Action(NULL, _("Show Range"), 0, this);
- action->setToggleAction(TRUE);
- connect(action, SIGNAL(toggled(bool)),
- parent(), SLOT(setShowRange(bool)));
-@@ -819,7 +842,7 @@
- action, SLOT(setOn(bool)));
- action->setOn(showRange);
- action->addTo(headerPopup);
-- action = new QAction(NULL, _("Show Data"), 0, this);
-+ action = new Q3Action(NULL, _("Show Data"), 0, this);
- action->setToggleAction(TRUE);
- connect(action, SIGNAL(toggled(bool)),
- parent(), SLOT(setShowData(bool)));
-@@ -834,7 +857,10 @@
- e->ignore();
- }
-
--ConfigView* ConfigView::viewList;
-+ConfigView*ConfigView::viewList;
-+QAction *ConfigView::showNormalAction;
-+QAction *ConfigView::showAllAction;
-+QAction *ConfigView::showPromptAction;
-
- ConfigView::ConfigView(QWidget* parent, const char *name)
- : Parent(parent, name)
-@@ -859,13 +885,16 @@
- }
- }
-
--void ConfigView::setShowAll(bool b)
-+void ConfigView::setOptionMode(QAction *act)
- {
-- if (list->showAll != b) {
-- list->showAll = b;
-- list->updateListAll();
-- emit showAllChanged(b);
-- }
-+ if (act == showNormalAction)
-+ list->optMode = normalOpt;
-+ else if (act == showAllAction)
-+ list->optMode = allOpt;
-+ else
-+ list->optMode = promptOpt;
-+
-+ list->updateListAll();
- }
-
- void ConfigView::setShowName(bool b)
-@@ -897,7 +926,7 @@
-
- void ConfigList::setAllOpen(bool open)
- {
-- QListViewItemIterator it(this);
-+ Q3ListViewItemIterator it(this);
-
- for (; it.current(); it++)
- it.current()->setOpen(open);
-@@ -920,7 +949,7 @@
- }
-
- ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
-- : Parent(parent, name), menu(0), sym(0)
-+ : Parent(parent, name), sym(0), _menu(0)
- {
- if (name) {
- configSettings->beginGroup(name);
-@@ -943,7 +972,7 @@
- {
- if (_showDebug != b) {
- _showDebug = b;
-- if (menu)
-+ if (_menu)
- menuInfo();
- else if (sym)
- symbolInfo();
-@@ -953,44 +982,16 @@
-
- void ConfigInfoView::setInfo(struct menu *m)
- {
-- if (menu == m)
-+ if (_menu == m)
- return;
-- menu = m;
-+ _menu = m;
- sym = NULL;
-- if (!menu)
-+ if (!_menu)
- clear();
- else
- menuInfo();
- }
-
--void ConfigInfoView::setSource(const QString& name)
--{
-- const char *p = name.latin1();
--
-- menu = NULL;
-- sym = NULL;
--
-- switch (p[0]) {
-- case 'm':
-- struct menu *m;
--
-- if (sscanf(p, "m%p", &m) == 1 && menu != m) {
-- menu = m;
-- menuInfo();
-- emit menuSelected(menu);
-- }
-- break;
-- case 's':
-- struct symbol *s;
--
-- if (sscanf(p, "s%p", &s) == 1 && sym != s) {
-- sym = s;
-- symbolInfo();
-- }
-- break;
-- }
--}
--
- void ConfigInfoView::symbolInfo(void)
- {
- QString str;
-@@ -1012,11 +1013,11 @@
- struct symbol* sym;
- QString head, debug, help;
-
-- sym = menu->sym;
-+ sym = _menu->sym;
- if (sym) {
-- if (menu->prompt) {
-+ if (_menu->prompt) {
- head += "<big><b>";
-- head += print_filter(_(menu->prompt->text));
-+ head += print_filter(_(_menu->prompt->text));
- head += "</b></big>";
- if (sym->name) {
- head += " (";
-@@ -1041,26 +1042,24 @@
- if (showDebug())
- debug = debug_info(sym);
-
-- help = menu_get_help(menu);
-- /* Gettextize if the help text not empty */
-- if (help.isEmpty())
-- help = print_filter(menu_get_help(menu));
-- else
-- help = print_filter(_(menu_get_help(menu)));
-- } else if (menu->prompt) {
-+ struct gstr help_gstr = str_new();
-+ menu_get_ext_help(_menu, &help_gstr);
-+ help = print_filter(str_get(&help_gstr));
-+ str_free(&help_gstr);
-+ } else if (_menu->prompt) {
- head += "<big><b>";
-- head += print_filter(_(menu->prompt->text));
-+ head += print_filter(_(_menu->prompt->text));
- head += "</b></big><br><br>";
- if (showDebug()) {
-- if (menu->prompt->visible.expr) {
-+ if (_menu->prompt->visible.expr) {
- debug += "&nbsp;&nbsp;dep: ";
-- expr_print(menu->prompt->visible.expr, expr_print_help, &debug, E_NONE);
-+ expr_print(_menu->prompt->visible.expr, expr_print_help, &debug, E_NONE);
- debug += "<br><br>";
- }
- }
- }
- if (showDebug())
-- debug += QString().sprintf("defined at %s:%d<br><br>", menu->file->name, menu->lineno);
-+ debug += QString().sprintf("defined at %s:%d<br><br>", _menu->file->name, _menu->lineno);
-
- setText(head + debug + help);
- }
-@@ -1163,10 +1162,10 @@
- *text += str2;
- }
-
--QPopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
-+Q3PopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
- {
-- QPopupMenu* popup = Parent::createPopupMenu(pos);
-- QAction* action = new QAction(NULL, _("Show Debug Info"), 0, popup);
-+ Q3PopupMenu* popup = Parent::createPopupMenu(pos);
-+ Q3Action* action = new Q3Action(NULL, _("Show Debug Info"), 0, popup);
- action->setToggleAction(TRUE);
- connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
- connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
-@@ -1199,7 +1198,7 @@
- layout1->addLayout(layout2);
-
- split = new QSplitter(this);
-- split->setOrientation(QSplitter::Vertical);
-+ split->setOrientation(Qt::Vertical);
- list = new ConfigView(split, name);
- list->list->mode = listMode;
- info = new ConfigInfoView(split, name);
-@@ -1223,7 +1222,7 @@
- y = configSettings->readNumEntry("/window y", 0, &ok);
- if (ok)
- move(x, y);
-- QValueList<int> sizes = configSettings->readSizes("/split", &ok);
-+ Q3ValueList<int> sizes = configSettings->readSizes("/split", &ok);
- if (ok)
- split->setSizes(sizes);
- configSettings->endGroup();
-@@ -1275,9 +1274,15 @@
- int x, y, width, height;
- char title[256];
-
-- QWidget *d = configApp->desktop();
-- snprintf(title, sizeof(title), _("uClibc v%s Configuration"),
-- getenv("VERSION"));
-+ QDesktopWidget *d = configApp->desktop();
-+ snprintf(title, sizeof(title), "%s%s",
-+ rootmenu.prompt->text,
-+#if QT_VERSION < 0x040000
-+ " (Qt3)"
-+#else
-+ ""
-+#endif
-+ );
- setCaption(title);
-
- width = configSettings->readNumEntry("/window width", d->width() - 64);
-@@ -1290,14 +1295,14 @@
- move(x, y);
-
- split1 = new QSplitter(this);
-- split1->setOrientation(QSplitter::Horizontal);
-+ split1->setOrientation(Qt::Horizontal);
- setCentralWidget(split1);
-
- menuView = new ConfigView(split1, "menu");
- menuList = menuView->list;
-
- split2 = new QSplitter(split1);
-- split2->setOrientation(QSplitter::Vertical);
-+ split2->setOrientation(Qt::Vertical);
-
- // create config tree
- configView = new ConfigView(split2, "config");
-@@ -1310,60 +1315,79 @@
- configList->setFocus();
-
- menu = menuBar();
-- toolBar = new QToolBar("Tools", this);
-+ toolBar = new Q3ToolBar("Tools", this);
-
-- backAction = new QAction("Back", QPixmap(xpm_back), _("Back"), 0, this);
-+ backAction = new Q3Action("Back", QPixmap(xpm_back), _("Back"), 0, this);
- connect(backAction, SIGNAL(activated()), SLOT(goBack()));
- backAction->setEnabled(FALSE);
-- QAction *quitAction = new QAction("Quit", _("&Quit"), CTRL+Key_Q, this);
-+ Q3Action *quitAction = new Q3Action("Quit", _("&Quit"), Qt::CTRL + Qt::Key_Q, this);
- connect(quitAction, SIGNAL(activated()), SLOT(close()));
-- QAction *loadAction = new QAction("Load", QPixmap(xpm_load), _("&Load"), CTRL+Key_L, this);
-+ Q3Action *loadAction = new Q3Action("Load", QPixmap(xpm_load), _("&Load"), Qt::CTRL + Qt::Key_L, this);
- connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
-- saveAction = new QAction("Save", QPixmap(xpm_save), _("&Save"), CTRL+Key_S, this);
-+ saveAction = new Q3Action("Save", QPixmap(xpm_save), _("&Save"), Qt::CTRL + Qt::Key_S, this);
- connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
- conf_set_changed_callback(conf_changed);
- // Set saveAction's initial state
- conf_changed();
-- QAction *saveAsAction = new QAction("Save As...", _("Save &As..."), 0, this);
-+ Q3Action *saveAsAction = new Q3Action("Save As...", _("Save &As..."), 0, this);
- connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
-- QAction *searchAction = new QAction("Find", _("&Find"), CTRL+Key_F, this);
-+ Q3Action *searchAction = new Q3Action("Find", _("&Find"), Qt::CTRL + Qt::Key_F, this);
- connect(searchAction, SIGNAL(activated()), SLOT(searchConfig()));
-- QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this);
-+ Q3Action *singleViewAction = new Q3Action("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this);
- connect(singleViewAction, SIGNAL(activated()), SLOT(showSingleView()));
-- QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), _("Split View"), 0, this);
-+ Q3Action *splitViewAction = new Q3Action("Split View", QPixmap(xpm_split_view), _("Split View"), 0, this);
- connect(splitViewAction, SIGNAL(activated()), SLOT(showSplitView()));
-- QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), _("Full View"), 0, this);
-+ Q3Action *fullViewAction = new Q3Action("Full View", QPixmap(xpm_tree_view), _("Full View"), 0, this);
- connect(fullViewAction, SIGNAL(activated()), SLOT(showFullView()));
-
-- QAction *showNameAction = new QAction(NULL, _("Show Name"), 0, this);
-+ Q3Action *showNameAction = new Q3Action(NULL, _("Show Name"), 0, this);
- showNameAction->setToggleAction(TRUE);
- connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
- connect(configView, SIGNAL(showNameChanged(bool)), showNameAction, SLOT(setOn(bool)));
- showNameAction->setOn(configView->showName());
-- QAction *showRangeAction = new QAction(NULL, _("Show Range"), 0, this);
-+ Q3Action *showRangeAction = new Q3Action(NULL, _("Show Range"), 0, this);
- showRangeAction->setToggleAction(TRUE);
- connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
- connect(configView, SIGNAL(showRangeChanged(bool)), showRangeAction, SLOT(setOn(bool)));
- showRangeAction->setOn(configList->showRange);
-- QAction *showDataAction = new QAction(NULL, _("Show Data"), 0, this);
-+ Q3Action *showDataAction = new Q3Action(NULL, _("Show Data"), 0, this);
- showDataAction->setToggleAction(TRUE);
- connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
- connect(configView, SIGNAL(showDataChanged(bool)), showDataAction, SLOT(setOn(bool)));
- showDataAction->setOn(configList->showData);
-- QAction *showAllAction = new QAction(NULL, _("Show All Options"), 0, this);
-- showAllAction->setToggleAction(TRUE);
-- connect(showAllAction, SIGNAL(toggled(bool)), configView, SLOT(setShowAll(bool)));
-- connect(showAllAction, SIGNAL(toggled(bool)), menuView, SLOT(setShowAll(bool)));
-- showAllAction->setOn(configList->showAll);
-- QAction *showDebugAction = new QAction(NULL, _("Show Debug Info"), 0, this);
-+
-+ QActionGroup *optGroup = new QActionGroup(this);
-+ optGroup->setExclusive(TRUE);
-+ connect(optGroup, SIGNAL(selected(QAction *)), configView,
-+ SLOT(setOptionMode(QAction *)));
-+ connect(optGroup, SIGNAL(selected(QAction *)), menuView,
-+ SLOT(setOptionMode(QAction *)));
-+
-+#if QT_VERSION >= 0x040000
-+ configView->showNormalAction = new QAction(_("Show Normal Options"), optGroup);
-+ configView->showAllAction = new QAction(_("Show All Options"), optGroup);
-+ configView->showPromptAction = new QAction(_("Show Prompt Options"), optGroup);
-+#else
-+ configView->showNormalAction = new QAction(_("Show Normal Options"), 0, optGroup);
-+ configView->showAllAction = new QAction(_("Show All Options"), 0, optGroup);
-+ configView->showPromptAction = new QAction(_("Show Prompt Options"), 0, optGroup);
-+#endif
-+ configView->showNormalAction->setToggleAction(TRUE);
-+ configView->showNormalAction->setOn(configList->optMode == normalOpt);
-+ configView->showAllAction->setToggleAction(TRUE);
-+ configView->showAllAction->setOn(configList->optMode == allOpt);
-+ configView->showPromptAction->setToggleAction(TRUE);
-+ configView->showPromptAction->setOn(configList->optMode == promptOpt);
-+
-+ Q3Action *showDebugAction = new Q3Action(NULL, _("Show Debug Info"), 0, this);
- showDebugAction->setToggleAction(TRUE);
- connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
- connect(helpText, SIGNAL(showDebugChanged(bool)), showDebugAction, SLOT(setOn(bool)));
- showDebugAction->setOn(helpText->showDebug());
-
-- QAction *showIntroAction = new QAction(NULL, _("Introduction"), 0, this);
-+ Q3Action *showIntroAction = new Q3Action(NULL, _("Introduction"), 0, this);
- connect(showIntroAction, SIGNAL(activated()), SLOT(showIntro()));
-- QAction *showAboutAction = new QAction(NULL, _("About"), 0, this);
-+ Q3Action *showAboutAction = new Q3Action(NULL, _("About"), 0, this);
- connect(showAboutAction, SIGNAL(activated()), SLOT(showAbout()));
-
- // init tool bar
-@@ -1377,7 +1401,7 @@
- fullViewAction->addTo(toolBar);
-
- // create config menu
-- QPopupMenu* config = new QPopupMenu(this);
-+ Q3PopupMenu* config = new Q3PopupMenu(this);
- menu->insertItem(_("&File"), config);
- loadAction->addTo(config);
- saveAction->addTo(config);
-@@ -1386,22 +1410,22 @@
- quitAction->addTo(config);
-
- // create edit menu
-- QPopupMenu* editMenu = new QPopupMenu(this);
-+ Q3PopupMenu* editMenu = new Q3PopupMenu(this);
- menu->insertItem(_("&Edit"), editMenu);
- searchAction->addTo(editMenu);
-
- // create options menu
-- QPopupMenu* optionMenu = new QPopupMenu(this);
-+ Q3PopupMenu* optionMenu = new Q3PopupMenu(this);
- menu->insertItem(_("&Option"), optionMenu);
- showNameAction->addTo(optionMenu);
- showRangeAction->addTo(optionMenu);
- showDataAction->addTo(optionMenu);
- optionMenu->insertSeparator();
-- showAllAction->addTo(optionMenu);
-- showDebugAction->addTo(optionMenu);
-+ optGroup->addTo(optionMenu);
-+ optionMenu->insertSeparator();
-
- // create help menu
-- QPopupMenu* helpMenu = new QPopupMenu(this);
-+ Q3PopupMenu* helpMenu = new Q3PopupMenu(this);
- menu->insertSeparator();
- menu->insertItem(_("&Help"), helpMenu);
- showIntroAction->addTo(helpMenu);
-@@ -1436,7 +1460,7 @@
- showSplitView();
-
- // UI setup done, restore splitter positions
-- QValueList<int> sizes = configSettings->readSizes("/split1", &ok);
-+ Q3ValueList<int> sizes = configSettings->readSizes("/split1", &ok);
- if (ok)
- split1->setSizes(sizes);
-
-@@ -1447,7 +1471,7 @@
-
- void ConfigMainWindow::loadConfig(void)
- {
-- QString s = QFileDialog::getOpenFileName(".config", NULL, this);
-+ QString s = Q3FileDialog::getOpenFileName(conf_get_configname(), NULL, this);
- if (s.isNull())
- return;
- if (conf_read(QFile::encodeName(s)))
-@@ -1455,19 +1479,21 @@
- ConfigView::updateListAll();
- }
-
--void ConfigMainWindow::saveConfig(void)
-+bool ConfigMainWindow::saveConfig(void)
- {
-- if (conf_write(NULL))
-+ if (conf_write(NULL)) {
- QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
-+ return false;
-+ }
-+ return true;
- }
-
- void ConfigMainWindow::saveConfigAs(void)
- {
-- QString s = QFileDialog::getSaveFileName(".config", NULL, this);
-+ QString s = Q3FileDialog::getSaveFileName(conf_get_configname(), NULL, this);
- if (s.isNull())
- return;
-- if (conf_write(QFile::encodeName(s)))
-- QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
-+ saveConfig();
- }
-
- void ConfigMainWindow::searchConfig(void)
-@@ -1492,7 +1518,7 @@
- ConfigList* list = NULL;
- ConfigItem* item;
-
-- if (!menu_is_visible(menu) && !configView->showAll())
-+ if (configList->menuSkip(menu))
- return;
-
- switch (configList->mode) {
-@@ -1524,6 +1550,8 @@
- case fullMode:
- list = configList;
- break;
-+ default:
-+ break;
- }
-
- if (list) {
-@@ -1618,7 +1646,11 @@
- mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
- switch (mb.exec()) {
- case QMessageBox::Yes:
-- conf_write(NULL);
-+ if (saveConfig())
-+ e->accept();
-+ else
-+ e->ignore();
-+ break;
- case QMessageBox::No:
- e->accept();
- break;
-@@ -1630,7 +1662,7 @@
-
- void ConfigMainWindow::showIntro(void)
- {
-- static const QString str = _("Welcome to the qconf graphical configuration tool for uClibc.\n\n"
-+ static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"
- "For each option, a blank box indicates the feature is disabled, a check\n"
- "indicates it is enabled, and a dot indicates that it is to be compiled\n"
- "as a module. Clicking on the box will cycle through the three states.\n\n"
-@@ -1648,7 +1680,7 @@
- void ConfigMainWindow::showAbout(void)
- {
- static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
-- "Bug reports and feature request can also be entered at https://bugs.uClibc.org/\n");
-+ "Bug reports and feature request can also be entered at http://bugs.uClibc.org/\n");
-
- QMessageBox::information(this, "qconf", str);
- }
-@@ -1673,6 +1705,9 @@
- case fullMode :
- entry = "full";
- break;
-+
-+ default:
-+ break;
- }
- configSettings->writeEntry("/listMode", entry);
-
-@@ -1718,10 +1753,6 @@
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-
--#ifndef LKC_DIRECT_LINK
-- kconfig_load();
--#endif
--
- progname = av[0];
- configApp = new QApplication(ac, av);
- if (ac > 1 && av[1][0] == '-') {
-diff -Nur uClibc-0.9.33.2/extra/config/qconf.h uClibc-git/extra/config/qconf.h
---- uClibc-0.9.33.2/extra/config/qconf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/qconf.h 2014-07-25 20:36:04.865324519 +0200
-@@ -3,26 +3,25 @@
- * Released under the terms of the GNU GPL v2.0.
- */
-
-+#if QT_VERSION < 0x040000
- #include <qlistview.h>
--#if QT_VERSION >= 300
--#include <qsettings.h>
- #else
--class QSettings {
--public:
-- void beginGroup(const QString& group) { }
-- void endGroup(void) { }
-- bool readBoolEntry(const QString& key, bool def = FALSE, bool* ok = 0) const
-- { if (ok) *ok = FALSE; return def; }
-- int readNumEntry(const QString& key, int def = 0, bool* ok = 0) const
-- { if (ok) *ok = FALSE; return def; }
-- QString readEntry(const QString& key, const QString& def = QString::null, bool* ok = 0) const
-- { if (ok) *ok = FALSE; return def; }
-- QStringList readListEntry(const QString& key, bool* ok = 0) const
-- { if (ok) *ok = FALSE; return QStringList(); }
-- template <class t>
-- bool writeEntry(const QString& key, t value)
-- { return TRUE; }
--};
-+#include <q3listview.h>
-+#endif
-+#include <qsettings.h>
-+
-+#if QT_VERSION < 0x040000
-+#define Q3ValueList QValueList
-+#define Q3PopupMenu QPopupMenu
-+#define Q3ListView QListView
-+#define Q3ListViewItem QListViewItem
-+#define Q3VBox QVBox
-+#define Q3TextBrowser QTextBrowser
-+#define Q3MainWindow QMainWindow
-+#define Q3Action QAction
-+#define Q3ToolBar QToolBar
-+#define Q3ListViewItemIterator QListViewItemIterator
-+#define Q3FileDialog QFileDialog
- #endif
-
- class ConfigView;
-@@ -31,11 +30,10 @@
- class ConfigLineEdit;
- class ConfigMainWindow;
-
--
- class ConfigSettings : public QSettings {
- public:
-- QValueList<int> readSizes(const QString& key, bool *ok);
-- bool writeSizes(const QString& key, const QValueList<int>& value);
-+ Q3ValueList<int> readSizes(const QString& key, bool *ok);
-+ bool writeSizes(const QString& key, const Q3ValueList<int>& value);
- };
-
- enum colIdx {
-@@ -44,10 +42,13 @@
- enum listMode {
- singleMode, menuMode, symbolMode, fullMode, listMode
- };
-+enum optionMode {
-+ normalOpt = 0, allOpt, promptOpt
-+};
-
--class ConfigList : public QListView {
-+class ConfigList : public Q3ListView {
- Q_OBJECT
-- typedef class QListView Parent;
-+ typedef class Q3ListView Parent;
- public:
- ConfigList(ConfigView* p, const char *name = 0);
- void reinit(void);
-@@ -115,6 +116,8 @@
- void setAllOpen(bool open);
- void setParentMenu(void);
-
-+ bool menuSkip(struct menu *);
-+
- template <class P>
- void updateMenuList(P*, struct menu*);
-
-@@ -124,22 +127,23 @@
- QPixmap choiceYesPix, choiceNoPix;
- QPixmap menuPix, menuInvPix, menuBackPix, voidPix;
-
-- bool showAll, showName, showRange, showData;
-+ bool showName, showRange, showData;
- enum listMode mode;
-+ enum optionMode optMode;
- struct menu *rootEntry;
- QColorGroup disabledColorGroup;
- QColorGroup inactivedColorGroup;
-- QPopupMenu* headerPopup;
-+ Q3PopupMenu* headerPopup;
-
- private:
- int colMap[colNr];
- int colRevMap[colNr];
- };
-
--class ConfigItem : public QListViewItem {
-- typedef class QListViewItem Parent;
-+class ConfigItem : public Q3ListViewItem {
-+ typedef class Q3ListViewItem Parent;
- public:
-- ConfigItem(QListView *parent, ConfigItem *after, struct menu *m, bool v)
-+ ConfigItem(Q3ListView *parent, ConfigItem *after, struct menu *m, bool v)
- : Parent(parent, after), menu(m), visible(v), goParent(false)
- {
- init();
-@@ -149,16 +153,14 @@
- {
- init();
- }
-- ConfigItem(QListView *parent, ConfigItem *after, bool v)
-+ ConfigItem(Q3ListView *parent, ConfigItem *after, bool v)
- : Parent(parent, after), menu(0), visible(v), goParent(true)
- {
- init();
- }
- ~ConfigItem(void);
- void init(void);
--#if QT_VERSION >= 300
- void okRename(int col);
--#endif
- void updateMenu(void);
- void testUpdateMenu(bool v);
- ConfigList* listView() const
-@@ -213,26 +215,24 @@
- ConfigItem *item;
- };
-
--class ConfigView : public QVBox {
-+class ConfigView : public Q3VBox {
- Q_OBJECT
-- typedef class QVBox Parent;
-+ typedef class Q3VBox Parent;
- public:
- ConfigView(QWidget* parent, const char *name = 0);
- ~ConfigView(void);
- static void updateList(ConfigItem* item);
- static void updateListAll(void);
-
-- bool showAll(void) const { return list->showAll; }
- bool showName(void) const { return list->showName; }
- bool showRange(void) const { return list->showRange; }
- bool showData(void) const { return list->showData; }
- public slots:
-- void setShowAll(bool);
- void setShowName(bool);
- void setShowRange(bool);
- void setShowData(bool);
-+ void setOptionMode(QAction *);
- signals:
-- void showAllChanged(bool);
- void showNameChanged(bool);
- void showRangeChanged(bool);
- void showDataChanged(bool);
-@@ -242,11 +242,15 @@
-
- static ConfigView* viewList;
- ConfigView* nextView;
-+
-+ static QAction *showNormalAction;
-+ static QAction *showAllAction;
-+ static QAction *showPromptAction;
- };
-
--class ConfigInfoView : public QTextBrowser {
-+class ConfigInfoView : public Q3TextBrowser {
- Q_OBJECT
-- typedef class QTextBrowser Parent;
-+ typedef class Q3TextBrowser Parent;
- public:
- ConfigInfoView(QWidget* parent, const char *name = 0);
- bool showDebug(void) const { return _showDebug; }
-@@ -254,7 +258,6 @@
- public slots:
- void setInfo(struct menu *menu);
- void saveSettings(void);
-- void setSource(const QString& name);
- void setShowDebug(bool);
-
- signals:
-@@ -267,11 +270,11 @@
- QString debug_info(struct symbol *sym);
- static QString print_filter(const QString &str);
- static void expr_print_help(void *data, struct symbol *sym, const char *str);
-- QPopupMenu* createPopupMenu(const QPoint& pos);
-+ Q3PopupMenu* createPopupMenu(const QPoint& pos);
- void contentsContextMenuEvent(QContextMenuEvent *e);
-
- struct symbol *sym;
-- struct menu *menu;
-+ struct menu *_menu;
- bool _showDebug;
- };
-
-@@ -295,10 +298,10 @@
- struct symbol **result;
- };
-
--class ConfigMainWindow : public QMainWindow {
-+class ConfigMainWindow : public Q3MainWindow {
- Q_OBJECT
-
-- static QAction *saveAction;
-+ static Q3Action *saveAction;
- static void conf_changed(void);
- public:
- ConfigMainWindow(void);
-@@ -308,7 +311,7 @@
- void listFocusChanged(void);
- void goBack(void);
- void loadConfig(void);
-- void saveConfig(void);
-+ bool saveConfig(void);
- void saveConfigAs(void);
- void searchConfig(void);
- void showSingleView(void);
-@@ -327,8 +330,8 @@
- ConfigView *configView;
- ConfigList *configList;
- ConfigInfoView *helpText;
-- QToolBar *toolBar;
-- QAction *backAction;
-+ Q3ToolBar *toolBar;
-+ Q3Action *backAction;
- QSplitter* split1;
- QSplitter* split2;
- };
-diff -Nur uClibc-0.9.33.2/extra/config/README.uClibc uClibc-git/extra/config/README.uClibc
---- uClibc-0.9.33.2/extra/config/README.uClibc 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/README.uClibc 2014-07-25 20:36:04.853324457 +0200
-@@ -5,7 +5,7 @@
- cd extra/config.new
- cp /usr/src/linux/Documentation/kbuild/kconfig-language.txt .
- mv Makefile Makefile.kconfig
-- zcat ../config/kconfig-to-uclibc.patch.gz | patch -p1
-+ tar -O -xzf ../config/kconfig-to-uclibc.tar.gz | patch -p3
- cp ../config/README.uClibc .
- cp ../config/Makefile .
- cd ..
-diff -Nur uClibc-0.9.33.2/extra/config/streamline_config.pl uClibc-git/extra/config/streamline_config.pl
---- uClibc-0.9.33.2/extra/config/streamline_config.pl 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/streamline_config.pl 2014-07-25 20:36:04.865324519 +0200
-@@ -0,0 +1,640 @@
-+#!/usr/bin/perl -w
-+#
-+# Copyright 2005-2009 - Steven Rostedt
-+# Licensed under the terms of the GNU GPL License version 2
-+#
-+# It's simple enough to figure out how this works.
-+# If not, then you can ask me at stripconfig@goodmis.org
-+#
-+# What it does?
-+#
-+# If you have installed a Linux kernel from a distribution
-+# that turns on way too many modules than you need, and
-+# you only want the modules you use, then this program
-+# is perfect for you.
-+#
-+# It gives you the ability to turn off all the modules that are
-+# not loaded on your system.
-+#
-+# Howto:
-+#
-+# 1. Boot up the kernel that you want to stream line the config on.
-+# 2. Change directory to the directory holding the source of the
-+# kernel that you just booted.
-+# 3. Copy the configuraton file to this directory as .config
-+# 4. Have all your devices that you need modules for connected and
-+# operational (make sure that their corresponding modules are loaded)
-+# 5. Run this script redirecting the output to some other file
-+# like config_strip.
-+# 6. Back up your old config (if you want too).
-+# 7. copy the config_strip file to .config
-+# 8. Run "make oldconfig"
-+#
-+# Now your kernel is ready to be built with only the modules that
-+# are loaded.
-+#
-+# Here's what I did with my Debian distribution.
-+#
-+# cd /usr/src/linux-2.6.10
-+# cp /boot/config-2.6.10-1-686-smp .config
-+# ~/bin/streamline_config > config_strip
-+# mv .config config_sav
-+# mv config_strip .config
-+# make oldconfig
-+#
-+use strict;
-+use Getopt::Long;
-+
-+# set the environment variable LOCALMODCONFIG_DEBUG to get
-+# debug output.
-+my $debugprint = 0;
-+$debugprint = 1 if (defined($ENV{LOCALMODCONFIG_DEBUG}));
-+
-+sub dprint {
-+ return if (!$debugprint);
-+ print STDERR @_;
-+}
-+
-+my $config = ".config";
-+
-+my $uname = `uname -r`;
-+chomp $uname;
-+
-+my @searchconfigs = (
-+ {
-+ "file" => ".config",
-+ "exec" => "cat",
-+ },
-+ {
-+ "file" => "/proc/config.gz",
-+ "exec" => "zcat",
-+ },
-+ {
-+ "file" => "/boot/config-$uname",
-+ "exec" => "cat",
-+ },
-+ {
-+ "file" => "/boot/vmlinuz-$uname",
-+ "exec" => "scripts/extract-ikconfig",
-+ "test" => "scripts/extract-ikconfig",
-+ },
-+ {
-+ "file" => "vmlinux",
-+ "exec" => "scripts/extract-ikconfig",
-+ "test" => "scripts/extract-ikconfig",
-+ },
-+ {
-+ "file" => "/lib/modules/$uname/kernel/kernel/configs.ko",
-+ "exec" => "scripts/extract-ikconfig",
-+ "test" => "scripts/extract-ikconfig",
-+ },
-+ {
-+ "file" => "kernel/configs.ko",
-+ "exec" => "scripts/extract-ikconfig",
-+ "test" => "scripts/extract-ikconfig",
-+ },
-+ {
-+ "file" => "kernel/configs.o",
-+ "exec" => "scripts/extract-ikconfig",
-+ "test" => "scripts/extract-ikconfig",
-+ },
-+);
-+
-+sub read_config {
-+ foreach my $conf (@searchconfigs) {
-+ my $file = $conf->{"file"};
-+
-+ next if ( ! -f "$file");
-+
-+ if (defined($conf->{"test"})) {
-+ `$conf->{"test"} $conf->{"file"} 2>/dev/null`;
-+ next if ($?);
-+ }
-+
-+ my $exec = $conf->{"exec"};
-+
-+ print STDERR "using config: '$file'\n";
-+
-+ open(my $infile, '-|', "$exec $file") || die "Failed to run $exec $file";
-+ my @x = <$infile>;
-+ close $infile;
-+ return @x;
-+ }
-+ die "No config file found";
-+}
-+
-+my @config_file = read_config;
-+
-+# Parse options
-+my $localmodconfig = 0;
-+my $localyesconfig = 0;
-+
-+GetOptions("localmodconfig" => \$localmodconfig,
-+ "localyesconfig" => \$localyesconfig);
-+
-+# Get the build source and top level Kconfig file (passed in)
-+my $ksource = ($ARGV[0] ? $ARGV[0] : '.');
-+my $kconfig = $ARGV[1];
-+my $lsmod_file = $ENV{'LSMOD'};
-+
-+my @makefiles = `find $ksource -name Makefile 2>/dev/null`;
-+chomp @makefiles;
-+
-+my %depends;
-+my %selects;
-+my %prompts;
-+my %objects;
-+my $var;
-+my $iflevel = 0;
-+my @ifdeps;
-+
-+# prevent recursion
-+my %read_kconfigs;
-+
-+sub read_kconfig {
-+ my ($kconfig) = @_;
-+
-+ my $state = "NONE";
-+ my $config;
-+
-+ my $cont = 0;
-+ my $line;
-+
-+ my $source = "$ksource/$kconfig";
-+ my $last_source = "";
-+
-+ # Check for any environment variables used
-+ while ($source =~ /\$(\w+)/ && $last_source ne $source) {
-+ my $env = $1;
-+ $last_source = $source;
-+ $source =~ s/\$$env/$ENV{$env}/;
-+ }
-+
-+ open(my $kinfile, '<', $source) || die "Can't open $kconfig";
-+ while (<$kinfile>) {
-+ chomp;
-+
-+ # Make sure that lines ending with \ continue
-+ if ($cont) {
-+ $_ = $line . " " . $_;
-+ }
-+
-+ if (s/\\$//) {
-+ $cont = 1;
-+ $line = $_;
-+ next;
-+ }
-+
-+ $cont = 0;
-+
-+ # collect any Kconfig sources
-+ if (/^source\s*"(.*)"/) {
-+ my $kconfig = $1;
-+ # prevent reading twice.
-+ if (!defined($read_kconfigs{$kconfig})) {
-+ $read_kconfigs{$kconfig} = 1;
-+ read_kconfig($kconfig);
-+ }
-+ next;
-+ }
-+
-+ # configs found
-+ if (/^\s*(menu)?config\s+(\S+)\s*$/) {
-+ $state = "NEW";
-+ $config = $2;
-+
-+ # Add depends for 'if' nesting
-+ for (my $i = 0; $i < $iflevel; $i++) {
-+ if ($i) {
-+ $depends{$config} .= " " . $ifdeps[$i];
-+ } else {
-+ $depends{$config} = $ifdeps[$i];
-+ }
-+ $state = "DEP";
-+ }
-+
-+ # collect the depends for the config
-+ } elsif ($state eq "NEW" && /^\s*depends\s+on\s+(.*)$/) {
-+ $state = "DEP";
-+ $depends{$config} = $1;
-+ } elsif ($state eq "DEP" && /^\s*depends\s+on\s+(.*)$/) {
-+ $depends{$config} .= " " . $1;
-+
-+ # Get the configs that select this config
-+ } elsif ($state ne "NONE" && /^\s*select\s+(\S+)/) {
-+ my $conf = $1;
-+ if (defined($selects{$conf})) {
-+ $selects{$conf} .= " " . $config;
-+ } else {
-+ $selects{$conf} = $config;
-+ }
-+
-+ # configs without prompts must be selected
-+ } elsif ($state ne "NONE" && /^\s*tristate\s\S/) {
-+ # note if the config has a prompt
-+ $prompts{$config} = 1;
-+
-+ # Check for if statements
-+ } elsif (/^if\s+(.*\S)\s*$/) {
-+ my $deps = $1;
-+ # remove beginning and ending non text
-+ $deps =~ s/^[^a-zA-Z0-9_]*//;
-+ $deps =~ s/[^a-zA-Z0-9_]*$//;
-+
-+ my @deps = split /[^a-zA-Z0-9_]+/, $deps;
-+
-+ $ifdeps[$iflevel++] = join ':', @deps;
-+
-+ } elsif (/^endif/) {
-+
-+ $iflevel-- if ($iflevel);
-+
-+ # stop on "help"
-+ } elsif (/^\s*help\s*$/) {
-+ $state = "NONE";
-+ }
-+ }
-+ close($kinfile);
-+}
-+
-+if ($kconfig) {
-+ read_kconfig($kconfig);
-+}
-+
-+# Makefiles can use variables to define their dependencies
-+sub convert_vars {
-+ my ($line, %vars) = @_;
-+
-+ my $process = "";
-+
-+ while ($line =~ s/^(.*?)(\$\((.*?)\))//) {
-+ my $start = $1;
-+ my $variable = $2;
-+ my $var = $3;
-+
-+ if (defined($vars{$var})) {
-+ $process .= $start . $vars{$var};
-+ } else {
-+ $process .= $start . $variable;
-+ }
-+ }
-+
-+ $process .= $line;
-+
-+ return $process;
-+}
-+
-+# Read all Makefiles to map the configs to the objects
-+foreach my $makefile (@makefiles) {
-+
-+ my $line = "";
-+ my %make_vars;
-+
-+ open(my $infile, '<', $makefile) || die "Can't open $makefile";
-+ while (<$infile>) {
-+ # if this line ends with a backslash, continue
-+ chomp;
-+ if (/^(.*)\\$/) {
-+ $line .= $1;
-+ next;
-+ }
-+
-+ $line .= $_;
-+ $_ = $line;
-+ $line = "";
-+
-+ my $objs;
-+
-+ # Convert variables in a line (could define configs)
-+ $_ = convert_vars($_, %make_vars);
-+
-+ # collect objects after obj-$(CONFIG_FOO_BAR)
-+ if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) {
-+ $var = $1;
-+ $objs = $2;
-+
-+ # check if variables are set
-+ } elsif (/^\s*(\S+)\s*[:]?=\s*(.*\S)/) {
-+ $make_vars{$1} = $2;
-+ }
-+ if (defined($objs)) {
-+ foreach my $obj (split /\s+/,$objs) {
-+ $obj =~ s/-/_/g;
-+ if ($obj =~ /(.*)\.o$/) {
-+ # Objects may be enabled by more than one config.
-+ # Store configs in an array.
-+ my @arr;
-+
-+ if (defined($objects{$1})) {
-+ @arr = @{$objects{$1}};
-+ }
-+
-+ $arr[$#arr+1] = $var;
-+
-+ # The objects have a hash mapping to a reference
-+ # of an array of configs.
-+ $objects{$1} = \@arr;
-+ }
-+ }
-+ }
-+ }
-+ close($infile);
-+}
-+
-+my %modules;
-+my $linfile;
-+
-+if (defined($lsmod_file)) {
-+ if ( ! -f $lsmod_file) {
-+ if ( -f $ENV{'objtree'}."/".$lsmod_file) {
-+ $lsmod_file = $ENV{'objtree'}."/".$lsmod_file;
-+ } else {
-+ die "$lsmod_file not found";
-+ }
-+ }
-+
-+ my $otype = ( -x $lsmod_file) ? '-|' : '<';
-+ open($linfile, $otype, $lsmod_file);
-+
-+} else {
-+
-+ # see what modules are loaded on this system
-+ my $lsmod;
-+
-+ foreach my $dir ( ("/sbin", "/bin", "/usr/sbin", "/usr/bin") ) {
-+ if ( -x "$dir/lsmod" ) {
-+ $lsmod = "$dir/lsmod";
-+ last;
-+ }
-+}
-+ if (!defined($lsmod)) {
-+ # try just the path
-+ $lsmod = "lsmod";
-+ }
-+
-+ open($linfile, '-|', $lsmod) || die "Can not call lsmod with $lsmod";
-+}
-+
-+while (<$linfile>) {
-+ next if (/^Module/); # Skip the first line.
-+ if (/^(\S+)/) {
-+ $modules{$1} = 1;
-+ }
-+}
-+close ($linfile);
-+
-+# add to the configs hash all configs that are needed to enable
-+# a loaded module. This is a direct obj-${CONFIG_FOO} += bar.o
-+# where we know we need bar.o so we add FOO to the list.
-+my %configs;
-+foreach my $module (keys(%modules)) {
-+ if (defined($objects{$module})) {
-+ my @arr = @{$objects{$module}};
-+ foreach my $conf (@arr) {
-+ $configs{$conf} = $module;
-+ dprint "$conf added by direct ($module)\n";
-+ if ($debugprint) {
-+ my $c=$conf;
-+ $c =~ s/^CONFIG_//;
-+ if (defined($depends{$c})) {
-+ dprint " deps = $depends{$c}\n";
-+ } else {
-+ dprint " no deps\n";
-+ }
-+ }
-+ }
-+ } else {
-+ # Most likely, someone has a custom (binary?) module loaded.
-+ print STDERR "$module config not found!!\n";
-+ }
-+}
-+
-+# Read the current config, and see what is enabled. We want to
-+# ignore configs that we would not enable anyway.
-+
-+my %orig_configs;
-+my $valid = "A-Za-z_0-9";
-+
-+foreach my $line (@config_file) {
-+ $_ = $line;
-+
-+ if (/(CONFIG_[$valid]*)=(m|y)/) {
-+ $orig_configs{$1} = $2;
-+ }
-+}
-+
-+my $repeat = 1;
-+
-+my $depconfig;
-+
-+#
-+# Note, we do not care about operands (like: &&, ||, !) we want to add any
-+# config that is in the depend list of another config. This script does
-+# not enable configs that are not already enabled. If we come across a
-+# config A that depends on !B, we can still add B to the list of depends
-+# to keep on. If A was on in the original config, B would not have been
-+# and B would not be turned on by this script.
-+#
-+sub parse_config_depends
-+{
-+ my ($p) = @_;
-+
-+ while ($p =~ /[$valid]/) {
-+
-+ if ($p =~ /^[^$valid]*([$valid]+)/) {
-+ my $conf = "CONFIG_" . $1;
-+
-+ $p =~ s/^[^$valid]*[$valid]+//;
-+
-+ # We only need to process if the depend config is a module
-+ if (!defined($orig_configs{$conf}) || !$orig_configs{conf} eq "m") {
-+ next;
-+ }
-+
-+ if (!defined($configs{$conf})) {
-+ # We must make sure that this config has its
-+ # dependencies met.
-+ $repeat = 1; # do again
-+ dprint "$conf selected by depend $depconfig\n";
-+ $configs{$conf} = 1;
-+ }
-+ } else {
-+ die "this should never happen";
-+ }
-+ }
-+}
-+
-+# Select is treated a bit differently than depends. We call this
-+# when a config has no prompt and requires another config to be
-+# selected. We use to just select all configs that selected this
-+# config, but found that that can balloon into enabling hundreds
-+# of configs that we do not care about.
-+#
-+# The idea is we look at all the configs that select it. If one
-+# is already in our list of configs to enable, then there's nothing
-+# else to do. If there isn't, we pick the first config that was
-+# enabled in the orignal config and use that.
-+sub parse_config_selects
-+{
-+ my ($config, $p) = @_;
-+
-+ my $next_config;
-+
-+ while ($p =~ /[$valid]/) {
-+
-+ if ($p =~ /^[^$valid]*([$valid]+)/) {
-+ my $conf = "CONFIG_" . $1;
-+
-+ $p =~ s/^[^$valid]*[$valid]+//;
-+
-+ # Make sure that this config exists in the current .config file
-+ if (!defined($orig_configs{$conf})) {
-+ dprint "$conf not set for $config select\n";
-+ next;
-+ }
-+
-+ # Check if something other than a module selects this config
-+ if (defined($orig_configs{$conf}) && $orig_configs{$conf} ne "m") {
-+ dprint "$conf (non module) selects config, we are good\n";
-+ # we are good with this
-+ return;
-+ }
-+ if (defined($configs{$conf})) {
-+ dprint "$conf selects $config so we are good\n";
-+ # A set config selects this config, we are good
-+ return;
-+ }
-+ # Set this config to be selected
-+ if (!defined($next_config)) {
-+ $next_config = $conf;
-+ }
-+ } else {
-+ die "this should never happen";
-+ }
-+ }
-+
-+ # If no possible config selected this, then something happened.
-+ if (!defined($next_config)) {
-+ print STDERR "WARNING: $config is required, but nothing in the\n";
-+ print STDERR " current config selects it.\n";
-+ return;
-+ }
-+
-+ # If we are here, then we found no config that is set and
-+ # selects this config. Repeat.
-+ $repeat = 1;
-+ # Make this config need to be selected
-+ $configs{$next_config} = 1;
-+ dprint "$next_config selected by select $config\n";
-+}
-+
-+my %process_selects;
-+
-+# loop through all configs, select their dependencies.
-+sub loop_depend {
-+ $repeat = 1;
-+
-+ while ($repeat) {
-+ $repeat = 0;
-+
-+ forloop:
-+ foreach my $config (keys %configs) {
-+
-+ # If this config is not a module, we do not need to process it
-+ if (defined($orig_configs{$config}) && $orig_configs{$config} ne "m") {
-+ next forloop;
-+ }
-+
-+ $config =~ s/^CONFIG_//;
-+ $depconfig = $config;
-+
-+ if (defined($depends{$config})) {
-+ # This config has dependencies. Make sure they are also included
-+ parse_config_depends $depends{$config};
-+ }
-+
-+ # If the config has no prompt, then we need to check if a config
-+ # that is enabled selected it. Or if we need to enable one.
-+ if (!defined($prompts{$config}) && defined($selects{$config})) {
-+ $process_selects{$config} = 1;
-+ }
-+ }
-+ }
-+}
-+
-+sub loop_select {
-+
-+ foreach my $config (keys %process_selects) {
-+ $config =~ s/^CONFIG_//;
-+
-+ dprint "Process select $config\n";
-+
-+ # config has no prompt and must be selected.
-+ parse_config_selects $config, $selects{$config};
-+ }
-+}
-+
-+while ($repeat) {
-+ # Get the first set of configs and their dependencies.
-+ loop_depend;
-+
-+ $repeat = 0;
-+
-+ # Now we need to see if we have to check selects;
-+ loop_select;
-+}
-+
-+my %setconfigs;
-+
-+# Finally, read the .config file and turn off any module enabled that
-+# we could not find a reason to keep enabled.
-+foreach my $line (@config_file) {
-+ $_ = $line;
-+
-+ if (/CONFIG_IKCONFIG/) {
-+ if (/# CONFIG_IKCONFIG is not set/) {
-+ # enable IKCONFIG at least as a module
-+ print "CONFIG_IKCONFIG=m\n";
-+ # don't ask about PROC
-+ print "# CONFIG_IKCONFIG_PROC is not set\n";
-+ } else {
-+ print;
-+ }
-+ next;
-+ }
-+
-+ if (/^(CONFIG.*)=(m|y)/) {
-+ if (defined($configs{$1})) {
-+ if ($localyesconfig) {
-+ $setconfigs{$1} = 'y';
-+ print "$1=y\n";
-+ next;
-+ } else {
-+ $setconfigs{$1} = $2;
-+ }
-+ } elsif ($2 eq "m") {
-+ print "# $1 is not set\n";
-+ next;
-+ }
-+ }
-+ print;
-+}
-+
-+# Integrity check, make sure all modules that we want enabled do
-+# indeed have their configs set.
-+loop:
-+foreach my $module (keys(%modules)) {
-+ if (defined($objects{$module})) {
-+ my @arr = @{$objects{$module}};
-+ foreach my $conf (@arr) {
-+ if (defined($setconfigs{$conf})) {
-+ next loop;
-+ }
-+ }
-+ print STDERR "module $module did not have configs";
-+ foreach my $conf (@arr) {
-+ print STDERR " " , $conf;
-+ }
-+ print STDERR "\n";
-+ }
-+}
-diff -Nur uClibc-0.9.33.2/extra/config/symbol.c uClibc-git/extra/config/symbol.c
---- uClibc-0.9.33.2/extra/config/symbol.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/symbol.c 2014-07-25 20:36:04.865324519 +0200
-@@ -7,8 +7,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <regex.h>
-+#include <sys/utsname.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
- struct symbol symbol_yes = {
-@@ -35,7 +35,7 @@
-
- struct expr *sym_env_list;
-
--void sym_add_default(struct symbol *sym, const char *def)
-+static void sym_add_default(struct symbol *sym, const char *def)
- {
- struct property *prop = prop_alloc(P_DEFAULT, sym);
-
-@@ -45,20 +45,19 @@
- void sym_init(void)
- {
- struct symbol *sym;
-- char *p;
-+ struct utsname uts;
- static bool inited = false;
-
- if (inited)
- return;
- inited = true;
-
-- p = getenv("VERSION");
-- if (p) {
-- sym = sym_lookup("VERSION", 0);
-- sym->type = S_STRING;
-- sym->flags |= SYMBOL_AUTO;
-- sym_add_default(sym, p);
-- }
-+ uname(&uts);
-+
-+ sym = sym_lookup("UNAME_RELEASE", 0);
-+ sym->type = S_STRING;
-+ sym->flags |= SYMBOL_AUTO;
-+ sym_add_default(sym, uts.release);
- }
-
- enum symbol_type sym_get_type(struct symbol *sym)
-@@ -125,7 +124,7 @@
- return NULL;
- }
-
--struct property *sym_get_range_prop(struct symbol *sym)
-+static struct property *sym_get_range_prop(struct symbol *sym)
- {
- struct property *prop;
-
-@@ -137,7 +136,7 @@
- return NULL;
- }
-
--static int sym_get_range_val(struct symbol *sym, int base)
-+static long sym_get_range_val(struct symbol *sym, int base)
- {
- sym_calc_value(sym);
- switch (sym->type) {
-@@ -156,7 +155,7 @@
- static void sym_validate_range(struct symbol *sym)
- {
- struct property *prop;
-- int base, val, val2;
-+ long base, val, val2;
- char str[64];
-
- switch (sym->type) {
-@@ -180,9 +179,9 @@
- return;
- }
- if (sym->type == S_INT)
-- sprintf(str, "%d", val2);
-+ sprintf(str, "%ld", val2);
- else
-- sprintf(str, "0x%x", val2);
-+ sprintf(str, "0x%lx", val2);
- sym->curr.val = strdup(str);
- }
-
-@@ -205,6 +204,16 @@
- }
- if (sym_is_choice_value(sym))
- return;
-+ /* defaulting to "yes" if no explicit "depends on" are given */
-+ tri = yes;
-+ if (sym->dir_dep.expr)
-+ tri = expr_calc_value(sym->dir_dep.expr);
-+ if (tri == mod)
-+ tri = yes;
-+ if (sym->dir_dep.tri != tri) {
-+ sym->dir_dep.tri = tri;
-+ sym_set_changed(sym);
-+ }
- tri = no;
- if (sym->rev_dep.expr)
- tri = expr_calc_value(sym->rev_dep.expr);
-@@ -216,42 +225,68 @@
- }
- }
-
--static struct symbol *sym_calc_choice(struct symbol *sym)
-+/*
-+ * Find the default symbol for a choice.
-+ * First try the default values for the choice symbol
-+ * Next locate the first visible choice value
-+ * Return NULL if none was found
-+ */
-+struct symbol *sym_choice_default(struct symbol *sym)
- {
- struct symbol *def_sym;
- struct property *prop;
- struct expr *e;
-
-- /* is the user choice visible? */
-- def_sym = sym->def[S_DEF_USER].val;
-- if (def_sym) {
-- sym_calc_visibility(def_sym);
-- if (def_sym->visible != no)
-- return def_sym;
-- }
--
- /* any of the defaults visible? */
- for_all_defaults(sym, prop) {
- prop->visible.tri = expr_calc_value(prop->visible.expr);
- if (prop->visible.tri == no)
- continue;
- def_sym = prop_get_symbol(prop);
-- sym_calc_visibility(def_sym);
- if (def_sym->visible != no)
- return def_sym;
- }
-
- /* just get the first visible value */
- prop = sym_get_choice_prop(sym);
-+ expr_list_for_each_sym(prop->expr, e, def_sym)
-+ if (def_sym->visible != no)
-+ return def_sym;
-+
-+ /* failed to locate any defaults */
-+ return NULL;
-+}
-+
-+static struct symbol *sym_calc_choice(struct symbol *sym)
-+{
-+ struct symbol *def_sym;
-+ struct property *prop;
-+ struct expr *e;
-+ int flags;
-+
-+ /* first calculate all choice values' visibilities */
-+ flags = sym->flags;
-+ prop = sym_get_choice_prop(sym);
- expr_list_for_each_sym(prop->expr, e, def_sym) {
- sym_calc_visibility(def_sym);
- if (def_sym->visible != no)
-- return def_sym;
-+ flags &= def_sym->flags;
- }
-
-- /* no choice? reset tristate value */
-- sym->curr.tri = no;
-- return NULL;
-+ sym->flags &= flags | ~SYMBOL_DEF_USER;
-+
-+ /* is the user choice visible? */
-+ def_sym = sym->def[S_DEF_USER].val;
-+ if (def_sym && def_sym->visible != no)
-+ return def_sym;
-+
-+ def_sym = sym_choice_default(sym);
-+
-+ if (def_sym == NULL)
-+ /* no choice? reset tristate value */
-+ sym->curr.tri = no;
-+
-+ return def_sym;
- }
-
- void sym_calc_value(struct symbol *sym)
-@@ -265,6 +300,14 @@
-
- if (sym->flags & SYMBOL_VALID)
- return;
-+
-+ if (sym_is_choice_value(sym) &&
-+ sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES) {
-+ sym->flags &= ~SYMBOL_NEED_SET_CHOICE_VALUES;
-+ prop = sym_get_choice_prop(sym);
-+ sym_calc_value(prop_get_symbol(prop));
-+ }
-+
- sym->flags |= SYMBOL_VALID;
-
- oldval = sym->curr;
-@@ -321,6 +364,18 @@
- }
- }
- calc_newval:
-+ if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {
-+ struct expr *e;
-+ e = expr_simplify_unmet_dep(sym->rev_dep.expr,
-+ sym->dir_dep.expr);
-+ fprintf(stderr, "warning: (");
-+ expr_fprint(e, stderr);
-+ fprintf(stderr, ") selects %s which has unmet direct dependencies (",
-+ sym->name);
-+ expr_fprint(sym->dir_dep.expr, stderr);
-+ fprintf(stderr, ")\n");
-+ expr_free(e);
-+ }
- newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
- }
- if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
-@@ -365,18 +420,22 @@
-
- if (sym_is_choice(sym)) {
- struct symbol *choice_sym;
-- int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
-
- prop = sym_get_choice_prop(sym);
- expr_list_for_each_sym(prop->expr, e, choice_sym) {
-- choice_sym->flags |= flags;
-- if (flags & SYMBOL_CHANGED)
-+ if ((sym->flags & SYMBOL_WRITE) &&
-+ choice_sym->visible != no)
-+ choice_sym->flags |= SYMBOL_WRITE;
-+ if (sym->flags & SYMBOL_CHANGED)
- sym_set_changed(choice_sym);
- }
- }
-
- if (sym->flags & SYMBOL_AUTO)
- sym->flags &= ~SYMBOL_WRITE;
-+
-+ if (sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES)
-+ set_all_choice_values(sym);
- }
-
- void sym_clear_all_valid(void)
-@@ -535,7 +594,7 @@
- bool sym_string_within_range(struct symbol *sym, const char *str)
- {
- struct property *prop;
-- int val;
-+ long val;
-
- switch (sym->type) {
- case S_STRING:
-@@ -608,11 +667,11 @@
- size = strlen(newval) + 1;
- if (sym->type == S_HEX && (newval[0] != '0' || (newval[1] != 'x' && newval[1] != 'X'))) {
- size += 2;
-- sym->def[S_DEF_USER].val = val = malloc(size);
-+ sym->def[S_DEF_USER].val = val = xmalloc(size);
- *val++ = '0';
- *val++ = 'x';
- } else if (!oldval || strcmp(oldval, newval))
-- sym->def[S_DEF_USER].val = val = malloc(size);
-+ sym->def[S_DEF_USER].val = val = xmalloc(size);
- else
- return true;
-
-@@ -623,6 +682,80 @@
- return true;
- }
-
-+/*
-+ * Find the default value associated to a symbol.
-+ * For tristate symbol handle the modules=n case
-+ * in which case "m" becomes "y".
-+ * If the symbol does not have any default then fallback
-+ * to the fixed default values.
-+ */
-+const char *sym_get_string_default(struct symbol *sym)
-+{
-+ struct property *prop;
-+ struct symbol *ds;
-+ const char *str;
-+ tristate val;
-+
-+ sym_calc_visibility(sym);
-+ sym_calc_value(modules_sym);
-+ val = symbol_no.curr.tri;
-+ str = symbol_empty.curr.val;
-+
-+ /* If symbol has a default value look it up */
-+ prop = sym_get_default_prop(sym);
-+ if (prop != NULL) {
-+ switch (sym->type) {
-+ case S_BOOLEAN:
-+ case S_TRISTATE:
-+ /* The visibility may limit the value from yes => mod */
-+ val = EXPR_AND(expr_calc_value(prop->expr), prop->visible.tri);
-+ break;
-+ default:
-+ /*
-+ * The following fails to handle the situation
-+ * where a default value is further limited by
-+ * the valid range.
-+ */
-+ ds = prop_get_symbol(prop);
-+ if (ds != NULL) {
-+ sym_calc_value(ds);
-+ str = (const char *)ds->curr.val;
-+ }
-+ }
-+ }
-+
-+ /* Handle select statements */
-+ val = EXPR_OR(val, sym->rev_dep.tri);
-+
-+ /* transpose mod to yes if modules are not enabled */
-+ if (val == mod)
-+ if (!sym_is_choice_value(sym) && modules_sym->curr.tri == no)
-+ val = yes;
-+
-+ /* transpose mod to yes if type is bool */
-+ if (sym->type == S_BOOLEAN && val == mod)
-+ val = yes;
-+
-+ switch (sym->type) {
-+ case S_BOOLEAN:
-+ case S_TRISTATE:
-+ switch (val) {
-+ case no: return "n";
-+ case mod: return "m";
-+ case yes: return "y";
-+ }
-+ case S_INT:
-+ case S_HEX:
-+ return str;
-+ case S_STRING:
-+ return str;
-+ case S_OTHER:
-+ case S_UNKNOWN:
-+ break;
-+ }
-+ return "";
-+}
-+
- const char *sym_get_string_value(struct symbol *sym)
- {
- tristate val;
-@@ -635,7 +768,8 @@
- case no:
- return "n";
- case mod:
-- return "m";
-+ sym_calc_value(modules_sym);
-+ return (modules_sym->curr.tri == no) ? "n" : "m";
- case yes:
- return "y";
- }
-@@ -651,12 +785,20 @@
- return sym->visible > sym->rev_dep.tri;
- }
-
-+static unsigned strhash(const char *s)
-+{
-+ /* fnv32 hash */
-+ unsigned hash = 2166136261U;
-+ for (; *s; s++)
-+ hash = (hash ^ *s) * 0x01000193;
-+ return hash;
-+}
-+
- struct symbol *sym_lookup(const char *name, int flags)
- {
- struct symbol *symbol;
-- const char *ptr;
- char *new_name;
-- int hash = 0;
-+ int hash;
-
- if (name) {
- if (name[0] && !name[1]) {
-@@ -666,12 +808,11 @@
- case 'n': return &symbol_no;
- }
- }
-- for (ptr = name; *ptr; ptr++)
-- hash += *ptr;
-- hash &= 0xff;
-+ hash = strhash(name) % SYMBOL_HASHSIZE;
-
- for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
-- if (!strcmp(symbol->name, name) &&
-+ if (symbol->name &&
-+ !strcmp(symbol->name, name) &&
- (flags ? symbol->flags & flags
- : !(symbol->flags & (SYMBOL_CONST|SYMBOL_CHOICE))))
- return symbol;
-@@ -679,10 +820,10 @@
- new_name = strdup(name);
- } else {
- new_name = NULL;
-- hash = 256;
-+ hash = 0;
- }
-
-- symbol = malloc(sizeof(*symbol));
-+ symbol = xmalloc(sizeof(*symbol));
- memset(symbol, 0, sizeof(*symbol));
- symbol->name = new_name;
- symbol->type = S_UNKNOWN;
-@@ -697,7 +838,6 @@
- struct symbol *sym_find(const char *name)
- {
- struct symbol *symbol = NULL;
-- const char *ptr;
- int hash = 0;
-
- if (!name)
-@@ -710,12 +850,11 @@
- case 'n': return &symbol_no;
- }
- }
-- for (ptr = name; *ptr; ptr++)
-- hash += *ptr;
-- hash &= 0xff;
-+ hash = strhash(name) % SYMBOL_HASHSIZE;
-
- for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
-- if (!strcmp(symbol->name, name) &&
-+ if (symbol->name &&
-+ !strcmp(symbol->name, name) &&
- !(symbol->flags & SYMBOL_CONST))
- break;
- }
-@@ -723,42 +862,301 @@
- return symbol;
- }
-
-+/*
-+ * Expand symbol's names embedded in the string given in argument. Symbols'
-+ * name to be expanded shall be prefixed by a '$'. Unknown symbol expands to
-+ * the empty string.
-+ */
-+const char *sym_expand_string_value(const char *in)
-+{
-+ const char *src;
-+ char *res;
-+ size_t reslen;
-+
-+ reslen = strlen(in) + 1;
-+ res = xmalloc(reslen);
-+ res[0] = '\0';
-+
-+ while ((src = strchr(in, '$'))) {
-+ char *p, name[SYMBOL_MAXLENGTH];
-+ const char *symval = "";
-+ struct symbol *sym;
-+ size_t newlen;
-+
-+ strncat(res, in, src - in);
-+ src++;
-+
-+ p = name;
-+ while (isalnum(*src) || *src == '_')
-+ *p++ = *src++;
-+ *p = '\0';
-+
-+ sym = sym_find(name);
-+ if (sym != NULL) {
-+ sym_calc_value(sym);
-+ symval = sym_get_string_value(sym);
-+ }
-+
-+ newlen = strlen(res) + strlen(symval) + strlen(src) + 1;
-+ if (newlen > reslen) {
-+ reslen = newlen;
-+ res = realloc(res, reslen);
-+ }
-+
-+ strcat(res, symval);
-+ in = src;
-+ }
-+ strcat(res, in);
-+
-+ return res;
-+}
-+
-+const char *sym_escape_string_value(const char *in)
-+{
-+ const char *p;
-+ size_t reslen;
-+ char *res;
-+ size_t l;
-+
-+ reslen = strlen(in) + strlen("\"\"") + 1;
-+
-+ p = in;
-+ for (;;) {
-+ l = strcspn(p, "\"\\");
-+ p += l;
-+
-+ if (p[0] == '\0')
-+ break;
-+
-+ reslen++;
-+ p++;
-+ }
-+
-+ res = xmalloc(reslen);
-+ res[0] = '\0';
-+
-+ strcat(res, "\"");
-+
-+ p = in;
-+ for (;;) {
-+ l = strcspn(p, "\"\\");
-+ strncat(res, p, l);
-+ p += l;
-+
-+ if (p[0] == '\0')
-+ break;
-+
-+ strcat(res, "\\");
-+ strncat(res, p++, 1);
-+ }
-+
-+ strcat(res, "\"");
-+ return res;
-+}
-+
-+struct sym_match {
-+ struct symbol *sym;
-+ off_t so, eo;
-+};
-+
-+/* Compare matched symbols as thus:
-+ * - first, symbols that match exactly
-+ * - then, alphabetical sort
-+ */
-+static int sym_rel_comp( const void *sym1, const void *sym2 )
-+{
-+ struct sym_match *s1 = *(struct sym_match **)sym1;
-+ struct sym_match *s2 = *(struct sym_match **)sym2;
-+ int l1, l2;
-+
-+ /* Exact match:
-+ * - if matched length on symbol s1 is the length of that symbol,
-+ * then this symbol should come first;
-+ * - if matched length on symbol s2 is the length of that symbol,
-+ * then this symbol should come first.
-+ * Note: since the search can be a regexp, both symbols may match
-+ * exactly; if this is the case, we can't decide which comes first,
-+ * and we fallback to sorting alphabetically.
-+ */
-+ l1 = s1->eo - s1->so;
-+ l2 = s2->eo - s2->so;
-+ if (l1 == strlen(s1->sym->name) && l2 != strlen(s2->sym->name))
-+ return -1;
-+ if (l1 != strlen(s1->sym->name) && l2 == strlen(s2->sym->name))
-+ return 1;
-+
-+ /* As a fallback, sort symbols alphabetically */
-+ return strcmp(s1->sym->name, s2->sym->name);
-+}
-+
- struct symbol **sym_re_search(const char *pattern)
- {
- struct symbol *sym, **sym_arr = NULL;
-+ struct sym_match **sym_match_arr = NULL;
- int i, cnt, size;
- regex_t re;
-+ regmatch_t match[1];
-
- cnt = size = 0;
- /* Skip if empty */
- if (strlen(pattern) == 0)
- return NULL;
-- if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB|REG_ICASE))
-+ if (regcomp(&re, pattern, REG_EXTENDED|REG_ICASE))
- return NULL;
-
- for_all_symbols(i, sym) {
-+ struct sym_match *tmp_sym_match;
- if (sym->flags & SYMBOL_CONST || !sym->name)
- continue;
-- if (regexec(&re, sym->name, 0, NULL, 0))
-+ if (regexec(&re, sym->name, 1, match, 0))
- continue;
- if (cnt + 1 >= size) {
-- void *tmp = sym_arr;
-+ void *tmp;
- size += 16;
-- sym_arr = realloc(sym_arr, size * sizeof(struct symbol *));
-- if (!sym_arr) {
-- free(tmp);
-- return NULL;
-+ tmp = realloc(sym_match_arr, size * sizeof(struct sym_match *));
-+ if (!tmp) {
-+ goto sym_re_search_free;
- }
-+ sym_match_arr = tmp;
- }
-- sym_arr[cnt++] = sym;
-- }
-- if (sym_arr)
-+ sym_calc_value(sym);
-+ tmp_sym_match = (struct sym_match*)malloc(sizeof(struct sym_match));
-+ if (!tmp_sym_match)
-+ goto sym_re_search_free;
-+ tmp_sym_match->sym = sym;
-+ /* As regexec return 0, we know we have a match, so
-+ * we can use match[0].rm_[se]o without further checks
-+ */
-+ tmp_sym_match->so = match[0].rm_so;
-+ tmp_sym_match->eo = match[0].rm_eo;
-+ sym_match_arr[cnt++] = tmp_sym_match;
-+ }
-+ if (sym_match_arr) {
-+ qsort(sym_match_arr, cnt, sizeof(struct sym_match*), sym_rel_comp);
-+ sym_arr = malloc((cnt+1) * sizeof(struct symbol));
-+ if (!sym_arr)
-+ goto sym_re_search_free;
-+ for (i = 0; i < cnt; i++)
-+ sym_arr[i] = sym_match_arr[i]->sym;
- sym_arr[cnt] = NULL;
-+ }
-+sym_re_search_free:
-+ if (sym_match_arr) {
-+ for (i = 0; i < cnt; i++)
-+ free(sym_match_arr[i]);
-+ free(sym_match_arr);
-+ }
- regfree(&re);
-
- return sym_arr;
- }
-
-+/*
-+ * When we check for recursive dependencies we use a stack to save
-+ * current state so we can print out relevant info to user.
-+ * The entries are located on the call stack so no need to free memory.
-+ * Note inser() remove() must always match to properly clear the stack.
-+ */
-+static struct dep_stack {
-+ struct dep_stack *prev, *next;
-+ struct symbol *sym;
-+ struct property *prop;
-+ struct expr *expr;
-+} *check_top;
-+
-+static void dep_stack_insert(struct dep_stack *stack, struct symbol *sym)
-+{
-+ memset(stack, 0, sizeof(*stack));
-+ if (check_top)
-+ check_top->next = stack;
-+ stack->prev = check_top;
-+ stack->sym = sym;
-+ check_top = stack;
-+}
-+
-+static void dep_stack_remove(void)
-+{
-+ check_top = check_top->prev;
-+ if (check_top)
-+ check_top->next = NULL;
-+}
-+
-+/*
-+ * Called when we have detected a recursive dependency.
-+ * check_top point to the top of the stact so we use
-+ * the ->prev pointer to locate the bottom of the stack.
-+ */
-+static void sym_check_print_recursive(struct symbol *last_sym)
-+{
-+ struct dep_stack *stack;
-+ struct symbol *sym, *next_sym;
-+ struct menu *menu = NULL;
-+ struct property *prop;
-+ struct dep_stack cv_stack;
-+
-+ if (sym_is_choice_value(last_sym)) {
-+ dep_stack_insert(&cv_stack, last_sym);
-+ last_sym = prop_get_symbol(sym_get_choice_prop(last_sym));
-+ }
-+
-+ for (stack = check_top; stack != NULL; stack = stack->prev)
-+ if (stack->sym == last_sym)
-+ break;
-+ if (!stack) {
-+ fprintf(stderr, "unexpected recursive dependency error\n");
-+ return;
-+ }
-+
-+ for (; stack; stack = stack->next) {
-+ sym = stack->sym;
-+ next_sym = stack->next ? stack->next->sym : last_sym;
-+ prop = stack->prop;
-+ if (prop == NULL)
-+ prop = stack->sym->prop;
-+
-+ /* for choice values find the menu entry (used below) */
-+ if (sym_is_choice(sym) || sym_is_choice_value(sym)) {
-+ for (prop = sym->prop; prop; prop = prop->next) {
-+ menu = prop->menu;
-+ if (prop->menu)
-+ break;
-+ }
-+ }
-+ if (stack->sym == last_sym)
-+ fprintf(stderr, "%s:%d:error: recursive dependency detected!\n",
-+ prop->file->name, prop->lineno);
-+ if (stack->expr) {
-+ fprintf(stderr, "%s:%d:\tsymbol %s %s value contains %s\n",
-+ prop->file->name, prop->lineno,
-+ sym->name ? sym->name : "<choice>",
-+ prop_get_type_name(prop->type),
-+ next_sym->name ? next_sym->name : "<choice>");
-+ } else if (stack->prop) {
-+ fprintf(stderr, "%s:%d:\tsymbol %s depends on %s\n",
-+ prop->file->name, prop->lineno,
-+ sym->name ? sym->name : "<choice>",
-+ next_sym->name ? next_sym->name : "<choice>");
-+ } else if (sym_is_choice(sym)) {
-+ fprintf(stderr, "%s:%d:\tchoice %s contains symbol %s\n",
-+ menu->file->name, menu->lineno,
-+ sym->name ? sym->name : "<choice>",
-+ next_sym->name ? next_sym->name : "<choice>");
-+ } else if (sym_is_choice_value(sym)) {
-+ fprintf(stderr, "%s:%d:\tsymbol %s is part of choice %s\n",
-+ menu->file->name, menu->lineno,
-+ sym->name ? sym->name : "<choice>",
-+ next_sym->name ? next_sym->name : "<choice>");
-+ } else {
-+ fprintf(stderr, "%s:%d:\tsymbol %s is selected by %s\n",
-+ prop->file->name, prop->lineno,
-+ sym->name ? sym->name : "<choice>",
-+ next_sym->name ? next_sym->name : "<choice>");
-+ }
-+ }
-+
-+ if (check_top == &cv_stack)
-+ dep_stack_remove();
-+}
-
- static struct symbol *sym_check_expr_deps(struct expr *e)
- {
-@@ -795,24 +1193,33 @@
- {
- struct symbol *sym2;
- struct property *prop;
-+ struct dep_stack stack;
-+
-+ dep_stack_insert(&stack, sym);
-
- sym2 = sym_check_expr_deps(sym->rev_dep.expr);
- if (sym2)
-- return sym2;
-+ goto out;
-
- for (prop = sym->prop; prop; prop = prop->next) {
- if (prop->type == P_CHOICE || prop->type == P_SELECT)
- continue;
-+ stack.prop = prop;
- sym2 = sym_check_expr_deps(prop->visible.expr);
- if (sym2)
- break;
- if (prop->type != P_DEFAULT || sym_is_choice(sym))
- continue;
-+ stack.expr = prop->expr;
- sym2 = sym_check_expr_deps(prop->expr);
- if (sym2)
- break;
-+ stack.expr = NULL;
- }
-
-+out:
-+ dep_stack_remove();
-+
- return sym2;
- }
-
-@@ -821,6 +1228,9 @@
- struct symbol *sym, *sym2;
- struct property *prop;
- struct expr *e;
-+ struct dep_stack stack;
-+
-+ dep_stack_insert(&stack, choice);
-
- prop = sym_get_choice_prop(choice);
- expr_list_for_each_sym(prop->expr, e, sym)
-@@ -834,10 +1244,8 @@
-
- expr_list_for_each_sym(prop->expr, e, sym) {
- sym2 = sym_check_sym_deps(sym);
-- if (sym2) {
-- fprintf(stderr, " -> %s", sym->name);
-+ if (sym2)
- break;
-- }
- }
- out:
- expr_list_for_each_sym(prop->expr, e, sym)
-@@ -847,6 +1255,8 @@
- prop_get_symbol(sym_get_choice_prop(sym2)) == choice)
- sym2 = choice;
-
-+ dep_stack_remove();
-+
- return sym2;
- }
-
-@@ -856,18 +1266,20 @@
- struct property *prop;
-
- if (sym->flags & SYMBOL_CHECK) {
-- fprintf(stderr, "%s:%d:error: found recursive dependency: %s",
-- sym->prop->file->name, sym->prop->lineno,
-- sym->name ? sym->name : "<choice>");
-+ sym_check_print_recursive(sym);
- return sym;
- }
- if (sym->flags & SYMBOL_CHECKED)
- return NULL;
-
- if (sym_is_choice_value(sym)) {
-+ struct dep_stack stack;
-+
- /* for choice groups start the check with main choice symbol */
-+ dep_stack_insert(&stack, sym);
- prop = sym_get_choice_prop(sym);
- sym2 = sym_check_deps(prop_get_symbol(prop));
-+ dep_stack_remove();
- } else if (sym_is_choice(sym)) {
- sym2 = sym_check_choice_deps(sym);
- } else {
-@@ -876,14 +1288,8 @@
- sym->flags &= ~SYMBOL_CHECK;
- }
-
-- if (sym2) {
-- fprintf(stderr, " -> %s", sym->name ? sym->name : "<choice>");
-- if (sym2 == sym) {
-- fprintf(stderr, "\n");
-- zconfnerrs++;
-- sym2 = NULL;
-- }
-- }
-+ if (sym2 && sym2 == sym)
-+ sym2 = NULL;
-
- return sym2;
- }
-@@ -893,7 +1299,7 @@
- struct property *prop;
- struct property **propp;
-
-- prop = malloc(sizeof(*prop));
-+ prop = xmalloc(sizeof(*prop));
- memset(prop, 0, sizeof(*prop));
- prop->type = type;
- prop->sym = sym;
-@@ -937,13 +1343,15 @@
- return "select";
- case P_RANGE:
- return "range";
-+ case P_SYMBOL:
-+ return "symbol";
- case P_UNKNOWN:
- break;
- }
- return "unknown";
- }
-
--void prop_add_env(const char *env)
-+static void prop_add_env(const char *env)
- {
- struct symbol *sym, *sym2;
- struct property *prop;
-diff -Nur uClibc-0.9.33.2/extra/config/util.c uClibc-git/extra/config/util.c
---- uClibc-0.9.33.2/extra/config/util.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/util.c 2014-07-25 20:36:04.865324519 +0200
-@@ -5,6 +5,8 @@
- * Released under the terms of the GNU GPL v2.0.
- */
-
-+#include <stdarg.h>
-+#include <stdlib.h>
- #include <string.h>
- #include "lkc.h"
-
-@@ -12,15 +14,18 @@
- struct file *file_lookup(const char *name)
- {
- struct file *file;
-+ const char *file_name = sym_expand_string_value(name);
-
- for (file = file_list; file; file = file->next) {
-- if (!strcmp(name, file->name))
-+ if (!strcmp(name, file->name)) {
-+ free((void *)file_name);
- return file;
-+ }
- }
-
-- file = malloc(sizeof(*file));
-+ file = xmalloc(sizeof(*file));
- memset(file, 0, sizeof(*file));
-- file->name = strdup(name);
-+ file->name = file_name;
- file->next = file_list;
- file_list = file;
- return file;
-@@ -32,11 +37,15 @@
- struct symbol *sym, *env_sym;
- struct expr *e;
- struct file *file;
-+ char tmpf[PATH_MAX+1];
- FILE *out;
-
- if (!name)
- name = ".kconfig.d";
-- out = fopen("..config.tmp", "w");
-+ strcpy(tmpf, name);
-+ dir_name(tmpf);
-+ strcat(tmpf, "..config.tmp");
-+ out = fopen(tmpf, "w");
- if (!out)
- return 1;
- fprintf(out, "deps_config := \\\n");
-@@ -46,8 +55,8 @@
- else
- fprintf(out, "\t%s\n", file->name);
- }
-- fprintf(out, "\ninclude/config/auto.conf: \\\n"
-- "\t$(deps_config)\n\n");
-+ fprintf(out, "\n%s: \\\n"
-+ "\t$(deps_config)\n\n", conf_get_autoconfig_name());
-
- expr_list_for_each_sym(sym_env_list, e, sym) {
- struct property *prop;
-@@ -61,23 +70,24 @@
- if (!value)
- value = "";
- fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value);
-- fprintf(out, "include/config/auto.conf: FORCE\n");
-+ fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name());
- fprintf(out, "endif\n");
- }
-
- fprintf(out, "\n$(deps_config): ;\n");
- fclose(out);
-- rename("..config.tmp", name);
-+ rename(tmpf, name);
- return 0;
- }
-
-
--/* Allocate initial growable sting */
-+/* Allocate initial growable string */
- struct gstr str_new(void)
- {
- struct gstr gs;
-- gs.s = malloc(sizeof(char) * 64);
-+ gs.s = xmalloc(sizeof(char) * 64);
- gs.len = 64;
-+ gs.max_width = 0;
- strcpy(gs.s, "\0");
- return gs;
- }
-@@ -88,6 +98,7 @@
- struct gstr gs;
- gs.s = strdup(s);
- gs.len = strlen(s) + 1;
-+ gs.max_width = 0;
- return gs;
- }
-
-@@ -131,3 +142,40 @@
- return gs->s;
- }
-
-+void *xmalloc(size_t size)
-+{
-+ void *p = malloc(size);
-+ if (p)
-+ return p;
-+ fprintf(stderr, "Out of memory.\n");
-+ exit(1);
-+}
-+
-+void *xcalloc(size_t nmemb, size_t size)
-+{
-+ void *p = calloc(nmemb, size);
-+ if (p)
-+ return p;
-+ fprintf(stderr, "Out of memory.\n");
-+ exit(1);
-+}
-+
-+/* basename, dirname - parse pathname components */
-+char *dir_name(char *path)
-+{
-+ char *slash = strrchr(path, '/');
-+ int size = 0;
-+ if (slash)
-+ size = slash - path + 1;
-+ path[size] = 0;
-+ return path;
-+}
-+char *base_name(char *path)
-+{
-+ char *slash = strrchr(path, '/');
-+ if (slash)
-+ path += slash - path + 1;
-+ return path;
-+
-+}
-+
-diff -Nur uClibc-0.9.33.2/extra/config/zconf.gperf uClibc-git/extra/config/zconf.gperf
---- uClibc-0.9.33.2/extra/config/zconf.gperf 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/zconf.gperf 2014-07-25 20:36:04.865324519 +0200
-@@ -9,6 +9,8 @@
-
- struct kconf_id;
-
-+static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
-+
- %%
- mainmenu, T_MAINMENU, TF_COMMAND
- menu, T_MENU, TF_COMMAND
-@@ -36,6 +38,7 @@
- string, T_TYPE, TF_COMMAND, S_STRING
- select, T_SELECT, TF_COMMAND
- range, T_RANGE, TF_COMMAND
-+visible, T_VISIBLE, TF_COMMAND
- option, T_OPTION, TF_COMMAND
- on, T_ON, TF_PARAM
- modules, T_OPT_MODULES, TF_OPTION
-diff -Nur uClibc-0.9.33.2/extra/config/zconf.hash.c_shipped uClibc-git/extra/config/zconf.hash.c_shipped
---- uClibc-0.9.33.2/extra/config/zconf.hash.c_shipped 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/zconf.hash.c_shipped 2014-07-25 20:36:04.865324519 +0200
-@@ -1,6 +1,5 @@
--/* ANSI-C code produced by gperf version 3.0.3 */
--/* Command-line: gperf */
--/* Computed positions: -k'1,3' */
-+/* ANSI-C code produced by gperf version 3.0.4 */
-+/* Command-line: gperf -t --output-file scripts/kconfig/zconf.hash.c_shipped -a -C -E -g -k '1,3,$' -p -t scripts/kconfig/zconf.gperf */
-
- #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-@@ -29,8 +28,11 @@
- #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
- #endif
-
-+#line 10 "scripts/kconfig/zconf.gperf"
- struct kconf_id;
--/* maximum key range = 47, duplicates = 0 */
-+
-+static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
-+/* maximum key range = 71, duplicates = 0 */
-
- #ifdef __GNUC__
- __inline
-@@ -42,34 +44,34 @@
- static unsigned int
- kconf_id_hash (register const char *str, register unsigned int len)
- {
-- static unsigned char asso_values[] =
-+ static const unsigned char asso_values[] =
- {
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 11, 5,
-- 0, 0, 5, 49, 5, 20, 49, 49, 5, 20,
-- 5, 0, 30, 49, 0, 15, 0, 10, 0, 49,
-- 25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-- 49, 49, 49, 49, 49, 49
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 25, 25,
-+ 0, 0, 0, 5, 0, 0, 73, 73, 5, 0,
-+ 10, 5, 45, 73, 20, 20, 0, 15, 15, 73,
-+ 20, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
-+ 73, 73, 73, 73, 73, 73
- };
- register int hval = len;
-
-@@ -83,137 +85,183 @@
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
-- return hval;
-+ return hval + asso_values[(unsigned char)str[len - 1]];
- }
-
- struct kconf_id_strings_t
- {
-- char kconf_id_strings_str2[sizeof("on")];
-- char kconf_id_strings_str3[sizeof("env")];
-+ char kconf_id_strings_str2[sizeof("if")];
-+ char kconf_id_strings_str3[sizeof("int")];
- char kconf_id_strings_str5[sizeof("endif")];
-- char kconf_id_strings_str6[sizeof("option")];
-- char kconf_id_strings_str7[sizeof("endmenu")];
-- char kconf_id_strings_str8[sizeof("optional")];
-+ char kconf_id_strings_str7[sizeof("default")];
-+ char kconf_id_strings_str8[sizeof("tristate")];
- char kconf_id_strings_str9[sizeof("endchoice")];
-- char kconf_id_strings_str10[sizeof("range")];
-- char kconf_id_strings_str11[sizeof("choice")];
-- char kconf_id_strings_str12[sizeof("default")];
-+ char kconf_id_strings_str12[sizeof("def_tristate")];
- char kconf_id_strings_str13[sizeof("def_bool")];
-- char kconf_id_strings_str14[sizeof("help")];
-- char kconf_id_strings_str15[sizeof("bool")];
-- char kconf_id_strings_str16[sizeof("config")];
-- char kconf_id_strings_str17[sizeof("def_tristate")];
-- char kconf_id_strings_str18[sizeof("boolean")];
-- char kconf_id_strings_str19[sizeof("defconfig_list")];
-- char kconf_id_strings_str21[sizeof("string")];
-- char kconf_id_strings_str22[sizeof("if")];
-- char kconf_id_strings_str23[sizeof("int")];
-- char kconf_id_strings_str26[sizeof("select")];
-+ char kconf_id_strings_str14[sizeof("defconfig_list")];
-+ char kconf_id_strings_str17[sizeof("on")];
-+ char kconf_id_strings_str18[sizeof("optional")];
-+ char kconf_id_strings_str21[sizeof("option")];
-+ char kconf_id_strings_str22[sizeof("endmenu")];
-+ char kconf_id_strings_str23[sizeof("mainmenu")];
-+ char kconf_id_strings_str25[sizeof("menuconfig")];
- char kconf_id_strings_str27[sizeof("modules")];
-- char kconf_id_strings_str28[sizeof("tristate")];
- char kconf_id_strings_str29[sizeof("menu")];
-- char kconf_id_strings_str31[sizeof("source")];
-+ char kconf_id_strings_str31[sizeof("select")];
- char kconf_id_strings_str32[sizeof("comment")];
-- char kconf_id_strings_str33[sizeof("hex")];
-- char kconf_id_strings_str35[sizeof("menuconfig")];
-- char kconf_id_strings_str36[sizeof("prompt")];
-- char kconf_id_strings_str37[sizeof("depends")];
-- char kconf_id_strings_str48[sizeof("mainmenu")];
-+ char kconf_id_strings_str33[sizeof("env")];
-+ char kconf_id_strings_str35[sizeof("range")];
-+ char kconf_id_strings_str36[sizeof("choice")];
-+ char kconf_id_strings_str39[sizeof("bool")];
-+ char kconf_id_strings_str41[sizeof("source")];
-+ char kconf_id_strings_str42[sizeof("visible")];
-+ char kconf_id_strings_str43[sizeof("hex")];
-+ char kconf_id_strings_str46[sizeof("config")];
-+ char kconf_id_strings_str47[sizeof("boolean")];
-+ char kconf_id_strings_str51[sizeof("string")];
-+ char kconf_id_strings_str54[sizeof("help")];
-+ char kconf_id_strings_str56[sizeof("prompt")];
-+ char kconf_id_strings_str72[sizeof("depends")];
- };
--static struct kconf_id_strings_t kconf_id_strings_contents =
-+static const struct kconf_id_strings_t kconf_id_strings_contents =
- {
-- "on",
-- "env",
-+ "if",
-+ "int",
- "endif",
-+ "default",
-+ "tristate",
-+ "endchoice",
-+ "def_tristate",
-+ "def_bool",
-+ "defconfig_list",
-+ "on",
-+ "optional",
- "option",
- "endmenu",
-- "optional",
-- "endchoice",
-+ "mainmenu",
-+ "menuconfig",
-+ "modules",
-+ "menu",
-+ "select",
-+ "comment",
-+ "env",
- "range",
- "choice",
-- "default",
-- "def_bool",
-- "help",
- "bool",
-+ "source",
-+ "visible",
-+ "hex",
- "config",
-- "def_tristate",
- "boolean",
-- "defconfig_list",
- "string",
-- "if",
-- "int",
-- "select",
-- "modules",
-- "tristate",
-- "menu",
-- "source",
-- "comment",
-- "hex",
-- "menuconfig",
-+ "help",
- "prompt",
-- "depends",
-- "mainmenu"
-+ "depends"
- };
- #define kconf_id_strings ((const char *) &kconf_id_strings_contents)
- #ifdef __GNUC__
- __inline
--#ifdef __GNUC_STDC_INLINE__
-+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
- __attribute__ ((__gnu_inline__))
- #endif
- #endif
--struct kconf_id *
-+const struct kconf_id *
- kconf_id_lookup (register const char *str, register unsigned int len)
- {
- enum
- {
-- TOTAL_KEYWORDS = 31,
-+ TOTAL_KEYWORDS = 32,
- MIN_WORD_LENGTH = 2,
- MAX_WORD_LENGTH = 14,
- MIN_HASH_VALUE = 2,
-- MAX_HASH_VALUE = 48
-+ MAX_HASH_VALUE = 72
- };
-
-- static struct kconf_id wordlist[] =
-+ static const struct kconf_id wordlist[] =
- {
- {-1}, {-1},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_ON, TF_PARAM},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_OPT_ENV, TF_OPTION},
-+#line 25 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM},
-+#line 36 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_INT},
- {-1},
-+#line 26 "scripts/kconfig/zconf.gperf"
- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_OPTION, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_OPTIONAL, TF_COMMAND},
-+ {-1},
-+#line 29 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
-+#line 31 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TYPE, TF_COMMAND, S_TRISTATE},
-+#line 20 "scripts/kconfig/zconf.gperf"
- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_CHOICE, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
-+ {-1}, {-1},
-+#line 32 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE},
-+#line 35 "scripts/kconfig/zconf.gperf"
- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_HELP, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15, T_TYPE, TF_COMMAND, S_BOOLEAN},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_CONFIG, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEFAULT, TF_COMMAND, S_TRISTATE},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_TYPE, TF_COMMAND, S_BOOLEAN},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19, T_OPT_DEFCONFIG_LIST,TF_OPTION},
-- {-1},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_TYPE, TF_COMMAND, S_STRING},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_IF, TF_COMMAND|TF_PARAM},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_INT},
-+#line 45 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION},
-+ {-1}, {-1},
-+#line 43 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM},
-+#line 28 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND},
- {-1}, {-1},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SELECT, TF_COMMAND},
-+#line 42 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND},
-+#line 17 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ENDMENU, TF_COMMAND},
-+#line 15 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_MAINMENU, TF_COMMAND},
-+ {-1},
-+#line 23 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND},
-+ {-1},
-+#line 44 "scripts/kconfig/zconf.gperf"
- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_TYPE, TF_COMMAND, S_TRISTATE},
-+ {-1},
-+#line 16 "scripts/kconfig/zconf.gperf"
- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND},
- {-1},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SOURCE, TF_COMMAND},
-+#line 39 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
-+#line 21 "scripts/kconfig/zconf.gperf"
- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_TYPE, TF_COMMAND, S_HEX},
-+#line 46 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION},
- {-1},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_MENUCONFIG, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_PROMPT, TF_COMMAND},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_DEPENDS, TF_COMMAND},
-- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-+#line 40 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND},
-+#line 19 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CHOICE, TF_COMMAND},
-+ {-1}, {-1},
-+#line 33 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str39, T_TYPE, TF_COMMAND, S_BOOLEAN},
-+ {-1},
-+#line 18 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SOURCE, TF_COMMAND},
-+#line 41 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND},
-+#line 37 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43, T_TYPE, TF_COMMAND, S_HEX},
-+ {-1}, {-1},
-+#line 22 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND},
-+#line 34 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN},
-+ {-1}, {-1}, {-1},
-+#line 38 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING},
-+ {-1}, {-1},
-+#line 24 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str54, T_HELP, TF_COMMAND},
- {-1},
-- {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48, T_MAINMENU, TF_COMMAND}
-+#line 30 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str56, T_PROMPT, TF_COMMAND},
-+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-+#line 27 "scripts/kconfig/zconf.gperf"
-+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str72, T_DEPENDS, TF_COMMAND}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
-@@ -234,4 +282,5 @@
- }
- return 0;
- }
-+#line 47 "scripts/kconfig/zconf.gperf"
-
-diff -Nur uClibc-0.9.33.2/extra/config/zconf.l uClibc-git/extra/config/zconf.l
---- uClibc-0.9.33.2/extra/config/zconf.l 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/zconf.l 2014-07-25 20:36:04.865324519 +0200
-@@ -1,5 +1,5 @@
--%option backup nostdinit noyywrap never-interactive full ecs
--%option 8bit backup nodefault perf-report perf-report
-+%option nostdinit noyywrap never-interactive full ecs
-+%option 8bit nodefault perf-report perf-report
- %option noinput
- %x COMMAND HELP STRING PARAM
- %{
-@@ -14,7 +14,6 @@
- #include <string.h>
- #include <unistd.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
- #define START_STRSIZE 16
-@@ -39,15 +38,15 @@
- static void zconf_endhelp(void);
- static void zconf_endfile(void);
-
--void new_string(void)
-+static void new_string(void)
- {
-- text = malloc(START_STRSIZE);
-+ text = xmalloc(START_STRSIZE);
- text_asize = START_STRSIZE;
- text_size = 0;
- *text = 0;
- }
-
--void append_string(const char *str, int size)
-+static void append_string(const char *str, int size)
- {
- int new_size = text_size + size + 1;
- if (new_size > text_asize) {
-@@ -61,9 +60,9 @@
- text[text_size] = 0;
- }
-
--void alloc_string(const char *str, int size)
-+static void alloc_string(const char *str, int size)
- {
-- text = malloc(size + 1);
-+ text = xmalloc(size + 1);
- memcpy(text, str, size);
- text[size] = 0;
- }
-@@ -96,7 +95,7 @@
-
- <COMMAND>{
- {n}+ {
-- struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
-+ const struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
- BEGIN(PARAM);
- current_pos.file = current_file;
- current_pos.lineno = current_file->lineno;
-@@ -132,7 +131,7 @@
- \n BEGIN(INITIAL); current_file->lineno++; return T_EOL;
- --- /* ignore */
- ({n}|[-/.])+ {
-- struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
-+ const struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
- if (id && id->flags & TF_PARAM) {
- zconflval.id = id;
- return id->token;
-@@ -289,42 +288,50 @@
- exit(1);
- }
-
-- current_buf = malloc(sizeof(*current_buf));
-+ current_buf = xmalloc(sizeof(*current_buf));
- memset(current_buf, 0, sizeof(*current_buf));
-
- current_file = file_lookup(name);
- current_file->lineno = 1;
-- current_file->flags = FILE_BUSY;
- }
-
- void zconf_nextfile(const char *name)
- {
-+ struct file *iter;
- struct file *file = file_lookup(name);
-- struct buffer *buf = malloc(sizeof(*buf));
-+ struct buffer *buf = xmalloc(sizeof(*buf));
- memset(buf, 0, sizeof(*buf));
-
- current_buf->state = YY_CURRENT_BUFFER;
-- yyin = zconf_fopen(name);
-+ yyin = zconf_fopen(file->name);
- if (!yyin) {
-- printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
-+ printf("%s:%d: can't open file \"%s\"\n",
-+ zconf_curname(), zconf_lineno(), file->name);
- exit(1);
- }
- yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
- buf->parent = current_buf;
- current_buf = buf;
-
-- if (file->flags & FILE_BUSY) {
-- printf("%s:%d: do not source '%s' from itself\n",
-- zconf_curname(), zconf_lineno(), name);
-- exit(1);
-- }
-- if (file->flags & FILE_SCANNED) {
-- printf("%s:%d: file '%s' is already sourced from '%s'\n",
-- zconf_curname(), zconf_lineno(), name,
-- file->parent->name);
-- exit(1);
-+ for (iter = current_file->parent; iter; iter = iter->parent ) {
-+ if (!strcmp(current_file->name,iter->name) ) {
-+ printf("%s:%d: recursive inclusion detected. "
-+ "Inclusion path:\n current file : '%s'\n",
-+ zconf_curname(), zconf_lineno(),
-+ zconf_curname());
-+ iter = current_file->parent;
-+ while (iter && \
-+ strcmp(iter->name,current_file->name)) {
-+ printf(" included from: '%s:%d'\n",
-+ iter->name, iter->lineno-1);
-+ iter = iter->parent;
-+ }
-+ if (iter)
-+ printf(" included from: '%s:%d'\n",
-+ iter->name, iter->lineno+1);
-+ exit(1);
-+ }
- }
-- file->flags |= FILE_BUSY;
- file->lineno = 1;
- file->parent = current_file;
- current_file = file;
-@@ -334,8 +341,6 @@
- {
- struct buffer *parent;
-
-- current_file->flags |= FILE_SCANNED;
-- current_file->flags &= ~FILE_BUSY;
- current_file = current_file->parent;
-
- parent = current_buf->parent;
-@@ -353,7 +358,7 @@
- return current_pos.lineno;
- }
-
--char *zconf_curname(void)
-+const char *zconf_curname(void)
- {
- return current_pos.file ? current_pos.file->name : "<none>";
- }
-diff -Nur uClibc-0.9.33.2/extra/config/zconf.lex.c_shipped uClibc-git/extra/config/zconf.lex.c_shipped
---- uClibc-0.9.33.2/extra/config/zconf.lex.c_shipped 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/config/zconf.lex.c_shipped 2014-07-25 20:36:04.865324519 +0200
-@@ -0,0 +1,2420 @@
-+
-+#line 3 "scripts/kconfig/zconf.lex.c_shipped"
-+
-+#define YY_INT_ALIGNED short int
-+
-+/* A lexical scanner generated by flex */
-+
-+#define yy_create_buffer zconf_create_buffer
-+#define yy_delete_buffer zconf_delete_buffer
-+#define yy_flex_debug zconf_flex_debug
-+#define yy_init_buffer zconf_init_buffer
-+#define yy_flush_buffer zconf_flush_buffer
-+#define yy_load_buffer_state zconf_load_buffer_state
-+#define yy_switch_to_buffer zconf_switch_to_buffer
-+#define yyin zconfin
-+#define yyleng zconfleng
-+#define yylex zconflex
-+#define yylineno zconflineno
-+#define yyout zconfout
-+#define yyrestart zconfrestart
-+#define yytext zconftext
-+#define yywrap zconfwrap
-+#define yyalloc zconfalloc
-+#define yyrealloc zconfrealloc
-+#define yyfree zconffree
-+
-+#define FLEX_SCANNER
-+#define YY_FLEX_MAJOR_VERSION 2
-+#define YY_FLEX_MINOR_VERSION 5
-+#define YY_FLEX_SUBMINOR_VERSION 35
-+#if YY_FLEX_SUBMINOR_VERSION > 0
-+#define FLEX_BETA
-+#endif
-+
-+/* First, we deal with platform-specific or compiler-specific issues. */
-+
-+/* begin standard C headers. */
-+#include <stdio.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <stdlib.h>
-+
-+/* end standard C headers. */
-+
-+/* flex integer type definitions */
-+
-+#ifndef FLEXINT_H
-+#define FLEXINT_H
-+
-+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-+
-+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-+
-+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
-+ * if you want the limit (max/min) macros for int types.
-+ */
-+#ifndef __STDC_LIMIT_MACROS
-+#define __STDC_LIMIT_MACROS 1
-+#endif
-+
-+#include <inttypes.h>
-+typedef int8_t flex_int8_t;
-+typedef uint8_t flex_uint8_t;
-+typedef int16_t flex_int16_t;
-+typedef uint16_t flex_uint16_t;
-+typedef int32_t flex_int32_t;
-+typedef uint32_t flex_uint32_t;
-+#else
-+typedef signed char flex_int8_t;
-+typedef short int flex_int16_t;
-+typedef int flex_int32_t;
-+typedef unsigned char flex_uint8_t;
-+typedef unsigned short int flex_uint16_t;
-+typedef unsigned int flex_uint32_t;
-+#endif /* ! C99 */
-+
-+/* Limits of integral types. */
-+#ifndef INT8_MIN
-+#define INT8_MIN (-128)
-+#endif
-+#ifndef INT16_MIN
-+#define INT16_MIN (-32767-1)
-+#endif
-+#ifndef INT32_MIN
-+#define INT32_MIN (-2147483647-1)
-+#endif
-+#ifndef INT8_MAX
-+#define INT8_MAX (127)
-+#endif
-+#ifndef INT16_MAX
-+#define INT16_MAX (32767)
-+#endif
-+#ifndef INT32_MAX
-+#define INT32_MAX (2147483647)
-+#endif
-+#ifndef UINT8_MAX
-+#define UINT8_MAX (255U)
-+#endif
-+#ifndef UINT16_MAX
-+#define UINT16_MAX (65535U)
-+#endif
-+#ifndef UINT32_MAX
-+#define UINT32_MAX (4294967295U)
-+#endif
-+
-+#endif /* ! FLEXINT_H */
-+
-+#ifdef __cplusplus
-+
-+/* The "const" storage-class-modifier is valid. */
-+#define YY_USE_CONST
-+
-+#else /* ! __cplusplus */
-+
-+/* C99 requires __STDC__ to be defined as 1. */
-+#if defined (__STDC__)
-+
-+#define YY_USE_CONST
-+
-+#endif /* defined (__STDC__) */
-+#endif /* ! __cplusplus */
-+
-+#ifdef YY_USE_CONST
-+#define yyconst const
-+#else
-+#define yyconst
-+#endif
-+
-+/* Returned upon end-of-file. */
-+#define YY_NULL 0
-+
-+/* Promotes a possibly negative, possibly signed char to an unsigned
-+ * integer for use as an array index. If the signed char is negative,
-+ * we want to instead treat it as an 8-bit unsigned char, hence the
-+ * double cast.
-+ */
-+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-+
-+/* Enter a start condition. This macro really ought to take a parameter,
-+ * but we do it the disgusting crufty way forced on us by the ()-less
-+ * definition of BEGIN.
-+ */
-+#define BEGIN (yy_start) = 1 + 2 *
-+
-+/* Translate the current start state into a value that can be later handed
-+ * to BEGIN to return to the state. The YYSTATE alias is for lex
-+ * compatibility.
-+ */
-+#define YY_START (((yy_start) - 1) / 2)
-+#define YYSTATE YY_START
-+
-+/* Action number for EOF rule of a given start state. */
-+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-+
-+/* Special action meaning "start processing a new file". */
-+#define YY_NEW_FILE zconfrestart(zconfin )
-+
-+#define YY_END_OF_BUFFER_CHAR 0
-+
-+/* Size of default input buffer. */
-+#ifndef YY_BUF_SIZE
-+#define YY_BUF_SIZE 16384
-+#endif
-+
-+/* The state buf must be large enough to hold one state per character in the main buffer.
-+ */
-+#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-+
-+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-+#define YY_TYPEDEF_YY_BUFFER_STATE
-+typedef struct yy_buffer_state *YY_BUFFER_STATE;
-+#endif
-+
-+extern int zconfleng;
-+
-+extern FILE *zconfin, *zconfout;
-+
-+#define EOB_ACT_CONTINUE_SCAN 0
-+#define EOB_ACT_END_OF_FILE 1
-+#define EOB_ACT_LAST_MATCH 2
-+
-+ #define YY_LESS_LINENO(n)
-+
-+/* Return all but the first "n" matched characters back to the input stream. */
-+#define yyless(n) \
-+ do \
-+ { \
-+ /* Undo effects of setting up zconftext. */ \
-+ int yyless_macro_arg = (n); \
-+ YY_LESS_LINENO(yyless_macro_arg);\
-+ *yy_cp = (yy_hold_char); \
-+ YY_RESTORE_YY_MORE_OFFSET \
-+ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-+ YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
-+ } \
-+ while ( 0 )
-+
-+#define unput(c) yyunput( c, (yytext_ptr) )
-+
-+#ifndef YY_TYPEDEF_YY_SIZE_T
-+#define YY_TYPEDEF_YY_SIZE_T
-+typedef size_t yy_size_t;
-+#endif
-+
-+#ifndef YY_STRUCT_YY_BUFFER_STATE
-+#define YY_STRUCT_YY_BUFFER_STATE
-+struct yy_buffer_state
-+ {
-+ FILE *yy_input_file;
-+
-+ char *yy_ch_buf; /* input buffer */
-+ char *yy_buf_pos; /* current position in input buffer */
-+
-+ /* Size of input buffer in bytes, not including room for EOB
-+ * characters.
-+ */
-+ yy_size_t yy_buf_size;
-+
-+ /* Number of characters read into yy_ch_buf, not including EOB
-+ * characters.
-+ */
-+ int yy_n_chars;
-+
-+ /* Whether we "own" the buffer - i.e., we know we created it,
-+ * and can realloc() it to grow it, and should free() it to
-+ * delete it.
-+ */
-+ int yy_is_our_buffer;
-+
-+ /* Whether this is an "interactive" input source; if so, and
-+ * if we're using stdio for input, then we want to use getc()
-+ * instead of fread(), to make sure we stop fetching input after
-+ * each newline.
-+ */
-+ int yy_is_interactive;
-+
-+ /* Whether we're considered to be at the beginning of a line.
-+ * If so, '^' rules will be active on the next match, otherwise
-+ * not.
-+ */
-+ int yy_at_bol;
-+
-+ int yy_bs_lineno; /**< The line count. */
-+ int yy_bs_column; /**< The column count. */
-+
-+ /* Whether to try to fill the input buffer when we reach the
-+ * end of it.
-+ */
-+ int yy_fill_buffer;
-+
-+ int yy_buffer_status;
-+
-+#define YY_BUFFER_NEW 0
-+#define YY_BUFFER_NORMAL 1
-+ /* When an EOF's been seen but there's still some text to process
-+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-+ * shouldn't try reading from the input source any more. We might
-+ * still have a bunch of tokens to match, though, because of
-+ * possible backing-up.
-+ *
-+ * When we actually see the EOF, we change the status to "new"
-+ * (via zconfrestart()), so that the user can continue scanning by
-+ * just pointing zconfin at a new input file.
-+ */
-+#define YY_BUFFER_EOF_PENDING 2
-+
-+ };
-+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-+
-+/* Stack of input buffers. */
-+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-+
-+/* We provide macros for accessing buffer states in case in the
-+ * future we want to put the buffer states in a more general
-+ * "scanner state".
-+ *
-+ * Returns the top of the stack, or NULL.
-+ */
-+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-+ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-+ : NULL)
-+
-+/* Same as previous macro, but useful when we know that the buffer stack is not
-+ * NULL or when we need an lvalue. For internal use only.
-+ */
-+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-+
-+/* yy_hold_char holds the character lost when zconftext is formed. */
-+static char yy_hold_char;
-+static int yy_n_chars; /* number of characters read into yy_ch_buf */
-+int zconfleng;
-+
-+/* Points to current character in buffer. */
-+static char *yy_c_buf_p = (char *) 0;
-+static int yy_init = 0; /* whether we need to initialize */
-+static int yy_start = 0; /* start state number */
-+
-+/* Flag which is used to allow zconfwrap()'s to do buffer switches
-+ * instead of setting up a fresh zconfin. A bit of a hack ...
-+ */
-+static int yy_did_buffer_switch_on_eof;
-+
-+void zconfrestart (FILE *input_file );
-+void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer );
-+YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size );
-+void zconf_delete_buffer (YY_BUFFER_STATE b );
-+void zconf_flush_buffer (YY_BUFFER_STATE b );
-+void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer );
-+void zconfpop_buffer_state (void );
-+
-+static void zconfensure_buffer_stack (void );
-+static void zconf_load_buffer_state (void );
-+static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file );
-+
-+#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
-+
-+YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size );
-+YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str );
-+YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len );
-+
-+void *zconfalloc (yy_size_t );
-+void *zconfrealloc (void *,yy_size_t );
-+void zconffree (void * );
-+
-+#define yy_new_buffer zconf_create_buffer
-+
-+#define yy_set_interactive(is_interactive) \
-+ { \
-+ if ( ! YY_CURRENT_BUFFER ){ \
-+ zconfensure_buffer_stack (); \
-+ YY_CURRENT_BUFFER_LVALUE = \
-+ zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-+ } \
-+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-+ }
-+
-+#define yy_set_bol(at_bol) \
-+ { \
-+ if ( ! YY_CURRENT_BUFFER ){\
-+ zconfensure_buffer_stack (); \
-+ YY_CURRENT_BUFFER_LVALUE = \
-+ zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
-+ } \
-+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-+ }
-+
-+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-+
-+/* Begin user sect3 */
-+
-+#define zconfwrap(n) 1
-+#define YY_SKIP_YYWRAP
-+
-+typedef unsigned char YY_CHAR;
-+
-+FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
-+
-+typedef int yy_state_type;
-+
-+extern int zconflineno;
-+
-+int zconflineno = 1;
-+
-+extern char *zconftext;
-+#define yytext_ptr zconftext
-+static yyconst flex_int16_t yy_nxt[][17] =
-+ {
-+ {
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-+ 0, 0, 0, 0, 0, 0, 0
-+ },
-+
-+ {
-+ 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
-+ 12, 12, 12, 12, 12, 12, 12
-+ },
-+
-+ {
-+ 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
-+ 12, 12, 12, 12, 12, 12, 12
-+ },
-+
-+ {
-+ 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
-+ 16, 16, 16, 18, 16, 16, 16
-+ },
-+
-+ {
-+ 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
-+ 16, 16, 16, 18, 16, 16, 16
-+
-+ },
-+
-+ {
-+ 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
-+ 19, 19, 19, 19, 19, 19, 19
-+ },
-+
-+ {
-+ 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
-+ 19, 19, 19, 19, 19, 19, 19
-+ },
-+
-+ {
-+ 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
-+ 22, 22, 22, 22, 22, 25, 22
-+ },
-+
-+ {
-+ 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
-+ 22, 22, 22, 22, 22, 25, 22
-+ },
-+
-+ {
-+ 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
-+ 33, 34, 35, 35, 36, 37, 38
-+
-+ },
-+
-+ {
-+ 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
-+ 33, 34, 35, 35, 36, 37, 38
-+ },
-+
-+ {
-+ -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-+ -11, -11, -11, -11, -11, -11, -11
-+ },
-+
-+ {
-+ 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-+ -12, -12, -12, -12, -12, -12, -12
-+ },
-+
-+ {
-+ 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
-+ -13, -13, -13, -13, -13, -13, -13
-+ },
-+
-+ {
-+ 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-+ -14, -14, -14, -14, -14, -14, -14
-+
-+ },
-+
-+ {
-+ 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-+ 42, 42, 42, 42, 42, 42, 42
-+ },
-+
-+ {
-+ 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-+ -16, -16, -16, -16, -16, -16, -16
-+ },
-+
-+ {
-+ 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-+ -17, -17, -17, -17, -17, -17, -17
-+ },
-+
-+ {
-+ 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-+ -18, -18, -18, 44, -18, -18, -18
-+ },
-+
-+ {
-+ 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
-+ 45, 45, 45, 45, 45, 45, 45
-+
-+ },
-+
-+ {
-+ 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
-+ -20, -20, -20, -20, -20, -20, -20
-+ },
-+
-+ {
-+ 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
-+ 48, 48, 48, 48, 48, 48, 48
-+ },
-+
-+ {
-+ 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
-+ 49, 49, 49, 49, 49, -22, 49
-+ },
-+
-+ {
-+ 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-+ -23, -23, -23, -23, -23, -23, -23
-+ },
-+
-+ {
-+ 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-+ -24, -24, -24, -24, -24, -24, -24
-+
-+ },
-+
-+ {
-+ 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
-+ 51, 51, 51, 51, 51, 51, 51
-+ },
-+
-+ {
-+ 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-+ -26, -26, -26, -26, -26, -26, -26
-+ },
-+
-+ {
-+ 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-+ -27, -27, -27, -27, -27, -27, -27
-+ },
-+
-+ {
-+ 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-+ -28, -28, -28, -28, 53, -28, -28
-+ },
-+
-+ {
-+ 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-+ -29, -29, -29, -29, -29, -29, -29
-+
-+ },
-+
-+ {
-+ 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
-+ 54, 54, 54, 54, 54, 54, 54
-+ },
-+
-+ {
-+ 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
-+ -31, -31, -31, -31, -31, -31, -31
-+ },
-+
-+ {
-+ 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-+ -32, -32, -32, -32, -32, -32, -32
-+ },
-+
-+ {
-+ 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-+ -33, -33, -33, -33, -33, -33, -33
-+ },
-+
-+ {
-+ 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-+ -34, 56, 57, 57, -34, -34, -34
-+
-+ },
-+
-+ {
-+ 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-+ -35, 57, 57, 57, -35, -35, -35
-+ },
-+
-+ {
-+ 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-+ -36, -36, -36, -36, -36, -36, -36
-+ },
-+
-+ {
-+ 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
-+ -37, -37, -37, -37, -37, -37, -37
-+ },
-+
-+ {
-+ 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-+ -38, -38, -38, -38, -38, -38, 59
-+ },
-+
-+ {
-+ 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
-+ -39, -39, -39, -39, -39, -39, -39
-+
-+ },
-+
-+ {
-+ 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-+ -40, -40, -40, -40, -40, -40, -40
-+ },
-+
-+ {
-+ 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-+ 42, 42, 42, 42, 42, 42, 42
-+ },
-+
-+ {
-+ 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
-+ 42, 42, 42, 42, 42, 42, 42
-+ },
-+
-+ {
-+ 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-+ -43, -43, -43, -43, -43, -43, -43
-+ },
-+
-+ {
-+ 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-+ -44, -44, -44, 44, -44, -44, -44
-+
-+ },
-+
-+ {
-+ 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
-+ 45, 45, 45, 45, 45, 45, 45
-+ },
-+
-+ {
-+ 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
-+ -46, -46, -46, -46, -46, -46, -46
-+ },
-+
-+ {
-+ 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
-+ 48, 48, 48, 48, 48, 48, 48
-+ },
-+
-+ {
-+ 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-+ -48, -48, -48, -48, -48, -48, -48
-+ },
-+
-+ {
-+ 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
-+ 49, 49, 49, 49, 49, -49, 49
-+
-+ },
-+
-+ {
-+ 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-+ -50, -50, -50, -50, -50, -50, -50
-+ },
-+
-+ {
-+ 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
-+ -51, -51, -51, -51, -51, -51, -51
-+ },
-+
-+ {
-+ 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-+ -52, -52, -52, -52, -52, -52, -52
-+ },
-+
-+ {
-+ 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-+ -53, -53, -53, -53, -53, -53, -53
-+ },
-+
-+ {
-+ 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
-+ 54, 54, 54, 54, 54, 54, 54
-+
-+ },
-+
-+ {
-+ 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-+ -55, -55, -55, -55, -55, -55, -55
-+ },
-+
-+ {
-+ 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-+ -56, 60, 57, 57, -56, -56, -56
-+ },
-+
-+ {
-+ 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-+ -57, 57, 57, 57, -57, -57, -57
-+ },
-+
-+ {
-+ 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-+ -58, -58, -58, -58, -58, -58, -58
-+ },
-+
-+ {
-+ 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-+ -59, -59, -59, -59, -59, -59, -59
-+
-+ },
-+
-+ {
-+ 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-+ -60, 57, 57, 57, -60, -60, -60
-+ },
-+
-+ } ;
-+
-+static yy_state_type yy_get_previous_state (void );
-+static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
-+static int yy_get_next_buffer (void );
-+static void yy_fatal_error (yyconst char msg[] );
-+
-+/* Done after the current pattern has been matched and before the
-+ * corresponding action - sets up zconftext.
-+ */
-+#define YY_DO_BEFORE_ACTION \
-+ (yytext_ptr) = yy_bp; \
-+ zconfleng = (size_t) (yy_cp - yy_bp); \
-+ (yy_hold_char) = *yy_cp; \
-+ *yy_cp = '\0'; \
-+ (yy_c_buf_p) = yy_cp;
-+
-+#define YY_NUM_RULES 33
-+#define YY_END_OF_BUFFER 34
-+/* This struct is not used in this scanner,
-+ but its presence is necessary. */
-+struct yy_trans_info
-+ {
-+ flex_int32_t yy_verify;
-+ flex_int32_t yy_nxt;
-+ };
-+static yyconst flex_int16_t yy_accept[61] =
-+ { 0,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-+ 34, 5, 4, 2, 3, 7, 8, 6, 32, 29,
-+ 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
-+ 22, 11, 12, 19, 19, 14, 22, 22, 4, 2,
-+ 3, 3, 1, 6, 32, 29, 31, 30, 24, 23,
-+ 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
-+ } ;
-+
-+static yyconst flex_int32_t yy_ec[256] =
-+ { 0,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
-+ 10, 1, 1, 1, 11, 12, 12, 13, 13, 13,
-+ 13, 13, 13, 13, 13, 13, 13, 1, 1, 1,
-+ 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
-+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-+ 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
-+
-+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-+ 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1
-+ } ;
-+
-+extern int zconf_flex_debug;
-+int zconf_flex_debug = 0;
-+
-+/* The intent behind this definition is that it'll catch
-+ * any uses of REJECT which flex missed.
-+ */
-+#define REJECT reject_used_but_not_detected
-+#define yymore() yymore_used_but_not_detected
-+#define YY_MORE_ADJ 0
-+#define YY_RESTORE_YY_MORE_OFFSET
-+char *zconftext;
-+#define YY_NO_INPUT 1
-+
-+/*
-+ * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
-+ * Released under the terms of the GNU GPL v2.0.
-+ */
-+
-+#include <limits.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include "lkc.h"
-+
-+#define START_STRSIZE 16
-+
-+static struct {
-+ struct file *file;
-+ int lineno;
-+} current_pos;
-+
-+static char *text;
-+static int text_size, text_asize;
-+
-+struct buffer {
-+ struct buffer *parent;
-+ YY_BUFFER_STATE state;
-+};
-+
-+struct buffer *current_buf;
-+
-+static int last_ts, first_ts;
-+
-+static void zconf_endhelp(void);
-+static void zconf_endfile(void);
-+
-+static void new_string(void)
-+{
-+ text = xmalloc(START_STRSIZE);
-+ text_asize = START_STRSIZE;
-+ text_size = 0;
-+ *text = 0;
-+}
-+
-+static void append_string(const char *str, int size)
-+{
-+ int new_size = text_size + size + 1;
-+ if (new_size > text_asize) {
-+ new_size += START_STRSIZE - 1;
-+ new_size &= -START_STRSIZE;
-+ text = realloc(text, new_size);
-+ text_asize = new_size;
-+ }
-+ memcpy(text + text_size, str, size);
-+ text_size += size;
-+ text[text_size] = 0;
-+}
-+
-+static void alloc_string(const char *str, int size)
-+{
-+ text = xmalloc(size + 1);
-+ memcpy(text, str, size);
-+ text[size] = 0;
-+}
-+
-+#define INITIAL 0
-+#define COMMAND 1
-+#define HELP 2
-+#define STRING 3
-+#define PARAM 4
-+
-+#ifndef YY_NO_UNISTD_H
-+/* Special case for "unistd.h", since it is non-ANSI. We include it way
-+ * down here because we want the user's section 1 to have been scanned first.
-+ * The user has a chance to override it with an option.
-+ */
-+#include <unistd.h>
-+#endif
-+
-+#ifndef YY_EXTRA_TYPE
-+#define YY_EXTRA_TYPE void *
-+#endif
-+
-+static int yy_init_globals (void );
-+
-+/* Accessor methods to globals.
-+ These are made visible to non-reentrant scanners for convenience. */
-+
-+int zconflex_destroy (void );
-+
-+int zconfget_debug (void );
-+
-+void zconfset_debug (int debug_flag );
-+
-+YY_EXTRA_TYPE zconfget_extra (void );
-+
-+void zconfset_extra (YY_EXTRA_TYPE user_defined );
-+
-+FILE *zconfget_in (void );
-+
-+void zconfset_in (FILE * in_str );
-+
-+FILE *zconfget_out (void );
-+
-+void zconfset_out (FILE * out_str );
-+
-+int zconfget_leng (void );
-+
-+char *zconfget_text (void );
-+
-+int zconfget_lineno (void );
-+
-+void zconfset_lineno (int line_number );
-+
-+/* Macros after this point can all be overridden by user definitions in
-+ * section 1.
-+ */
-+
-+#ifndef YY_SKIP_YYWRAP
-+#ifdef __cplusplus
-+extern "C" int zconfwrap (void );
-+#else
-+extern int zconfwrap (void );
-+#endif
-+#endif
-+
-+ static void yyunput (int c,char *buf_ptr );
-+
-+#ifndef yytext_ptr
-+static void yy_flex_strncpy (char *,yyconst char *,int );
-+#endif
-+
-+#ifdef YY_NEED_STRLEN
-+static int yy_flex_strlen (yyconst char * );
-+#endif
-+
-+#ifndef YY_NO_INPUT
-+
-+#ifdef __cplusplus
-+static int yyinput (void );
-+#else
-+static int input (void );
-+#endif
-+
-+#endif
-+
-+/* Amount of stuff to slurp up with each read. */
-+#ifndef YY_READ_BUF_SIZE
-+#define YY_READ_BUF_SIZE 8192
-+#endif
-+
-+/* Copy whatever the last rule matched to the standard output. */
-+#ifndef ECHO
-+/* This used to be an fputs(), but since the string might contain NUL's,
-+ * we now use fwrite().
-+ */
-+#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0)
-+#endif
-+
-+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
-+ * is returned in "result".
-+ */
-+#ifndef YY_INPUT
-+#define YY_INPUT(buf,result,max_size) \
-+ errno=0; \
-+ while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
-+ { \
-+ if( errno != EINTR) \
-+ { \
-+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
-+ break; \
-+ } \
-+ errno=0; \
-+ clearerr(zconfin); \
-+ }\
-+\
-+
-+#endif
-+
-+/* No semi-colon after return; correct usage is to write "yyterminate();" -
-+ * we don't want an extra ';' after the "return" because that will cause
-+ * some compilers to complain about unreachable statements.
-+ */
-+#ifndef yyterminate
-+#define yyterminate() return YY_NULL
-+#endif
-+
-+/* Number of entries by which start-condition stack grows. */
-+#ifndef YY_START_STACK_INCR
-+#define YY_START_STACK_INCR 25
-+#endif
-+
-+/* Report a fatal error. */
-+#ifndef YY_FATAL_ERROR
-+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-+#endif
-+
-+/* end tables serialization structures and prototypes */
-+
-+/* Default declaration of generated scanner - a define so the user can
-+ * easily add parameters.
-+ */
-+#ifndef YY_DECL
-+#define YY_DECL_IS_OURS 1
-+
-+extern int zconflex (void);
-+
-+#define YY_DECL int zconflex (void)
-+#endif /* !YY_DECL */
-+
-+/* Code executed at the beginning of each rule, after zconftext and zconfleng
-+ * have been set up.
-+ */
-+#ifndef YY_USER_ACTION
-+#define YY_USER_ACTION
-+#endif
-+
-+/* Code executed at the end of each rule. */
-+#ifndef YY_BREAK
-+#define YY_BREAK break;
-+#endif
-+
-+#define YY_RULE_SETUP \
-+ YY_USER_ACTION
-+
-+/** The main scanner function which does all the work.
-+ */
-+YY_DECL
-+{
-+ register yy_state_type yy_current_state;
-+ register char *yy_cp, *yy_bp;
-+ register int yy_act;
-+
-+ int str = 0;
-+ int ts, i;
-+
-+ if ( !(yy_init) )
-+ {
-+ (yy_init) = 1;
-+
-+#ifdef YY_USER_INIT
-+ YY_USER_INIT;
-+#endif
-+
-+ if ( ! (yy_start) )
-+ (yy_start) = 1; /* first start state */
-+
-+ if ( ! zconfin )
-+ zconfin = stdin;
-+
-+ if ( ! zconfout )
-+ zconfout = stdout;
-+
-+ if ( ! YY_CURRENT_BUFFER ) {
-+ zconfensure_buffer_stack ();
-+ YY_CURRENT_BUFFER_LVALUE =
-+ zconf_create_buffer(zconfin,YY_BUF_SIZE );
-+ }
-+
-+ zconf_load_buffer_state( );
-+ }
-+
-+ while ( 1 ) /* loops until end-of-file is reached */
-+ {
-+ yy_cp = (yy_c_buf_p);
-+
-+ /* Support of zconftext. */
-+ *yy_cp = (yy_hold_char);
-+
-+ /* yy_bp points to the position in yy_ch_buf of the start of
-+ * the current run.
-+ */
-+ yy_bp = yy_cp;
-+
-+ yy_current_state = (yy_start);
-+yy_match:
-+ while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
-+ ++yy_cp;
-+
-+ yy_current_state = -yy_current_state;
-+
-+yy_find_action:
-+ yy_act = yy_accept[yy_current_state];
-+
-+ YY_DO_BEFORE_ACTION;
-+
-+do_action: /* This label is used only to access EOF actions. */
-+
-+ switch ( yy_act )
-+ { /* beginning of action switch */
-+case 1:
-+/* rule 1 can match eol */
-+case 2:
-+/* rule 2 can match eol */
-+YY_RULE_SETUP
-+{
-+ current_file->lineno++;
-+ return T_EOL;
-+}
-+ YY_BREAK
-+case 3:
-+YY_RULE_SETUP
-+
-+ YY_BREAK
-+case 4:
-+YY_RULE_SETUP
-+{
-+ BEGIN(COMMAND);
-+}
-+ YY_BREAK
-+case 5:
-+YY_RULE_SETUP
-+{
-+ unput(zconftext[0]);
-+ BEGIN(COMMAND);
-+}
-+ YY_BREAK
-+
-+case 6:
-+YY_RULE_SETUP
-+{
-+ const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
-+ BEGIN(PARAM);
-+ current_pos.file = current_file;
-+ current_pos.lineno = current_file->lineno;
-+ if (id && id->flags & TF_COMMAND) {
-+ zconflval.id = id;
-+ return id->token;
-+ }
-+ alloc_string(zconftext, zconfleng);
-+ zconflval.string = text;
-+ return T_WORD;
-+ }
-+ YY_BREAK
-+case 7:
-+YY_RULE_SETUP
-+
-+ YY_BREAK
-+case 8:
-+/* rule 8 can match eol */
-+YY_RULE_SETUP
-+{
-+ BEGIN(INITIAL);
-+ current_file->lineno++;
-+ return T_EOL;
-+ }
-+ YY_BREAK
-+
-+case 9:
-+YY_RULE_SETUP
-+return T_AND;
-+ YY_BREAK
-+case 10:
-+YY_RULE_SETUP
-+return T_OR;
-+ YY_BREAK
-+case 11:
-+YY_RULE_SETUP
-+return T_OPEN_PAREN;
-+ YY_BREAK
-+case 12:
-+YY_RULE_SETUP
-+return T_CLOSE_PAREN;
-+ YY_BREAK
-+case 13:
-+YY_RULE_SETUP
-+return T_NOT;
-+ YY_BREAK
-+case 14:
-+YY_RULE_SETUP
-+return T_EQUAL;
-+ YY_BREAK
-+case 15:
-+YY_RULE_SETUP
-+return T_UNEQUAL;
-+ YY_BREAK
-+case 16:
-+YY_RULE_SETUP
-+{
-+ str = zconftext[0];
-+ new_string();
-+ BEGIN(STRING);
-+ }
-+ YY_BREAK
-+case 17:
-+/* rule 17 can match eol */
-+YY_RULE_SETUP
-+BEGIN(INITIAL); current_file->lineno++; return T_EOL;
-+ YY_BREAK
-+case 18:
-+YY_RULE_SETUP
-+/* ignore */
-+ YY_BREAK
-+case 19:
-+YY_RULE_SETUP
-+{
-+ const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
-+ if (id && id->flags & TF_PARAM) {
-+ zconflval.id = id;
-+ return id->token;
-+ }
-+ alloc_string(zconftext, zconfleng);
-+ zconflval.string = text;
-+ return T_WORD;
-+ }
-+ YY_BREAK
-+case 20:
-+YY_RULE_SETUP
-+/* comment */
-+ YY_BREAK
-+case 21:
-+/* rule 21 can match eol */
-+YY_RULE_SETUP
-+current_file->lineno++;
-+ YY_BREAK
-+case 22:
-+YY_RULE_SETUP
-+
-+ YY_BREAK
-+case YY_STATE_EOF(PARAM):
-+{
-+ BEGIN(INITIAL);
-+ }
-+ YY_BREAK
-+
-+case 23:
-+/* rule 23 can match eol */
-+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-+(yy_c_buf_p) = yy_cp -= 1;
-+YY_DO_BEFORE_ACTION; /* set up zconftext again */
-+YY_RULE_SETUP
-+{
-+ append_string(zconftext, zconfleng);
-+ zconflval.string = text;
-+ return T_WORD_QUOTE;
-+ }
-+ YY_BREAK
-+case 24:
-+YY_RULE_SETUP
-+{
-+ append_string(zconftext, zconfleng);
-+ }
-+ YY_BREAK
-+case 25:
-+/* rule 25 can match eol */
-+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-+(yy_c_buf_p) = yy_cp -= 1;
-+YY_DO_BEFORE_ACTION; /* set up zconftext again */
-+YY_RULE_SETUP
-+{
-+ append_string(zconftext + 1, zconfleng - 1);
-+ zconflval.string = text;
-+ return T_WORD_QUOTE;
-+ }
-+ YY_BREAK
-+case 26:
-+YY_RULE_SETUP
-+{
-+ append_string(zconftext + 1, zconfleng - 1);
-+ }
-+ YY_BREAK
-+case 27:
-+YY_RULE_SETUP
-+{
-+ if (str == zconftext[0]) {
-+ BEGIN(PARAM);
-+ zconflval.string = text;
-+ return T_WORD_QUOTE;
-+ } else
-+ append_string(zconftext, 1);
-+ }
-+ YY_BREAK
-+case 28:
-+/* rule 28 can match eol */
-+YY_RULE_SETUP
-+{
-+ printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
-+ current_file->lineno++;
-+ BEGIN(INITIAL);
-+ return T_EOL;
-+ }
-+ YY_BREAK
-+case YY_STATE_EOF(STRING):
-+{
-+ BEGIN(INITIAL);
-+ }
-+ YY_BREAK
-+
-+case 29:
-+YY_RULE_SETUP
-+{
-+ ts = 0;
-+ for (i = 0; i < zconfleng; i++) {
-+ if (zconftext[i] == '\t')
-+ ts = (ts & ~7) + 8;
-+ else
-+ ts++;
-+ }
-+ last_ts = ts;
-+ if (first_ts) {
-+ if (ts < first_ts) {
-+ zconf_endhelp();
-+ return T_HELPTEXT;
-+ }
-+ ts -= first_ts;
-+ while (ts > 8) {
-+ append_string(" ", 8);
-+ ts -= 8;
-+ }
-+ append_string(" ", ts);
-+ }
-+ }
-+ YY_BREAK
-+case 30:
-+/* rule 30 can match eol */
-+*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
-+(yy_c_buf_p) = yy_cp -= 1;
-+YY_DO_BEFORE_ACTION; /* set up zconftext again */
-+YY_RULE_SETUP
-+{
-+ current_file->lineno++;
-+ zconf_endhelp();
-+ return T_HELPTEXT;
-+ }
-+ YY_BREAK
-+case 31:
-+/* rule 31 can match eol */
-+YY_RULE_SETUP
-+{
-+ current_file->lineno++;
-+ append_string("\n", 1);
-+ }
-+ YY_BREAK
-+case 32:
-+YY_RULE_SETUP
-+{
-+ while (zconfleng) {
-+ if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
-+ break;
-+ zconfleng--;
-+ }
-+ append_string(zconftext, zconfleng);
-+ if (!first_ts)
-+ first_ts = last_ts;
-+ }
-+ YY_BREAK
-+case YY_STATE_EOF(HELP):
-+{
-+ zconf_endhelp();
-+ return T_HELPTEXT;
-+ }
-+ YY_BREAK
-+
-+case YY_STATE_EOF(INITIAL):
-+case YY_STATE_EOF(COMMAND):
-+{
-+ if (current_file) {
-+ zconf_endfile();
-+ return T_EOL;
-+ }
-+ fclose(zconfin);
-+ yyterminate();
-+}
-+ YY_BREAK
-+case 33:
-+YY_RULE_SETUP
-+YY_FATAL_ERROR( "flex scanner jammed" );
-+ YY_BREAK
-+
-+ case YY_END_OF_BUFFER:
-+ {
-+ /* Amount of text matched not including the EOB char. */
-+ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-+
-+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
-+ *yy_cp = (yy_hold_char);
-+ YY_RESTORE_YY_MORE_OFFSET
-+
-+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-+ {
-+ /* We're scanning a new file or input source. It's
-+ * possible that this happened because the user
-+ * just pointed zconfin at a new source and called
-+ * zconflex(). If so, then we have to assure
-+ * consistency between YY_CURRENT_BUFFER and our
-+ * globals. Here is the right place to do so, because
-+ * this is the first action (other than possibly a
-+ * back-up) that will match for the new input source.
-+ */
-+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
-+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-+ }
-+
-+ /* Note that here we test for yy_c_buf_p "<=" to the position
-+ * of the first EOB in the buffer, since yy_c_buf_p will
-+ * already have been incremented past the NUL character
-+ * (since all states make transitions on EOB to the
-+ * end-of-buffer state). Contrast this with the test
-+ * in input().
-+ */
-+ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-+ { /* This was really a NUL. */
-+ yy_state_type yy_next_state;
-+
-+ (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-+
-+ yy_current_state = yy_get_previous_state( );
-+
-+ /* Okay, we're now positioned to make the NUL
-+ * transition. We couldn't have
-+ * yy_get_previous_state() go ahead and do it
-+ * for us because it doesn't know how to deal
-+ * with the possibility of jamming (and we don't
-+ * want to build jamming into it because then it
-+ * will run more slowly).
-+ */
-+
-+ yy_next_state = yy_try_NUL_trans( yy_current_state );
-+
-+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-+
-+ if ( yy_next_state )
-+ {
-+ /* Consume the NUL. */
-+ yy_cp = ++(yy_c_buf_p);
-+ yy_current_state = yy_next_state;
-+ goto yy_match;
-+ }
-+
-+ else
-+ {
-+ yy_cp = (yy_c_buf_p);
-+ goto yy_find_action;
-+ }
-+ }
-+
-+ else switch ( yy_get_next_buffer( ) )
-+ {
-+ case EOB_ACT_END_OF_FILE:
-+ {
-+ (yy_did_buffer_switch_on_eof) = 0;
-+
-+ if ( zconfwrap( ) )
-+ {
-+ /* Note: because we've taken care in
-+ * yy_get_next_buffer() to have set up
-+ * zconftext, we can now set up
-+ * yy_c_buf_p so that if some total
-+ * hoser (like flex itself) wants to
-+ * call the scanner after we return the
-+ * YY_NULL, it'll still work - another
-+ * YY_NULL will get returned.
-+ */
-+ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-+
-+ yy_act = YY_STATE_EOF(YY_START);
-+ goto do_action;
-+ }
-+
-+ else
-+ {
-+ if ( ! (yy_did_buffer_switch_on_eof) )
-+ YY_NEW_FILE;
-+ }
-+ break;
-+ }
-+
-+ case EOB_ACT_CONTINUE_SCAN:
-+ (yy_c_buf_p) =
-+ (yytext_ptr) + yy_amount_of_matched_text;
-+
-+ yy_current_state = yy_get_previous_state( );
-+
-+ yy_cp = (yy_c_buf_p);
-+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-+ goto yy_match;
-+
-+ case EOB_ACT_LAST_MATCH:
-+ (yy_c_buf_p) =
-+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-+
-+ yy_current_state = yy_get_previous_state( );
-+
-+ yy_cp = (yy_c_buf_p);
-+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-+ goto yy_find_action;
-+ }
-+ break;
-+ }
-+
-+ default:
-+ YY_FATAL_ERROR(
-+ "fatal flex scanner internal error--no action found" );
-+ } /* end of action switch */
-+ } /* end of scanning one token */
-+} /* end of zconflex */
-+
-+/* yy_get_next_buffer - try to read in a new buffer
-+ *
-+ * Returns a code representing an action:
-+ * EOB_ACT_LAST_MATCH -
-+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
-+ * EOB_ACT_END_OF_FILE - end of file
-+ */
-+static int yy_get_next_buffer (void)
-+{
-+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-+ register char *source = (yytext_ptr);
-+ register int number_to_move, i;
-+ int ret_val;
-+
-+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-+ YY_FATAL_ERROR(
-+ "fatal flex scanner internal error--end of buffer missed" );
-+
-+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-+ { /* Don't try to fill the buffer, so this is an EOF. */
-+ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-+ {
-+ /* We matched a single character, the EOB, so
-+ * treat this as a final EOF.
-+ */
-+ return EOB_ACT_END_OF_FILE;
-+ }
-+
-+ else
-+ {
-+ /* We matched some text prior to the EOB, first
-+ * process it.
-+ */
-+ return EOB_ACT_LAST_MATCH;
-+ }
-+ }
-+
-+ /* Try to read more data. */
-+
-+ /* First move last chars to start of buffer. */
-+ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-+
-+ for ( i = 0; i < number_to_move; ++i )
-+ *(dest++) = *(source++);
-+
-+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-+ /* don't do the read, it's not guaranteed to return an EOF,
-+ * just force an EOF
-+ */
-+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-+
-+ else
-+ {
-+ int num_to_read =
-+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-+
-+ while ( num_to_read <= 0 )
-+ { /* Not enough room in the buffer - grow it. */
-+
-+ /* just a shorter name for the current buffer */
-+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-+
-+ int yy_c_buf_p_offset =
-+ (int) ((yy_c_buf_p) - b->yy_ch_buf);
-+
-+ if ( b->yy_is_our_buffer )
-+ {
-+ int new_size = b->yy_buf_size * 2;
-+
-+ if ( new_size <= 0 )
-+ b->yy_buf_size += b->yy_buf_size / 8;
-+ else
-+ b->yy_buf_size *= 2;
-+
-+ b->yy_ch_buf = (char *)
-+ /* Include room in for 2 EOB chars. */
-+ zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
-+ }
-+ else
-+ /* Can't grow it, we don't own it. */
-+ b->yy_ch_buf = 0;
-+
-+ if ( ! b->yy_ch_buf )
-+ YY_FATAL_ERROR(
-+ "fatal error - scanner input buffer overflow" );
-+
-+ (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-+
-+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-+ number_to_move - 1;
-+
-+ }
-+
-+ if ( num_to_read > YY_READ_BUF_SIZE )
-+ num_to_read = YY_READ_BUF_SIZE;
-+
-+ /* Read in more data. */
-+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-+ (yy_n_chars), (size_t) num_to_read );
-+
-+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-+ }
-+
-+ if ( (yy_n_chars) == 0 )
-+ {
-+ if ( number_to_move == YY_MORE_ADJ )
-+ {
-+ ret_val = EOB_ACT_END_OF_FILE;
-+ zconfrestart(zconfin );
-+ }
-+
-+ else
-+ {
-+ ret_val = EOB_ACT_LAST_MATCH;
-+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-+ YY_BUFFER_EOF_PENDING;
-+ }
-+ }
-+
-+ else
-+ ret_val = EOB_ACT_CONTINUE_SCAN;
-+
-+ if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-+ /* Extend the array by 50%, plus the number we really need. */
-+ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
-+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-+ }
-+
-+ (yy_n_chars) += number_to_move;
-+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-+
-+ (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-+
-+ return ret_val;
-+}
-+
-+/* yy_get_previous_state - get the state just before the EOB char was reached */
-+
-+ static yy_state_type yy_get_previous_state (void)
-+{
-+ register yy_state_type yy_current_state;
-+ register char *yy_cp;
-+
-+ yy_current_state = (yy_start);
-+
-+ for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-+ {
-+ yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
-+ }
-+
-+ return yy_current_state;
-+}
-+
-+/* yy_try_NUL_trans - try to make a transition on the NUL character
-+ *
-+ * synopsis
-+ * next_state = yy_try_NUL_trans( current_state );
-+ */
-+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
-+{
-+ register int yy_is_jam;
-+
-+ yy_current_state = yy_nxt[yy_current_state][1];
-+ yy_is_jam = (yy_current_state <= 0);
-+
-+ return yy_is_jam ? 0 : yy_current_state;
-+}
-+
-+ static void yyunput (int c, register char * yy_bp )
-+{
-+ register char *yy_cp;
-+
-+ yy_cp = (yy_c_buf_p);
-+
-+ /* undo effects of setting up zconftext */
-+ *yy_cp = (yy_hold_char);
-+
-+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-+ { /* need to shift things up to make room */
-+ /* +2 for EOB chars. */
-+ register int number_to_move = (yy_n_chars) + 2;
-+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
-+ register char *source =
-+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-+
-+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-+ *--dest = *--source;
-+
-+ yy_cp += (int) (dest - source);
-+ yy_bp += (int) (dest - source);
-+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-+
-+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
-+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
-+ }
-+
-+ *--yy_cp = (char) c;
-+
-+ (yytext_ptr) = yy_bp;
-+ (yy_hold_char) = *yy_cp;
-+ (yy_c_buf_p) = yy_cp;
-+}
-+
-+#ifndef YY_NO_INPUT
-+#ifdef __cplusplus
-+ static int yyinput (void)
-+#else
-+ static int input (void)
-+#endif
-+
-+{
-+ int c;
-+
-+ *(yy_c_buf_p) = (yy_hold_char);
-+
-+ if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-+ {
-+ /* yy_c_buf_p now points to the character we want to return.
-+ * If this occurs *before* the EOB characters, then it's a
-+ * valid NUL; if not, then we've hit the end of the buffer.
-+ */
-+ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-+ /* This was really a NUL. */
-+ *(yy_c_buf_p) = '\0';
-+
-+ else
-+ { /* need more input */
-+ int offset = (yy_c_buf_p) - (yytext_ptr);
-+ ++(yy_c_buf_p);
-+
-+ switch ( yy_get_next_buffer( ) )
-+ {
-+ case EOB_ACT_LAST_MATCH:
-+ /* This happens because yy_g_n_b()
-+ * sees that we've accumulated a
-+ * token and flags that we need to
-+ * try matching the token before
-+ * proceeding. But for input(),
-+ * there's no matching to consider.
-+ * So convert the EOB_ACT_LAST_MATCH
-+ * to EOB_ACT_END_OF_FILE.
-+ */
-+
-+ /* Reset buffer status. */
-+ zconfrestart(zconfin );
-+
-+ /*FALLTHROUGH*/
-+
-+ case EOB_ACT_END_OF_FILE:
-+ {
-+ if ( zconfwrap( ) )
-+ return EOF;
-+
-+ if ( ! (yy_did_buffer_switch_on_eof) )
-+ YY_NEW_FILE;
-+#ifdef __cplusplus
-+ return yyinput();
-+#else
-+ return input();
-+#endif
-+ }
-+
-+ case EOB_ACT_CONTINUE_SCAN:
-+ (yy_c_buf_p) = (yytext_ptr) + offset;
-+ break;
-+ }
-+ }
-+ }
-+
-+ c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
-+ *(yy_c_buf_p) = '\0'; /* preserve zconftext */
-+ (yy_hold_char) = *++(yy_c_buf_p);
-+
-+ return c;
-+}
-+#endif /* ifndef YY_NO_INPUT */
-+
-+/** Immediately switch to a different input stream.
-+ * @param input_file A readable stream.
-+ *
-+ * @note This function does not reset the start condition to @c INITIAL .
-+ */
-+ void zconfrestart (FILE * input_file )
-+{
-+
-+ if ( ! YY_CURRENT_BUFFER ){
-+ zconfensure_buffer_stack ();
-+ YY_CURRENT_BUFFER_LVALUE =
-+ zconf_create_buffer(zconfin,YY_BUF_SIZE );
-+ }
-+
-+ zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
-+ zconf_load_buffer_state( );
-+}
-+
-+/** Switch to a different input buffer.
-+ * @param new_buffer The new input buffer.
-+ *
-+ */
-+ void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
-+{
-+
-+ /* TODO. We should be able to replace this entire function body
-+ * with
-+ * zconfpop_buffer_state();
-+ * zconfpush_buffer_state(new_buffer);
-+ */
-+ zconfensure_buffer_stack ();
-+ if ( YY_CURRENT_BUFFER == new_buffer )
-+ return;
-+
-+ if ( YY_CURRENT_BUFFER )
-+ {
-+ /* Flush out information for old buffer. */
-+ *(yy_c_buf_p) = (yy_hold_char);
-+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-+ }
-+
-+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
-+ zconf_load_buffer_state( );
-+
-+ /* We don't actually know whether we did this switch during
-+ * EOF (zconfwrap()) processing, but the only time this flag
-+ * is looked at is after zconfwrap() is called, so it's safe
-+ * to go ahead and always set it.
-+ */
-+ (yy_did_buffer_switch_on_eof) = 1;
-+}
-+
-+static void zconf_load_buffer_state (void)
-+{
-+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-+ (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-+ zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-+ (yy_hold_char) = *(yy_c_buf_p);
-+}
-+
-+/** Allocate and initialize an input buffer state.
-+ * @param file A readable stream.
-+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
-+ *
-+ * @return the allocated buffer state.
-+ */
-+ YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
-+{
-+ YY_BUFFER_STATE b;
-+
-+ b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
-+ if ( ! b )
-+ YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
-+
-+ b->yy_buf_size = size;
-+
-+ /* yy_ch_buf has to be 2 characters longer than the size given because
-+ * we need to put in 2 end-of-buffer characters.
-+ */
-+ b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 );
-+ if ( ! b->yy_ch_buf )
-+ YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
-+
-+ b->yy_is_our_buffer = 1;
-+
-+ zconf_init_buffer(b,file );
-+
-+ return b;
-+}
-+
-+/** Destroy the buffer.
-+ * @param b a buffer created with zconf_create_buffer()
-+ *
-+ */
-+ void zconf_delete_buffer (YY_BUFFER_STATE b )
-+{
-+
-+ if ( ! b )
-+ return;
-+
-+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-+
-+ if ( b->yy_is_our_buffer )
-+ zconffree((void *) b->yy_ch_buf );
-+
-+ zconffree((void *) b );
-+}
-+
-+/* Initializes or reinitializes a buffer.
-+ * This function is sometimes called more than once on the same buffer,
-+ * such as during a zconfrestart() or at EOF.
-+ */
-+ static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file )
-+
-+{
-+ int oerrno = errno;
-+
-+ zconf_flush_buffer(b );
-+
-+ b->yy_input_file = file;
-+ b->yy_fill_buffer = 1;
-+
-+ /* If b is the current buffer, then zconf_init_buffer was _probably_
-+ * called from zconfrestart() or through yy_get_next_buffer.
-+ * In that case, we don't want to reset the lineno or column.
-+ */
-+ if (b != YY_CURRENT_BUFFER){
-+ b->yy_bs_lineno = 1;
-+ b->yy_bs_column = 0;
-+ }
-+
-+ b->yy_is_interactive = 0;
-+
-+ errno = oerrno;
-+}
-+
-+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
-+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
-+ *
-+ */
-+ void zconf_flush_buffer (YY_BUFFER_STATE b )
-+{
-+ if ( ! b )
-+ return;
-+
-+ b->yy_n_chars = 0;
-+
-+ /* We always need two end-of-buffer characters. The first causes
-+ * a transition to the end-of-buffer state. The second causes
-+ * a jam in that state.
-+ */
-+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-+
-+ b->yy_buf_pos = &b->yy_ch_buf[0];
-+
-+ b->yy_at_bol = 1;
-+ b->yy_buffer_status = YY_BUFFER_NEW;
-+
-+ if ( b == YY_CURRENT_BUFFER )
-+ zconf_load_buffer_state( );
-+}
-+
-+/** Pushes the new state onto the stack. The new state becomes
-+ * the current state. This function will allocate the stack
-+ * if necessary.
-+ * @param new_buffer The new state.
-+ *
-+ */
-+void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
-+{
-+ if (new_buffer == NULL)
-+ return;
-+
-+ zconfensure_buffer_stack();
-+
-+ /* This block is copied from zconf_switch_to_buffer. */
-+ if ( YY_CURRENT_BUFFER )
-+ {
-+ /* Flush out information for old buffer. */
-+ *(yy_c_buf_p) = (yy_hold_char);
-+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-+ }
-+
-+ /* Only push if top exists. Otherwise, replace top. */
-+ if (YY_CURRENT_BUFFER)
-+ (yy_buffer_stack_top)++;
-+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
-+
-+ /* copied from zconf_switch_to_buffer. */
-+ zconf_load_buffer_state( );
-+ (yy_did_buffer_switch_on_eof) = 1;
-+}
-+
-+/** Removes and deletes the top of the stack, if present.
-+ * The next element becomes the new top.
-+ *
-+ */
-+void zconfpop_buffer_state (void)
-+{
-+ if (!YY_CURRENT_BUFFER)
-+ return;
-+
-+ zconf_delete_buffer(YY_CURRENT_BUFFER );
-+ YY_CURRENT_BUFFER_LVALUE = NULL;
-+ if ((yy_buffer_stack_top) > 0)
-+ --(yy_buffer_stack_top);
-+
-+ if (YY_CURRENT_BUFFER) {
-+ zconf_load_buffer_state( );
-+ (yy_did_buffer_switch_on_eof) = 1;
-+ }
-+}
-+
-+/* Allocates the stack if it does not exist.
-+ * Guarantees space for at least one push.
-+ */
-+static void zconfensure_buffer_stack (void)
-+{
-+ int num_to_alloc;
-+
-+ if (!(yy_buffer_stack)) {
-+
-+ /* First allocation is just for 2 elements, since we don't know if this
-+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
-+ * immediate realloc on the next call.
-+ */
-+ num_to_alloc = 1;
-+ (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
-+ (num_to_alloc * sizeof(struct yy_buffer_state*)
-+ );
-+ if ( ! (yy_buffer_stack) )
-+ YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
-+
-+ memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-+
-+ (yy_buffer_stack_max) = num_to_alloc;
-+ (yy_buffer_stack_top) = 0;
-+ return;
-+ }
-+
-+ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-+
-+ /* Increase the buffer to prepare for a possible push. */
-+ int grow_size = 8 /* arbitrary grow size */;
-+
-+ num_to_alloc = (yy_buffer_stack_max) + grow_size;
-+ (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
-+ ((yy_buffer_stack),
-+ num_to_alloc * sizeof(struct yy_buffer_state*)
-+ );
-+ if ( ! (yy_buffer_stack) )
-+ YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
-+
-+ /* zero only the new slots.*/
-+ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-+ (yy_buffer_stack_max) = num_to_alloc;
-+ }
-+}
-+
-+/** Setup the input buffer state to scan directly from a user-specified character buffer.
-+ * @param base the character buffer
-+ * @param size the size in bytes of the character buffer
-+ *
-+ * @return the newly allocated buffer state object.
-+ */
-+YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
-+{
-+ YY_BUFFER_STATE b;
-+
-+ if ( size < 2 ||
-+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
-+ base[size-1] != YY_END_OF_BUFFER_CHAR )
-+ /* They forgot to leave room for the EOB's. */
-+ return 0;
-+
-+ b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
-+ if ( ! b )
-+ YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
-+
-+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
-+ b->yy_buf_pos = b->yy_ch_buf = base;
-+ b->yy_is_our_buffer = 0;
-+ b->yy_input_file = 0;
-+ b->yy_n_chars = b->yy_buf_size;
-+ b->yy_is_interactive = 0;
-+ b->yy_at_bol = 1;
-+ b->yy_fill_buffer = 0;
-+ b->yy_buffer_status = YY_BUFFER_NEW;
-+
-+ zconf_switch_to_buffer(b );
-+
-+ return b;
-+}
-+
-+/** Setup the input buffer state to scan a string. The next call to zconflex() will
-+ * scan from a @e copy of @a str.
-+ * @param yystr a NUL-terminated string to scan
-+ *
-+ * @return the newly allocated buffer state object.
-+ * @note If you want to scan bytes that may contain NUL values, then use
-+ * zconf_scan_bytes() instead.
-+ */
-+YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
-+{
-+
-+ return zconf_scan_bytes(yystr,strlen(yystr) );
-+}
-+
-+/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
-+ * scan from a @e copy of @a bytes.
-+ * @param bytes the byte buffer to scan
-+ * @param len the number of bytes in the buffer pointed to by @a bytes.
-+ *
-+ * @return the newly allocated buffer state object.
-+ */
-+YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len )
-+{
-+ YY_BUFFER_STATE b;
-+ char *buf;
-+ yy_size_t n;
-+ int i;
-+
-+ /* Get memory for full buffer, including space for trailing EOB's. */
-+ n = _yybytes_len + 2;
-+ buf = (char *) zconfalloc(n );
-+ if ( ! buf )
-+ YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
-+
-+ for ( i = 0; i < _yybytes_len; ++i )
-+ buf[i] = yybytes[i];
-+
-+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-+
-+ b = zconf_scan_buffer(buf,n );
-+ if ( ! b )
-+ YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
-+
-+ /* It's okay to grow etc. this buffer, and we should throw it
-+ * away when we're done.
-+ */
-+ b->yy_is_our_buffer = 1;
-+
-+ return b;
-+}
-+
-+#ifndef YY_EXIT_FAILURE
-+#define YY_EXIT_FAILURE 2
-+#endif
-+
-+static void yy_fatal_error (yyconst char* msg )
-+{
-+ (void) fprintf( stderr, "%s\n", msg );
-+ exit( YY_EXIT_FAILURE );
-+}
-+
-+/* Redefine yyless() so it works in section 3 code. */
-+
-+#undef yyless
-+#define yyless(n) \
-+ do \
-+ { \
-+ /* Undo effects of setting up zconftext. */ \
-+ int yyless_macro_arg = (n); \
-+ YY_LESS_LINENO(yyless_macro_arg);\
-+ zconftext[zconfleng] = (yy_hold_char); \
-+ (yy_c_buf_p) = zconftext + yyless_macro_arg; \
-+ (yy_hold_char) = *(yy_c_buf_p); \
-+ *(yy_c_buf_p) = '\0'; \
-+ zconfleng = yyless_macro_arg; \
-+ } \
-+ while ( 0 )
-+
-+/* Accessor methods (get/set functions) to struct members. */
-+
-+/** Get the current line number.
-+ *
-+ */
-+int zconfget_lineno (void)
-+{
-+
-+ return zconflineno;
-+}
-+
-+/** Get the input stream.
-+ *
-+ */
-+FILE *zconfget_in (void)
-+{
-+ return zconfin;
-+}
-+
-+/** Get the output stream.
-+ *
-+ */
-+FILE *zconfget_out (void)
-+{
-+ return zconfout;
-+}
-+
-+/** Get the length of the current token.
-+ *
-+ */
-+int zconfget_leng (void)
-+{
-+ return zconfleng;
-+}
-+
-+/** Get the current token.
-+ *
-+ */
-+
-+char *zconfget_text (void)
-+{
-+ return zconftext;
-+}
-+
-+/** Set the current line number.
-+ * @param line_number
-+ *
-+ */
-+void zconfset_lineno (int line_number )
-+{
-+
-+ zconflineno = line_number;
-+}
-+
-+/** Set the input stream. This does not discard the current
-+ * input buffer.
-+ * @param in_str A readable stream.
-+ *
-+ * @see zconf_switch_to_buffer
-+ */
-+void zconfset_in (FILE * in_str )
-+{
-+ zconfin = in_str ;
-+}
-+
-+void zconfset_out (FILE * out_str )
-+{
-+ zconfout = out_str ;
-+}
-+
-+int zconfget_debug (void)
-+{
-+ return zconf_flex_debug;
-+}
-+
-+void zconfset_debug (int bdebug )
-+{
-+ zconf_flex_debug = bdebug ;
-+}
-+
-+static int yy_init_globals (void)
-+{
-+ /* Initialization is the same as for the non-reentrant scanner.
-+ * This function is called from zconflex_destroy(), so don't allocate here.
-+ */
-+
-+ (yy_buffer_stack) = 0;
-+ (yy_buffer_stack_top) = 0;
-+ (yy_buffer_stack_max) = 0;
-+ (yy_c_buf_p) = (char *) 0;
-+ (yy_init) = 0;
-+ (yy_start) = 0;
-+
-+/* Defined in main.c */
-+#ifdef YY_STDINIT
-+ zconfin = stdin;
-+ zconfout = stdout;
-+#else
-+ zconfin = (FILE *) 0;
-+ zconfout = (FILE *) 0;
-+#endif
-+
-+ /* For future reference: Set errno on error, since we are called by
-+ * zconflex_init()
-+ */
-+ return 0;
-+}
-+
-+/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
-+int zconflex_destroy (void)
-+{
-+
-+ /* Pop the buffer stack, destroying each element. */
-+ while(YY_CURRENT_BUFFER){
-+ zconf_delete_buffer(YY_CURRENT_BUFFER );
-+ YY_CURRENT_BUFFER_LVALUE = NULL;
-+ zconfpop_buffer_state();
-+ }
-+
-+ /* Destroy the stack itself. */
-+ zconffree((yy_buffer_stack) );
-+ (yy_buffer_stack) = NULL;
-+
-+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
-+ * zconflex() is called, initialization will occur. */
-+ yy_init_globals( );
-+
-+ return 0;
-+}
-+
-+/*
-+ * Internal utility routines.
-+ */
-+
-+#ifndef yytext_ptr
-+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-+{
-+ register int i;
-+ for ( i = 0; i < n; ++i )
-+ s1[i] = s2[i];
-+}
-+#endif
-+
-+#ifdef YY_NEED_STRLEN
-+static int yy_flex_strlen (yyconst char * s )
-+{
-+ register int n;
-+ for ( n = 0; s[n]; ++n )
-+ ;
-+
-+ return n;
-+}
-+#endif
-+
-+void *zconfalloc (yy_size_t size )
-+{
-+ return (void *) malloc( size );
-+}
-+
-+void *zconfrealloc (void * ptr, yy_size_t size )
-+{
-+ /* The cast to (char *) in the following accommodates both
-+ * implementations that use char* generic pointers, and those
-+ * that use void* generic pointers. It works with the latter
-+ * because both ANSI C and C++ allow castless assignment from
-+ * any pointer type to void*, and deal with argument conversions
-+ * as though doing an assignment.
-+ */
-+ return (void *) realloc( (char *) ptr, size );
-+}
-+
-+void zconffree (void * ptr )
-+{
-+ free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */
-+}
-+
-+#define YYTABLES_NAME "yytables"
-+
-+void zconf_starthelp(void)
-+{
-+ new_string();
-+ last_ts = first_ts = 0;
-+ BEGIN(HELP);
-+}
-+
-+static void zconf_endhelp(void)
-+{
-+ zconflval.string = text;
-+ BEGIN(INITIAL);
-+}
-+
-+/*
-+ * Try to open specified file with following names:
-+ * ./name
-+ * $(srctree)/name
-+ * The latter is used when srctree is separate from objtree
-+ * when compiling the kernel.
-+ * Return NULL if file is not found.
-+ */
-+FILE *zconf_fopen(const char *name)
-+{
-+ char *env, fullname[PATH_MAX+1];
-+ FILE *f;
-+
-+ f = fopen(name, "r");
-+ if (!f && name != NULL && name[0] != '/') {
-+ env = getenv(SRCTREE);
-+ if (env) {
-+ sprintf(fullname, "%s/%s", env, name);
-+ f = fopen(fullname, "r");
-+ }
-+ }
-+ return f;
-+}
-+
-+void zconf_initscan(const char *name)
-+{
-+ zconfin = zconf_fopen(name);
-+ if (!zconfin) {
-+ printf("can't find file %s\n", name);
-+ exit(1);
-+ }
-+
-+ current_buf = xmalloc(sizeof(*current_buf));
-+ memset(current_buf, 0, sizeof(*current_buf));
-+
-+ current_file = file_lookup(name);
-+ current_file->lineno = 1;
-+}
-+
-+void zconf_nextfile(const char *name)
-+{
-+ struct file *iter;
-+ struct file *file = file_lookup(name);
-+ struct buffer *buf = xmalloc(sizeof(*buf));
-+ memset(buf, 0, sizeof(*buf));
-+
-+ current_buf->state = YY_CURRENT_BUFFER;
-+ zconfin = zconf_fopen(file->name);
-+ if (!zconfin) {
-+ printf("%s:%d: can't open file \"%s\"\n",
-+ zconf_curname(), zconf_lineno(), file->name);
-+ exit(1);
-+ }
-+ zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
-+ buf->parent = current_buf;
-+ current_buf = buf;
-+
-+ for (iter = current_file->parent; iter; iter = iter->parent ) {
-+ if (!strcmp(current_file->name,iter->name) ) {
-+ printf("%s:%d: recursive inclusion detected. "
-+ "Inclusion path:\n current file : '%s'\n",
-+ zconf_curname(), zconf_lineno(),
-+ zconf_curname());
-+ iter = current_file->parent;
-+ while (iter && \
-+ strcmp(iter->name,current_file->name)) {
-+ printf(" included from: '%s:%d'\n",
-+ iter->name, iter->lineno-1);
-+ iter = iter->parent;
-+ }
-+ if (iter)
-+ printf(" included from: '%s:%d'\n",
-+ iter->name, iter->lineno+1);
-+ exit(1);
-+ }
-+ }
-+ file->lineno = 1;
-+ file->parent = current_file;
-+ current_file = file;
-+}
-+
-+static void zconf_endfile(void)
-+{
-+ struct buffer *parent;
-+
-+ current_file = current_file->parent;
-+
-+ parent = current_buf->parent;
-+ if (parent) {
-+ fclose(zconfin);
-+ zconf_delete_buffer(YY_CURRENT_BUFFER);
-+ zconf_switch_to_buffer(parent->state);
-+ }
-+ free(current_buf);
-+ current_buf = parent;
-+}
-+
-+int zconf_lineno(void)
-+{
-+ return current_pos.lineno;
-+}
-+
-+const char *zconf_curname(void)
-+{
-+ return current_pos.file ? current_pos.file->name : "<none>";
-+}
-+
-diff -Nur uClibc-0.9.33.2/extra/config/zconf.tab.c_shipped uClibc-git/extra/config/zconf.tab.c_shipped
---- uClibc-0.9.33.2/extra/config/zconf.tab.c_shipped 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/zconf.tab.c_shipped 2014-07-25 20:36:04.865324519 +0200
-@@ -1,24 +1,22 @@
--/* A Bison parser, made by GNU Bison 2.3. */
-+/* A Bison parser, made by GNU Bison 2.4.3. */
-
- /* Skeleton implementation for Bison's Yacc-like parsers in C
--
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-- Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-+ 2009, 2010 Free Software Foundation, Inc.
-+
-+ This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-+ the Free Software Foundation, either version 3 of the License, or
-+ (at your option) any later version.
-+
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
--
-+
- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
- /* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
-@@ -29,7 +27,7 @@
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
--
-+
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-@@ -47,7 +45,7 @@
- #define YYBISON 1
-
- /* Bison version. */
--#define YYBISON_VERSION "2.3"
-+#define YYBISON_VERSION "2.4.3"
-
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-@@ -55,94 +53,23 @@
- /* Pure parsers. */
- #define YYPURE 0
-
-+/* Push parsers. */
-+#define YYPUSH 0
-+
-+/* Pull parsers. */
-+#define YYPULL 1
-+
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
- /* Substitute the variable and function names. */
--#define yyparse zconfparse
--#define yylex zconflex
--#define yyerror zconferror
--#define yylval zconflval
--#define yychar zconfchar
--#define yydebug zconfdebug
--#define yynerrs zconfnerrs
--
--
--/* Tokens. */
--#ifndef YYTOKENTYPE
--# define YYTOKENTYPE
-- /* Put the tokens into the symbol table, so that GDB and other debuggers
-- know about them. */
-- enum yytokentype {
-- T_MAINMENU = 258,
-- T_MENU = 259,
-- T_ENDMENU = 260,
-- T_SOURCE = 261,
-- T_CHOICE = 262,
-- T_ENDCHOICE = 263,
-- T_COMMENT = 264,
-- T_CONFIG = 265,
-- T_MENUCONFIG = 266,
-- T_HELP = 267,
-- T_HELPTEXT = 268,
-- T_IF = 269,
-- T_ENDIF = 270,
-- T_DEPENDS = 271,
-- T_OPTIONAL = 272,
-- T_PROMPT = 273,
-- T_TYPE = 274,
-- T_DEFAULT = 275,
-- T_SELECT = 276,
-- T_RANGE = 277,
-- T_OPTION = 278,
-- T_ON = 279,
-- T_WORD = 280,
-- T_WORD_QUOTE = 281,
-- T_UNEQUAL = 282,
-- T_CLOSE_PAREN = 283,
-- T_OPEN_PAREN = 284,
-- T_EOL = 285,
-- T_OR = 286,
-- T_AND = 287,
-- T_EQUAL = 288,
-- T_NOT = 289
-- };
--#endif
--/* Tokens. */
--#define T_MAINMENU 258
--#define T_MENU 259
--#define T_ENDMENU 260
--#define T_SOURCE 261
--#define T_CHOICE 262
--#define T_ENDCHOICE 263
--#define T_COMMENT 264
--#define T_CONFIG 265
--#define T_MENUCONFIG 266
--#define T_HELP 267
--#define T_HELPTEXT 268
--#define T_IF 269
--#define T_ENDIF 270
--#define T_DEPENDS 271
--#define T_OPTIONAL 272
--#define T_PROMPT 273
--#define T_TYPE 274
--#define T_DEFAULT 275
--#define T_SELECT 276
--#define T_RANGE 277
--#define T_OPTION 278
--#define T_ON 279
--#define T_WORD 280
--#define T_WORD_QUOTE 281
--#define T_UNEQUAL 282
--#define T_CLOSE_PAREN 283
--#define T_OPEN_PAREN 284
--#define T_EOL 285
--#define T_OR 286
--#define T_AND 287
--#define T_EQUAL 288
--#define T_NOT 289
--
--
-+#define yyparse zconfparse
-+#define yylex zconflex
-+#define yyerror zconferror
-+#define yylval zconflval
-+#define yychar zconfchar
-+#define yydebug zconfdebug
-+#define yynerrs zconfnerrs
-
-
- /* Copy the first part of user declarations. */
-@@ -160,11 +87,8 @@
- #include <string.h>
- #include <stdbool.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
--#include "zconf.hash.c"
--
- #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
-
- #define PRINTD 0x0001
-@@ -176,21 +100,18 @@
- static void zconfprint(const char *err, ...);
- static void zconf_error(const char *err, ...);
- static void zconferror(const char *err);
--static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
-+static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken);
-
--struct symbol *symbol_hash[257];
-+struct symbol *symbol_hash[SYMBOL_HASHSIZE];
-
- static struct menu *current_menu, *current_entry;
-
--#define YYDEBUG 0
--#if YYDEBUG
--#define YYERROR_VERBOSE
--#endif
-+
-
-
- /* Enabling traces. */
- #ifndef YYDEBUG
--# define YYDEBUG 0
-+# define YYDEBUG 1
- #endif
-
- /* Enabling verbose error messages. */
-@@ -206,31 +127,78 @@
- # define YYTOKEN_TABLE 0
- #endif
-
-+
-+/* Tokens. */
-+#ifndef YYTOKENTYPE
-+# define YYTOKENTYPE
-+ /* Put the tokens into the symbol table, so that GDB and other debuggers
-+ know about them. */
-+ enum yytokentype {
-+ T_MAINMENU = 258,
-+ T_MENU = 259,
-+ T_ENDMENU = 260,
-+ T_SOURCE = 261,
-+ T_CHOICE = 262,
-+ T_ENDCHOICE = 263,
-+ T_COMMENT = 264,
-+ T_CONFIG = 265,
-+ T_MENUCONFIG = 266,
-+ T_HELP = 267,
-+ T_HELPTEXT = 268,
-+ T_IF = 269,
-+ T_ENDIF = 270,
-+ T_DEPENDS = 271,
-+ T_OPTIONAL = 272,
-+ T_PROMPT = 273,
-+ T_TYPE = 274,
-+ T_DEFAULT = 275,
-+ T_SELECT = 276,
-+ T_RANGE = 277,
-+ T_VISIBLE = 278,
-+ T_OPTION = 279,
-+ T_ON = 280,
-+ T_WORD = 281,
-+ T_WORD_QUOTE = 282,
-+ T_UNEQUAL = 283,
-+ T_CLOSE_PAREN = 284,
-+ T_OPEN_PAREN = 285,
-+ T_EOL = 286,
-+ T_OR = 287,
-+ T_AND = 288,
-+ T_EQUAL = 289,
-+ T_NOT = 290
-+ };
-+#endif
-+
-+
-+
- #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
- typedef union YYSTYPE
--
- {
-+
-+
- char *string;
- struct file *file;
- struct symbol *symbol;
- struct expr *expr;
- struct menu *menu;
-- struct kconf_id *id;
--}
--/* Line 187 of yacc.c. */
-+ const struct kconf_id *id;
-+
-+
-
-- YYSTYPE;
-+} YYSTYPE;
-+# define YYSTYPE_IS_TRIVIAL 1
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
--# define YYSTYPE_IS_TRIVIAL 1
- #endif
-
-
--
- /* Copy the second part of user declarations. */
-
-
--/* Line 216 of yacc.c. */
-+/* Include zconf.hash.c here so it can see the token constants. */
-+#include "zconf.hash.c"
-+
-
-
- #ifdef short
-@@ -281,7 +249,7 @@
- #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
- #ifndef YY_
--# if YYENABLE_NLS
-+# if defined YYENABLE_NLS && YYENABLE_NLS
- # if ENABLE_NLS
- # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
- # define YY_(msgid) dgettext ("bison-runtime", msgid)
-@@ -306,14 +274,14 @@
- #if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- static int
--YYID (int i)
-+YYID (int yyi)
- #else
- static int
--YYID (i)
-- int i;
-+YYID (yyi)
-+ int yyi;
- #endif
- {
-- return i;
-+ return yyi;
- }
- #endif
-
-@@ -394,9 +362,9 @@
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- yytype_int16 yyss;
-- YYSTYPE yyvs;
-- };
-+ yytype_int16 yyss_alloc;
-+ YYSTYPE yyvs_alloc;
-+};
-
- /* The size of the maximum gap between one aligned stack and the next. */
- # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-@@ -430,12 +398,12 @@
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
--# define YYSTACK_RELOCATE(Stack) \
-+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
-- YYCOPY (&yyptr->Stack, Stack, yysize); \
-- Stack = &yyptr->Stack; \
-+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
-+ Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-@@ -444,22 +412,22 @@
- #endif
-
- /* YYFINAL -- State number of the termination state. */
--#define YYFINAL 3
-+#define YYFINAL 11
- /* YYLAST -- Last index in YYTABLE. */
--#define YYLAST 259
-+#define YYLAST 290
-
- /* YYNTOKENS -- Number of terminals. */
--#define YYNTOKENS 35
-+#define YYNTOKENS 36
- /* YYNNTS -- Number of nonterminals. */
--#define YYNNTS 46
-+#define YYNNTS 50
- /* YYNRULES -- Number of rules. */
--#define YYNRULES 110
-+#define YYNRULES 118
- /* YYNRULES -- Number of states. */
--#define YYNSTATES 180
-+#define YYNSTATES 191
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
--#define YYMAXUTOK 289
-+#define YYMAXUTOK 290
-
- #define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-@@ -495,7 +463,8 @@
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
-+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
-+ 35
- };
-
- #if YYDEBUG
-@@ -503,73 +472,75 @@
- YYRHS. */
- static const yytype_uint16 yyprhs[] =
- {
-- 0, 0, 3, 5, 6, 9, 12, 15, 20, 23,
-- 28, 33, 37, 39, 41, 43, 45, 47, 49, 51,
-- 53, 55, 57, 59, 61, 63, 67, 70, 74, 77,
-- 81, 84, 85, 88, 91, 94, 97, 100, 103, 107,
-- 112, 117, 122, 128, 132, 133, 137, 138, 141, 145,
-- 148, 150, 154, 155, 158, 161, 164, 167, 170, 175,
-- 179, 182, 187, 188, 191, 195, 197, 201, 202, 205,
-- 208, 211, 215, 218, 220, 224, 225, 228, 231, 234,
-- 238, 242, 245, 248, 251, 252, 255, 258, 261, 266,
-- 267, 270, 272, 274, 277, 280, 283, 285, 288, 289,
-- 292, 294, 298, 302, 306, 309, 313, 317, 319, 321,
-- 322
-+ 0, 0, 3, 6, 8, 11, 13, 14, 17, 20,
-+ 23, 26, 31, 36, 40, 42, 44, 46, 48, 50,
-+ 52, 54, 56, 58, 60, 62, 64, 66, 68, 72,
-+ 75, 79, 82, 86, 89, 90, 93, 96, 99, 102,
-+ 105, 108, 112, 117, 122, 127, 133, 137, 138, 142,
-+ 143, 146, 150, 153, 155, 159, 160, 163, 166, 169,
-+ 172, 175, 180, 184, 187, 192, 193, 196, 200, 202,
-+ 206, 207, 210, 213, 216, 220, 224, 228, 230, 234,
-+ 235, 238, 241, 244, 248, 252, 255, 258, 261, 262,
-+ 265, 268, 271, 276, 277, 280, 283, 286, 287, 290,
-+ 292, 294, 297, 300, 303, 305, 308, 309, 312, 314,
-+ 318, 322, 326, 329, 333, 337, 339, 341, 342
- };
-
- /* YYRHS -- A `-1'-separated list of the rules' RHS. */
- static const yytype_int8 yyrhs[] =
- {
-- 36, 0, -1, 37, -1, -1, 37, 39, -1, 37,
-- 53, -1, 37, 64, -1, 37, 3, 74, 76, -1,
-- 37, 75, -1, 37, 25, 1, 30, -1, 37, 38,
-- 1, 30, -1, 37, 1, 30, -1, 16, -1, 18,
-- -1, 19, -1, 21, -1, 17, -1, 22, -1, 20,
-- -1, 30, -1, 59, -1, 68, -1, 42, -1, 44,
-- -1, 66, -1, 25, 1, 30, -1, 1, 30, -1,
-- 10, 25, 30, -1, 41, 45, -1, 11, 25, 30,
-- -1, 43, 45, -1, -1, 45, 46, -1, 45, 47,
-- -1, 45, 72, -1, 45, 70, -1, 45, 40, -1,
-- 45, 30, -1, 19, 73, 30, -1, 18, 74, 77,
-- 30, -1, 20, 78, 77, 30, -1, 21, 25, 77,
-- 30, -1, 22, 79, 79, 77, 30, -1, 23, 48,
-- 30, -1, -1, 48, 25, 49, -1, -1, 33, 74,
-- -1, 7, 80, 30, -1, 50, 54, -1, 75, -1,
-- 51, 56, 52, -1, -1, 54, 55, -1, 54, 72,
-- -1, 54, 70, -1, 54, 30, -1, 54, 40, -1,
-- 18, 74, 77, 30, -1, 19, 73, 30, -1, 17,
-- 30, -1, 20, 25, 77, 30, -1, -1, 56, 39,
-- -1, 14, 78, 76, -1, 75, -1, 57, 60, 58,
-- -1, -1, 60, 39, -1, 60, 64, -1, 60, 53,
-- -1, 4, 74, 30, -1, 61, 71, -1, 75, -1,
-- 62, 65, 63, -1, -1, 65, 39, -1, 65, 64,
-- -1, 65, 53, -1, 6, 74, 30, -1, 9, 74,
-- 30, -1, 67, 71, -1, 12, 30, -1, 69, 13,
-- -1, -1, 71, 72, -1, 71, 30, -1, 71, 40,
-- -1, 16, 24, 78, 30, -1, -1, 74, 77, -1,
-- 25, -1, 26, -1, 5, 30, -1, 8, 30, -1,
-- 15, 30, -1, 30, -1, 76, 30, -1, -1, 14,
-- 78, -1, 79, -1, 79, 33, 79, -1, 79, 27,
-- 79, -1, 29, 78, 28, -1, 34, 78, -1, 78,
-- 31, 78, -1, 78, 32, 78, -1, 25, -1, 26,
-- -1, -1, 25, -1
-+ 37, 0, -1, 81, 38, -1, 38, -1, 63, 39,
-+ -1, 39, -1, -1, 39, 41, -1, 39, 55, -1,
-+ 39, 67, -1, 39, 80, -1, 39, 26, 1, 31,
-+ -1, 39, 40, 1, 31, -1, 39, 1, 31, -1,
-+ 16, -1, 18, -1, 19, -1, 21, -1, 17, -1,
-+ 22, -1, 20, -1, 23, -1, 31, -1, 61, -1,
-+ 71, -1, 44, -1, 46, -1, 69, -1, 26, 1,
-+ 31, -1, 1, 31, -1, 10, 26, 31, -1, 43,
-+ 47, -1, 11, 26, 31, -1, 45, 47, -1, -1,
-+ 47, 48, -1, 47, 49, -1, 47, 75, -1, 47,
-+ 73, -1, 47, 42, -1, 47, 31, -1, 19, 78,
-+ 31, -1, 18, 79, 82, 31, -1, 20, 83, 82,
-+ 31, -1, 21, 26, 82, 31, -1, 22, 84, 84,
-+ 82, 31, -1, 24, 50, 31, -1, -1, 50, 26,
-+ 51, -1, -1, 34, 79, -1, 7, 85, 31, -1,
-+ 52, 56, -1, 80, -1, 53, 58, 54, -1, -1,
-+ 56, 57, -1, 56, 75, -1, 56, 73, -1, 56,
-+ 31, -1, 56, 42, -1, 18, 79, 82, 31, -1,
-+ 19, 78, 31, -1, 17, 31, -1, 20, 26, 82,
-+ 31, -1, -1, 58, 41, -1, 14, 83, 81, -1,
-+ 80, -1, 59, 62, 60, -1, -1, 62, 41, -1,
-+ 62, 67, -1, 62, 55, -1, 3, 79, 81, -1,
-+ 4, 79, 31, -1, 64, 76, 74, -1, 80, -1,
-+ 65, 68, 66, -1, -1, 68, 41, -1, 68, 67,
-+ -1, 68, 55, -1, 6, 79, 31, -1, 9, 79,
-+ 31, -1, 70, 74, -1, 12, 31, -1, 72, 13,
-+ -1, -1, 74, 75, -1, 74, 31, -1, 74, 42,
-+ -1, 16, 25, 83, 31, -1, -1, 76, 77, -1,
-+ 76, 31, -1, 23, 82, -1, -1, 79, 82, -1,
-+ 26, -1, 27, -1, 5, 31, -1, 8, 31, -1,
-+ 15, 31, -1, 31, -1, 81, 31, -1, -1, 14,
-+ 83, -1, 84, -1, 84, 34, 84, -1, 84, 28,
-+ 84, -1, 30, 83, 29, -1, 35, 83, -1, 83,
-+ 32, 83, -1, 83, 33, 83, -1, 26, -1, 27,
-+ -1, -1, 26, -1
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
- static const yytype_uint16 yyrline[] =
- {
-- 0, 104, 104, 106, 108, 109, 110, 111, 112, 113,
-- 114, 118, 122, 122, 122, 122, 122, 122, 122, 126,
-- 127, 128, 129, 130, 131, 135, 136, 142, 150, 156,
-- 164, 174, 176, 177, 178, 179, 180, 181, 184, 192,
-- 198, 208, 214, 220, 223, 225, 236, 237, 242, 251,
-- 256, 264, 267, 269, 270, 271, 272, 273, 276, 282,
-- 293, 299, 309, 311, 316, 324, 332, 335, 337, 338,
-- 339, 344, 351, 356, 364, 367, 369, 370, 371, 374,
-- 382, 389, 396, 402, 409, 411, 412, 413, 416, 424,
-- 426, 431, 432, 435, 436, 437, 441, 442, 445, 446,
-- 449, 450, 451, 452, 453, 454, 455, 458, 459, 462,
-- 463
-+ 0, 104, 104, 104, 106, 106, 108, 110, 111, 112,
-+ 113, 114, 115, 119, 123, 123, 123, 123, 123, 123,
-+ 123, 123, 127, 128, 129, 130, 131, 132, 136, 137,
-+ 143, 151, 157, 165, 175, 177, 178, 179, 180, 181,
-+ 182, 185, 193, 199, 209, 215, 221, 224, 226, 237,
-+ 238, 243, 252, 257, 265, 268, 270, 271, 272, 273,
-+ 274, 277, 283, 294, 300, 310, 312, 317, 325, 333,
-+ 336, 338, 339, 340, 345, 352, 359, 364, 372, 375,
-+ 377, 378, 379, 382, 390, 397, 404, 410, 417, 419,
-+ 420, 421, 424, 432, 434, 435, 438, 445, 447, 452,
-+ 453, 456, 457, 458, 462, 463, 466, 467, 470, 471,
-+ 472, 473, 474, 475, 476, 479, 480, 483, 484
- };
- #endif
-
-@@ -582,19 +553,19 @@
- "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
- "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
- "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
-- "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
-+ "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
- "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
-- "T_NOT", "$accept", "input", "stmt_list", "option_name", "common_stmt",
-- "option_error", "config_entry_start", "config_stmt",
-+ "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
-+ "common_stmt", "option_error", "config_entry_start", "config_stmt",
- "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
- "config_option", "symbol_option", "symbol_option_list",
- "symbol_option_arg", "choice", "choice_entry", "choice_end",
- "choice_stmt", "choice_option_list", "choice_option", "choice_block",
-- "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
-- "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
-- "comment_stmt", "help_start", "help", "depends_list", "depends",
-- "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol",
-- "word_opt", 0
-+ "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu",
-+ "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
-+ "comment", "comment_stmt", "help_start", "help", "depends_list",
-+ "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
-+ "end", "nl", "if_expr", "expr", "symbol", "word_opt", 0
- };
- #endif
-
-@@ -606,42 +577,42 @@
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
-- 285, 286, 287, 288, 289
-+ 285, 286, 287, 288, 289, 290
- };
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
- static const yytype_uint8 yyr1[] =
- {
-- 0, 35, 36, 37, 37, 37, 37, 37, 37, 37,
-- 37, 37, 38, 38, 38, 38, 38, 38, 38, 39,
-- 39, 39, 39, 39, 39, 40, 40, 41, 42, 43,
-- 44, 45, 45, 45, 45, 45, 45, 45, 46, 46,
-- 46, 46, 46, 47, 48, 48, 49, 49, 50, 51,
-- 52, 53, 54, 54, 54, 54, 54, 54, 55, 55,
-- 55, 55, 56, 56, 57, 58, 59, 60, 60, 60,
-- 60, 61, 62, 63, 64, 65, 65, 65, 65, 66,
-- 67, 68, 69, 70, 71, 71, 71, 71, 72, 73,
-- 73, 74, 74, 75, 75, 75, 76, 76, 77, 77,
-- 78, 78, 78, 78, 78, 78, 78, 79, 79, 80,
-- 80
-+ 0, 36, 37, 37, 38, 38, 39, 39, 39, 39,
-+ 39, 39, 39, 39, 40, 40, 40, 40, 40, 40,
-+ 40, 40, 41, 41, 41, 41, 41, 41, 42, 42,
-+ 43, 44, 45, 46, 47, 47, 47, 47, 47, 47,
-+ 47, 48, 48, 48, 48, 48, 49, 50, 50, 51,
-+ 51, 52, 53, 54, 55, 56, 56, 56, 56, 56,
-+ 56, 57, 57, 57, 57, 58, 58, 59, 60, 61,
-+ 62, 62, 62, 62, 63, 64, 65, 66, 67, 68,
-+ 68, 68, 68, 69, 70, 71, 72, 73, 74, 74,
-+ 74, 74, 75, 76, 76, 76, 77, 78, 78, 79,
-+ 79, 80, 80, 80, 81, 81, 82, 82, 83, 83,
-+ 83, 83, 83, 83, 83, 84, 84, 85, 85
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
- static const yytype_uint8 yyr2[] =
- {
-- 0, 2, 1, 0, 2, 2, 2, 4, 2, 4,
-- 4, 3, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 3, 2, 3, 2, 3,
-- 2, 0, 2, 2, 2, 2, 2, 2, 3, 4,
-- 4, 4, 5, 3, 0, 3, 0, 2, 3, 2,
-- 1, 3, 0, 2, 2, 2, 2, 2, 4, 3,
-- 2, 4, 0, 2, 3, 1, 3, 0, 2, 2,
-- 2, 3, 2, 1, 3, 0, 2, 2, 2, 3,
-- 3, 2, 2, 2, 0, 2, 2, 2, 4, 0,
-- 2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
-- 1, 3, 3, 3, 2, 3, 3, 1, 1, 0,
-- 1
-+ 0, 2, 2, 1, 2, 1, 0, 2, 2, 2,
-+ 2, 4, 4, 3, 1, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
-+ 3, 2, 3, 2, 0, 2, 2, 2, 2, 2,
-+ 2, 3, 4, 4, 4, 5, 3, 0, 3, 0,
-+ 2, 3, 2, 1, 3, 0, 2, 2, 2, 2,
-+ 2, 4, 3, 2, 4, 0, 2, 3, 1, 3,
-+ 0, 2, 2, 2, 3, 3, 3, 1, 3, 0,
-+ 2, 2, 2, 3, 3, 2, 2, 2, 0, 2,
-+ 2, 2, 4, 0, 2, 2, 2, 0, 2, 1,
-+ 1, 2, 2, 2, 1, 2, 0, 2, 1, 3,
-+ 3, 3, 2, 3, 3, 1, 1, 0, 1
- };
-
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-@@ -649,158 +620,172 @@
- means the default is an error. */
- static const yytype_uint8 yydefact[] =
- {
-- 3, 0, 0, 1, 0, 0, 0, 0, 0, 109,
-- 0, 0, 0, 0, 0, 0, 12, 16, 13, 14,
-- 18, 15, 17, 0, 19, 0, 4, 31, 22, 31,
-- 23, 52, 62, 5, 67, 20, 84, 75, 6, 24,
-- 84, 21, 8, 11, 91, 92, 0, 0, 93, 0,
-- 110, 0, 94, 0, 0, 0, 107, 108, 0, 0,
-- 0, 100, 95, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 96, 7, 71, 79, 48, 80, 27,
-- 29, 0, 104, 0, 0, 64, 0, 0, 9, 10,
-- 0, 0, 0, 0, 89, 0, 0, 0, 44, 0,
-- 37, 36, 32, 33, 0, 35, 34, 0, 0, 89,
-- 0, 56, 57, 53, 55, 54, 63, 51, 50, 68,
-- 70, 66, 69, 65, 86, 87, 85, 76, 78, 74,
-- 77, 73, 97, 103, 105, 106, 102, 101, 26, 82,
-- 0, 98, 0, 98, 98, 98, 0, 0, 0, 83,
-- 60, 98, 0, 98, 0, 0, 0, 38, 90, 0,
-- 0, 98, 46, 43, 25, 0, 59, 0, 88, 99,
-- 39, 40, 41, 0, 0, 45, 58, 61, 42, 47
-+ 6, 0, 104, 0, 3, 0, 6, 6, 99, 100,
-+ 0, 1, 0, 0, 0, 0, 117, 0, 0, 0,
-+ 0, 0, 0, 14, 18, 15, 16, 20, 17, 19,
-+ 21, 0, 22, 0, 7, 34, 25, 34, 26, 55,
-+ 65, 8, 70, 23, 93, 79, 9, 27, 88, 24,
-+ 10, 0, 105, 2, 74, 13, 0, 101, 0, 118,
-+ 0, 102, 0, 0, 0, 115, 116, 0, 0, 0,
-+ 108, 103, 0, 0, 0, 0, 0, 0, 0, 88,
-+ 0, 0, 75, 83, 51, 84, 30, 32, 0, 112,
-+ 0, 0, 67, 0, 0, 11, 12, 0, 0, 0,
-+ 0, 97, 0, 0, 0, 47, 0, 40, 39, 35,
-+ 36, 0, 38, 37, 0, 0, 97, 0, 59, 60,
-+ 56, 58, 57, 66, 54, 53, 71, 73, 69, 72,
-+ 68, 106, 95, 0, 94, 80, 82, 78, 81, 77,
-+ 90, 91, 89, 111, 113, 114, 110, 109, 29, 86,
-+ 0, 106, 0, 106, 106, 106, 0, 0, 0, 87,
-+ 63, 106, 0, 106, 0, 96, 0, 0, 41, 98,
-+ 0, 0, 106, 49, 46, 28, 0, 62, 0, 107,
-+ 92, 42, 43, 44, 0, 0, 48, 61, 64, 45,
-+ 50
- };
-
- /* YYDEFGOTO[NTERM-NUM]. */
- static const yytype_int16 yydefgoto[] =
- {
-- -1, 1, 2, 25, 26, 101, 27, 28, 29, 30,
-- 65, 102, 103, 147, 175, 31, 32, 117, 33, 67,
-- 113, 68, 34, 121, 35, 69, 36, 37, 129, 38,
-- 71, 39, 40, 41, 104, 105, 70, 106, 142, 143,
-- 42, 74, 156, 60, 61, 51
-+ -1, 3, 4, 5, 33, 34, 108, 35, 36, 37,
-+ 38, 74, 109, 110, 157, 186, 39, 40, 124, 41,
-+ 76, 120, 77, 42, 128, 43, 78, 6, 44, 45,
-+ 137, 46, 80, 47, 48, 49, 111, 112, 81, 113,
-+ 79, 134, 152, 153, 50, 7, 165, 69, 70, 60
- };
-
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
--#define YYPACT_NINF -80
-+#define YYPACT_NINF -90
- static const yytype_int16 yypact[] =
- {
-- -80, 2, 132, -80, -13, -1, -1, -2, -1, 9,
-- 33, -1, 27, 40, -3, 38, -80, -80, -80, -80,
-- -80, -80, -80, 71, -80, 77, -80, -80, -80, -80,
-- -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-- -80, -80, -80, -80, -80, -80, 57, 61, -80, 63,
-- -80, 76, -80, 87, 101, 133, -80, -80, -3, -3,
-- 195, -6, -80, 136, 149, 39, 104, 65, 150, 5,
-- 194, 5, 167, -80, 176, -80, -80, -80, -80, -80,
-- -80, 68, -80, -3, -3, 176, 72, 72, -80, -80,
-- 177, 187, 78, -1, -1, -3, 196, 72, -80, 222,
-- -80, -80, -80, -80, 221, -80, -80, 205, -1, -1,
-- 211, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-- -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-- -80, -80, -80, -80, 206, -80, -80, -80, -80, -80,
-- -3, 223, 209, 223, 197, 223, 72, 7, 210, -80,
-- -80, 223, 212, 223, 201, -3, 213, -80, -80, 214,
-- 215, 223, 208, -80, -80, 216, -80, 217, -80, 113,
-- -80, -80, -80, 218, -1, -80, -80, -80, -80, -80
-+ 4, 42, -90, 96, -90, 111, -90, 15, -90, -90,
-+ 75, -90, 82, 42, 104, 42, 110, 107, 42, 115,
-+ 125, -4, 121, -90, -90, -90, -90, -90, -90, -90,
-+ -90, 162, -90, 163, -90, -90, -90, -90, -90, -90,
-+ -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-+ -90, 139, -90, -90, 138, -90, 142, -90, 143, -90,
-+ 152, -90, 164, 167, 168, -90, -90, -4, -4, 77,
-+ -18, -90, 177, 185, 33, 71, 195, 247, 236, -2,
-+ 236, 171, -90, -90, -90, -90, -90, -90, 41, -90,
-+ -4, -4, 138, 97, 97, -90, -90, 186, 187, 194,
-+ 42, 42, -4, 196, 97, -90, 219, -90, -90, -90,
-+ -90, 210, -90, -90, 204, 42, 42, 199, -90, -90,
-+ -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-+ -90, 222, -90, 223, -90, -90, -90, -90, -90, -90,
-+ -90, -90, -90, -90, 215, -90, -90, -90, -90, -90,
-+ -4, 222, 228, 222, -5, 222, 97, 35, 229, -90,
-+ -90, 222, 232, 222, -4, -90, 135, 233, -90, -90,
-+ 234, 235, 222, 240, -90, -90, 237, -90, 239, -13,
-+ -90, -90, -90, -90, 244, 42, -90, -90, -90, -90,
-+ -90
- };
-
- /* YYPGOTO[NTERM-NUM]. */
- static const yytype_int16 yypgoto[] =
- {
-- -80, -80, -80, -80, 122, -34, -80, -80, -80, -80,
-- 220, -80, -80, -80, -80, -80, -80, -80, 59, -80,
-- -80, -80, -80, -80, -80, -80, -80, -80, -80, 125,
-- -80, -80, -80, -80, -80, 183, 219, 22, 142, -5,
-- 147, 192, 69, -54, -79, -80
-+ -90, -90, 269, 271, -90, 23, -70, -90, -90, -90,
-+ -90, 243, -90, -90, -90, -90, -90, -90, -90, -48,
-+ -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-+ -90, -20, -90, -90, -90, -90, -90, 206, 205, -68,
-+ -90, -90, 169, -1, 27, -7, 118, -66, -89, -90
- };
-
- /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
--#define YYTABLE_NINF -82
-+#define YYTABLE_NINF -86
- static const yytype_int16 yytable[] =
- {
-- 46, 47, 3, 49, 81, 82, 53, 136, 137, 6,
-- 7, 8, 9, 10, 11, 12, 13, 43, 146, 14,
-- 15, 86, 56, 57, 44, 45, 58, 87, 48, 134,
-- 135, 59, 162, 112, 50, 24, 125, 163, 125, -28,
-- 90, 144, -28, -28, -28, -28, -28, -28, -28, -28,
-- -28, 91, 54, -28, -28, 92, -28, 93, 94, 95,
-- 96, 97, 98, 52, 99, 55, 90, 161, 62, 100,
-- -49, -49, 63, -49, -49, -49, -49, 91, 64, -49,
-- -49, 92, 107, 108, 109, 110, 154, 73, 141, 115,
-- 99, 75, 126, 76, 126, 111, 133, 56, 57, 83,
-- 84, 169, 140, 151, -30, 90, 77, -30, -30, -30,
-- -30, -30, -30, -30, -30, -30, 91, 78, -30, -30,
-- 92, -30, 93, 94, 95, 96, 97, 98, 120, 99,
-- 128, 79, -2, 4, 100, 5, 6, 7, 8, 9,
-- 10, 11, 12, 13, 83, 84, 14, 15, 16, 17,
-- 18, 19, 20, 21, 22, 7, 8, 23, 10, 11,
-- 12, 13, 24, 80, 14, 15, 88, -81, 90, 179,
-- -81, -81, -81, -81, -81, -81, -81, -81, -81, 89,
-- 24, -81, -81, 92, -81, -81, -81, -81, -81, -81,
-- 116, 119, 99, 127, 122, 90, 130, 124, -72, -72,
-- -72, -72, -72, -72, -72, -72, 132, 138, -72, -72,
-- 92, 155, 158, 159, 160, 118, 123, 139, 131, 99,
-- 165, 145, 167, 148, 124, 73, 83, 84, 83, 84,
-- 173, 168, 83, 84, 149, 150, 153, 155, 84, 157,
-- 164, 174, 166, 170, 171, 172, 176, 177, 178, 66,
-- 114, 152, 85, 0, 0, 0, 0, 0, 0, 72
-+ 10, 88, 89, 54, 146, 147, 119, 1, 122, 164,
-+ 93, 141, 56, 142, 58, 156, 94, 62, 1, 90,
-+ 91, 131, 65, 66, 144, 145, 67, 90, 91, 132,
-+ 127, 68, 136, -31, 97, 2, 154, -31, -31, -31,
-+ -31, -31, -31, -31, -31, 98, 52, -31, -31, 99,
-+ -31, 100, 101, 102, 103, 104, -31, 105, 129, 106,
-+ 138, 173, 92, 141, 107, 142, 174, 172, 8, 9,
-+ 143, -33, 97, 90, 91, -33, -33, -33, -33, -33,
-+ -33, -33, -33, 98, 166, -33, -33, 99, -33, 100,
-+ 101, 102, 103, 104, -33, 105, 11, 106, 179, 151,
-+ 123, 126, 107, 135, 125, 130, 2, 139, 2, 90,
-+ 91, -5, 12, 55, 161, 13, 14, 15, 16, 17,
-+ 18, 19, 20, 65, 66, 21, 22, 23, 24, 25,
-+ 26, 27, 28, 29, 30, 57, 59, 31, 61, -4,
-+ 12, 63, 32, 13, 14, 15, 16, 17, 18, 19,
-+ 20, 64, 71, 21, 22, 23, 24, 25, 26, 27,
-+ 28, 29, 30, 72, 73, 31, 180, 90, 91, 52,
-+ 32, -85, 97, 82, 83, -85, -85, -85, -85, -85,
-+ -85, -85, -85, 84, 190, -85, -85, 99, -85, -85,
-+ -85, -85, -85, -85, -85, 85, 97, 106, 86, 87,
-+ -52, -52, 140, -52, -52, -52, -52, 98, 95, -52,
-+ -52, 99, 114, 115, 116, 117, 96, 148, 149, 150,
-+ 158, 106, 155, 159, 97, 163, 118, -76, -76, -76,
-+ -76, -76, -76, -76, -76, 160, 164, -76, -76, 99,
-+ 13, 14, 15, 16, 17, 18, 19, 20, 91, 106,
-+ 21, 22, 14, 15, 140, 17, 18, 19, 20, 168,
-+ 175, 21, 22, 177, 181, 182, 183, 32, 187, 167,
-+ 188, 169, 170, 171, 185, 189, 53, 51, 32, 176,
-+ 75, 178, 121, 0, 133, 162, 0, 0, 0, 0,
-+ 184
- };
-
- static const yytype_int16 yycheck[] =
- {
-- 5, 6, 0, 8, 58, 59, 11, 86, 87, 4,
-- 5, 6, 7, 8, 9, 10, 11, 30, 97, 14,
-- 15, 27, 25, 26, 25, 26, 29, 33, 30, 83,
-- 84, 34, 25, 67, 25, 30, 70, 30, 72, 0,
-- 1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
-- 11, 12, 25, 14, 15, 16, 17, 18, 19, 20,
-- 21, 22, 23, 30, 25, 25, 1, 146, 30, 30,
-- 5, 6, 1, 8, 9, 10, 11, 12, 1, 14,
-- 15, 16, 17, 18, 19, 20, 140, 30, 93, 67,
-- 25, 30, 70, 30, 72, 30, 28, 25, 26, 31,
-- 32, 155, 24, 108, 0, 1, 30, 3, 4, 5,
-- 6, 7, 8, 9, 10, 11, 12, 30, 14, 15,
-- 16, 17, 18, 19, 20, 21, 22, 23, 69, 25,
-- 71, 30, 0, 1, 30, 3, 4, 5, 6, 7,
-- 8, 9, 10, 11, 31, 32, 14, 15, 16, 17,
-- 18, 19, 20, 21, 22, 5, 6, 25, 8, 9,
-- 10, 11, 30, 30, 14, 15, 30, 0, 1, 174,
-- 3, 4, 5, 6, 7, 8, 9, 10, 11, 30,
-- 30, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-- 68, 69, 25, 71, 69, 1, 71, 30, 4, 5,
-- 6, 7, 8, 9, 10, 11, 30, 30, 14, 15,
-- 16, 14, 143, 144, 145, 68, 69, 30, 71, 25,
-- 151, 25, 153, 1, 30, 30, 31, 32, 31, 32,
-- 161, 30, 31, 32, 13, 30, 25, 14, 32, 30,
-- 30, 33, 30, 30, 30, 30, 30, 30, 30, 29,
-- 67, 109, 60, -1, -1, -1, -1, -1, -1, 40
-+ 1, 67, 68, 10, 93, 94, 76, 3, 76, 14,
-+ 28, 81, 13, 81, 15, 104, 34, 18, 3, 32,
-+ 33, 23, 26, 27, 90, 91, 30, 32, 33, 31,
-+ 78, 35, 80, 0, 1, 31, 102, 4, 5, 6,
-+ 7, 8, 9, 10, 11, 12, 31, 14, 15, 16,
-+ 17, 18, 19, 20, 21, 22, 23, 24, 78, 26,
-+ 80, 26, 69, 133, 31, 133, 31, 156, 26, 27,
-+ 29, 0, 1, 32, 33, 4, 5, 6, 7, 8,
-+ 9, 10, 11, 12, 150, 14, 15, 16, 17, 18,
-+ 19, 20, 21, 22, 23, 24, 0, 26, 164, 100,
-+ 77, 78, 31, 80, 77, 78, 31, 80, 31, 32,
-+ 33, 0, 1, 31, 115, 4, 5, 6, 7, 8,
-+ 9, 10, 11, 26, 27, 14, 15, 16, 17, 18,
-+ 19, 20, 21, 22, 23, 31, 26, 26, 31, 0,
-+ 1, 26, 31, 4, 5, 6, 7, 8, 9, 10,
-+ 11, 26, 31, 14, 15, 16, 17, 18, 19, 20,
-+ 21, 22, 23, 1, 1, 26, 31, 32, 33, 31,
-+ 31, 0, 1, 31, 31, 4, 5, 6, 7, 8,
-+ 9, 10, 11, 31, 185, 14, 15, 16, 17, 18,
-+ 19, 20, 21, 22, 23, 31, 1, 26, 31, 31,
-+ 5, 6, 31, 8, 9, 10, 11, 12, 31, 14,
-+ 15, 16, 17, 18, 19, 20, 31, 31, 31, 25,
-+ 1, 26, 26, 13, 1, 26, 31, 4, 5, 6,
-+ 7, 8, 9, 10, 11, 31, 14, 14, 15, 16,
-+ 4, 5, 6, 7, 8, 9, 10, 11, 33, 26,
-+ 14, 15, 5, 6, 31, 8, 9, 10, 11, 31,
-+ 31, 14, 15, 31, 31, 31, 31, 31, 31, 151,
-+ 31, 153, 154, 155, 34, 31, 7, 6, 31, 161,
-+ 37, 163, 76, -1, 79, 116, -1, -1, -1, -1,
-+ 172
- };
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
- static const yytype_uint8 yystos[] =
- {
-- 0, 36, 37, 0, 1, 3, 4, 5, 6, 7,
-- 8, 9, 10, 11, 14, 15, 16, 17, 18, 19,
-- 20, 21, 22, 25, 30, 38, 39, 41, 42, 43,
-- 44, 50, 51, 53, 57, 59, 61, 62, 64, 66,
-- 67, 68, 75, 30, 25, 26, 74, 74, 30, 74,
-- 25, 80, 30, 74, 25, 25, 25, 26, 29, 34,
-- 78, 79, 30, 1, 1, 45, 45, 54, 56, 60,
-- 71, 65, 71, 30, 76, 30, 30, 30, 30, 30,
-- 30, 78, 78, 31, 32, 76, 27, 33, 30, 30,
-- 1, 12, 16, 18, 19, 20, 21, 22, 23, 25,
-- 30, 40, 46, 47, 69, 70, 72, 17, 18, 19,
-- 20, 30, 40, 55, 70, 72, 39, 52, 75, 39,
-- 53, 58, 64, 75, 30, 40, 72, 39, 53, 63,
-- 64, 75, 30, 28, 78, 78, 79, 79, 30, 30,
-- 24, 74, 73, 74, 78, 25, 79, 48, 1, 13,
-- 30, 74, 73, 25, 78, 14, 77, 30, 77, 77,
-- 77, 79, 25, 30, 30, 77, 30, 77, 30, 78,
-- 30, 30, 30, 77, 33, 49, 30, 30, 30, 74
-+ 0, 3, 31, 37, 38, 39, 63, 81, 26, 27,
-+ 79, 0, 1, 4, 5, 6, 7, 8, 9, 10,
-+ 11, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-+ 23, 26, 31, 40, 41, 43, 44, 45, 46, 52,
-+ 53, 55, 59, 61, 64, 65, 67, 69, 70, 71,
-+ 80, 39, 31, 38, 81, 31, 79, 31, 79, 26,
-+ 85, 31, 79, 26, 26, 26, 27, 30, 35, 83,
-+ 84, 31, 1, 1, 47, 47, 56, 58, 62, 76,
-+ 68, 74, 31, 31, 31, 31, 31, 31, 83, 83,
-+ 32, 33, 81, 28, 34, 31, 31, 1, 12, 16,
-+ 18, 19, 20, 21, 22, 24, 26, 31, 42, 48,
-+ 49, 72, 73, 75, 17, 18, 19, 20, 31, 42,
-+ 57, 73, 75, 41, 54, 80, 41, 55, 60, 67,
-+ 80, 23, 31, 74, 77, 41, 55, 66, 67, 80,
-+ 31, 42, 75, 29, 83, 83, 84, 84, 31, 31,
-+ 25, 79, 78, 79, 83, 26, 84, 50, 1, 13,
-+ 31, 79, 78, 26, 14, 82, 83, 82, 31, 82,
-+ 82, 82, 84, 26, 31, 31, 82, 31, 82, 83,
-+ 31, 31, 31, 31, 82, 34, 51, 31, 31, 31,
-+ 79
- };
-
- #define yyerrok (yyerrstatus = 0)
-@@ -815,9 +800,18 @@
-
- /* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
-- Once GCC version 2 has supplanted version 1, this can go. */
-+ Once GCC version 2 has supplanted version 1, this can go. However,
-+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
-+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-+ discussed. */
-
- #define YYFAIL goto yyerrlab
-+#if defined YYFAIL
-+ /* This is here to suppress warnings from the GCC cpp's
-+ -Wunused-macros. Normally we don't worry about that warning, but
-+ some users do, and we want to make it easy for users to remove
-+ YYFAIL uses, which will produce warnings from Bison 2.5. */
-+#endif
-
- #define YYRECOVERING() (!!yyerrstatus)
-
-@@ -874,7 +868,7 @@
- we won't break user code: when these are the locations we know. */
-
- #ifndef YY_LOCATION_PRINT
--# if YYLTYPE_IS_TRIVIAL
-+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
- # define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
-@@ -985,17 +979,20 @@
- #if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
-+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
- #else
- static void
--yy_stack_print (bottom, top)
-- yytype_int16 *bottom;
-- yytype_int16 *top;
-+yy_stack_print (yybottom, yytop)
-+ yytype_int16 *yybottom;
-+ yytype_int16 *yytop;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (; bottom <= top; ++bottom)
-- YYFPRINTF (stderr, " %d", *bottom);
-+ for (; yybottom <= yytop; yybottom++)
-+ {
-+ int yybot = *yybottom;
-+ YYFPRINTF (stderr, " %d", yybot);
-+ }
- YYFPRINTF (stderr, "\n");
- }
-
-@@ -1029,11 +1026,11 @@
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
-- fprintf (stderr, " $%d = ", yyi + 1);
-+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
-- fprintf (stderr, "\n");
-+ YYFPRINTF (stderr, "\n");
- }
- }
-
-@@ -1308,7 +1305,7 @@
-
- switch (yytype)
- {
-- case 51: /* "choice_entry" */
-+ case 53: /* "choice_entry" */
-
- {
- fprintf(stderr, "%s:%d: missing end statement for this entry\n",
-@@ -1318,7 +1315,7 @@
- };
-
- break;
-- case 57: /* "if_entry" */
-+ case 59: /* "if_entry" */
-
- {
- fprintf(stderr, "%s:%d: missing end statement for this entry\n",
-@@ -1328,7 +1325,7 @@
- };
-
- break;
-- case 62: /* "menu_entry" */
-+ case 65: /* "menu_entry" */
-
- {
- fprintf(stderr, "%s:%d: missing end statement for this entry\n",
-@@ -1343,10 +1340,8 @@
- break;
- }
- }
--
-
- /* Prevent warnings from -Wmissing-prototypes. */
--
- #ifdef YYPARSE_PARAM
- #if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
-@@ -1362,11 +1357,10 @@
- #endif /* ! YYPARSE_PARAM */
-
-
--
--/* The look-ahead symbol. */
-+/* The lookahead symbol. */
- int yychar;
-
--/* The semantic value of the look-ahead symbol. */
-+/* The semantic value of the lookahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -1374,9 +1368,9 @@
-
-
-
--/*----------.
--| yyparse. |
--`----------*/
-+/*-------------------------.
-+| yyparse or yypush_parse. |
-+`-------------------------*/
-
- #ifdef YYPARSE_PARAM
- #if (defined __STDC__ || defined __C99__FUNC__ \
-@@ -1400,14 +1394,39 @@
- #endif
- #endif
- {
--
-- int yystate;
-+
-+
-+ int yystate;
-+ /* Number of tokens to shift before error messages enabled. */
-+ int yyerrstatus;
-+
-+ /* The stacks and their tools:
-+ `yyss': related to states.
-+ `yyvs': related to semantic values.
-+
-+ Refer to the stacks thru separate pointers, to allow yyoverflow
-+ to reallocate them elsewhere. */
-+
-+ /* The state stack. */
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss;
-+ yytype_int16 *yyssp;
-+
-+ /* The semantic value stack. */
-+ YYSTYPE yyvsa[YYINITDEPTH];
-+ YYSTYPE *yyvs;
-+ YYSTYPE *yyvsp;
-+
-+ YYSIZE_T yystacksize;
-+
- int yyn;
- int yyresult;
-- /* Number of tokens to shift before error messages enabled. */
-- int yyerrstatus;
-- /* Look-ahead token as an internal (translated) token number. */
-- int yytoken = 0;
-+ /* Lookahead token as an internal (translated) token number. */
-+ int yytoken;
-+ /* The variables used to return semantic value and location from the
-+ action routines. */
-+ YYSTYPE yyval;
-+
- #if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
-@@ -1415,51 +1434,28 @@
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
- #endif
-
-- /* Three stacks and their tools:
-- `yyss': related to states,
-- `yyvs': related to semantic values,
-- `yyls': related to locations.
--
-- Refer to the stacks thru separate pointers, to allow yyoverflow
-- to reallocate them elsewhere. */
--
-- /* The state stack. */
-- yytype_int16 yyssa[YYINITDEPTH];
-- yytype_int16 *yyss = yyssa;
-- yytype_int16 *yyssp;
--
-- /* The semantic value stack. */
-- YYSTYPE yyvsa[YYINITDEPTH];
-- YYSTYPE *yyvs = yyvsa;
-- YYSTYPE *yyvsp;
--
--
--
- #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
-- YYSIZE_T yystacksize = YYINITDEPTH;
--
-- /* The variables used to return semantic value and location from the
-- action routines. */
-- YYSTYPE yyval;
--
--
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
-+ yytoken = 0;
-+ yyss = yyssa;
-+ yyvs = yyvsa;
-+ yystacksize = YYINITDEPTH;
-+
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
-- yychar = YYEMPTY; /* Cause a token to be read. */
-+ yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
--
- yyssp = yyss;
- yyvsp = yyvs;
-
-@@ -1489,7 +1485,6 @@
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
--
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
-@@ -1497,7 +1492,6 @@
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
--
- &yystacksize);
-
- yyss = yyss1;
-@@ -1520,9 +1514,8 @@
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
-- YYSTACK_RELOCATE (yyss);
-- YYSTACK_RELOCATE (yyvs);
--
-+ YYSTACK_RELOCATE (yyss_alloc, yyss);
-+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
- # undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
-@@ -1533,7 +1526,6 @@
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
--
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
-@@ -1543,6 +1535,9 @@
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-+ if (yystate == YYFINAL)
-+ YYACCEPT;
-+
- goto yybackup;
-
- /*-----------.
-@@ -1551,16 +1546,16 @@
- yybackup:
-
- /* Do appropriate processing given the current state. Read a
-- look-ahead token if we need one and don't already have one. */
-+ lookahead token if we need one and don't already have one. */
-
-- /* First try to decide what to do without reference to look-ahead token. */
-+ /* First try to decide what to do without reference to lookahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a look-ahead token if don't already have one. */
-+ /* Not known => get a lookahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1592,20 +1587,16 @@
- goto yyreduce;
- }
-
-- if (yyn == YYFINAL)
-- YYACCEPT;
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-- /* Shift the look-ahead token. */
-+ /* Shift the lookahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-- /* Discard the shifted token unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
-+ /* Discard the shifted token. */
-+ yychar = YYEMPTY;
-
- yystate = yyn;
- *++yyvsp = yylval;
-@@ -1644,39 +1635,39 @@
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
-- case 8:
-+ case 10:
-
- { zconf_error("unexpected end statement"); ;}
- break;
-
-- case 9:
-+ case 11:
-
- { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); ;}
- break;
-
-- case 10:
-+ case 12:
-
- {
- zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[(2) - (4)].id)->name);
- ;}
- break;
-
-- case 11:
-+ case 13:
-
- { zconf_error("invalid statement"); ;}
- break;
-
-- case 25:
-+ case 28:
-
- { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;}
- break;
-
-- case 26:
-+ case 29:
-
- { zconf_error("invalid option"); ;}
- break;
-
-- case 27:
-+ case 30:
-
- {
- struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
-@@ -1686,7 +1677,7 @@
- ;}
- break;
-
-- case 28:
-+ case 31:
-
- {
- menu_end_entry();
-@@ -1694,7 +1685,7 @@
- ;}
- break;
-
-- case 29:
-+ case 32:
-
- {
- struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
-@@ -1704,7 +1695,7 @@
- ;}
- break;
-
-- case 30:
-+ case 33:
-
- {
- if (current_entry->prompt)
-@@ -1716,7 +1707,7 @@
- ;}
- break;
-
-- case 38:
-+ case 41:
-
- {
- menu_set_type((yyvsp[(1) - (3)].id)->stype);
-@@ -1726,7 +1717,7 @@
- ;}
- break;
-
-- case 39:
-+ case 42:
-
- {
- menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
-@@ -1734,7 +1725,7 @@
- ;}
- break;
-
-- case 40:
-+ case 43:
-
- {
- menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
-@@ -1746,7 +1737,7 @@
- ;}
- break;
-
-- case 41:
-+ case 44:
-
- {
- menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
-@@ -1754,7 +1745,7 @@
- ;}
- break;
-
-- case 42:
-+ case 45:
-
- {
- menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
-@@ -1762,10 +1753,10 @@
- ;}
- break;
-
-- case 45:
-+ case 48:
-
- {
-- struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
-+ const struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
- if (id && id->flags & TF_OPTION)
- menu_add_option(id->token, (yyvsp[(3) - (3)].string));
- else
-@@ -1774,17 +1765,17 @@
- ;}
- break;
-
-- case 46:
-+ case 49:
-
- { (yyval.string) = NULL; ;}
- break;
-
-- case 47:
-+ case 50:
-
- { (yyval.string) = (yyvsp[(2) - (2)].string); ;}
- break;
-
-- case 48:
-+ case 51:
-
- {
- struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
-@@ -1795,14 +1786,14 @@
- ;}
- break;
-
-- case 49:
-+ case 52:
-
- {
- (yyval.menu) = menu_add_menu();
- ;}
- break;
-
-- case 50:
-+ case 53:
-
- {
- if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
-@@ -1812,7 +1803,7 @@
- ;}
- break;
-
-- case 58:
-+ case 61:
-
- {
- menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
-@@ -1820,7 +1811,7 @@
- ;}
- break;
-
-- case 59:
-+ case 62:
-
- {
- if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
-@@ -1833,7 +1824,7 @@
- ;}
- break;
-
-- case 60:
-+ case 63:
-
- {
- current_entry->sym->flags |= SYMBOL_OPTIONAL;
-@@ -1841,7 +1832,7 @@
- ;}
- break;
-
-- case 61:
-+ case 64:
-
- {
- if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
-@@ -1853,7 +1844,7 @@
- ;}
- break;
-
-- case 64:
-+ case 67:
-
- {
- printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
-@@ -1863,7 +1854,7 @@
- ;}
- break;
-
-- case 65:
-+ case 68:
-
- {
- if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
-@@ -1873,7 +1864,14 @@
- ;}
- break;
-
-- case 71:
-+ case 74:
-+
-+ {
-+ menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
-+;}
-+ break;
-+
-+ case 75:
-
- {
- menu_add_entry(NULL);
-@@ -1882,14 +1880,14 @@
- ;}
- break;
-
-- case 72:
-+ case 76:
-
- {
- (yyval.menu) = menu_add_menu();
- ;}
- break;
-
-- case 73:
-+ case 77:
-
- {
- if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
-@@ -1899,7 +1897,7 @@
- ;}
- break;
-
-- case 79:
-+ case 83:
-
- {
- printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
-@@ -1907,7 +1905,7 @@
- ;}
- break;
-
-- case 80:
-+ case 84:
-
- {
- menu_add_entry(NULL);
-@@ -1916,14 +1914,14 @@
- ;}
- break;
-
-- case 81:
-+ case 85:
-
- {
- menu_end_entry();
- ;}
- break;
-
-- case 82:
-+ case 86:
-
- {
- printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
-@@ -1931,14 +1929,14 @@
- ;}
- break;
-
-- case 83:
-+ case 87:
-
- {
- current_entry->help = (yyvsp[(2) - (2)].string);
- ;}
- break;
-
-- case 88:
-+ case 92:
-
- {
- menu_add_dep((yyvsp[(3) - (4)].expr));
-@@ -1946,90 +1944,96 @@
- ;}
- break;
-
-- case 90:
-+ case 96:
-+
-+ {
-+ menu_add_visibility((yyvsp[(2) - (2)].expr));
-+;}
-+ break;
-+
-+ case 98:
-
- {
- menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
- ;}
- break;
-
-- case 93:
-+ case 101:
-
- { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
- break;
-
-- case 94:
-+ case 102:
-
- { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
- break;
-
-- case 95:
-+ case 103:
-
- { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
- break;
-
-- case 98:
-+ case 106:
-
- { (yyval.expr) = NULL; ;}
- break;
-
-- case 99:
-+ case 107:
-
- { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
- break;
-
-- case 100:
-+ case 108:
-
- { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
- break;
-
-- case 101:
-+ case 109:
-
- { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
- break;
-
-- case 102:
-+ case 110:
-
- { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
- break;
-
-- case 103:
-+ case 111:
-
- { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
- break;
-
-- case 104:
-+ case 112:
-
- { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
- break;
-
-- case 105:
-+ case 113:
-
- { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
- break;
-
-- case 106:
-+ case 114:
-
- { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
- break;
-
-- case 107:
-+ case 115:
-
- { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
- break;
-
-- case 108:
-+ case 116:
-
- { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
- break;
-
-- case 109:
-+ case 117:
-
- { (yyval.string) = NULL; ;}
- break;
-
-
--/* Line 1267 of yacc.c. */
-
- default: break;
- }
-@@ -2041,7 +2045,6 @@
-
- *++yyvsp = yyval;
-
--
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-@@ -2106,7 +2109,7 @@
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse look-ahead token after an
-+ /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-@@ -2123,7 +2126,7 @@
- }
- }
-
-- /* Else will try to reuse look-ahead token after shifting the error
-+ /* Else will try to reuse lookahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -2180,9 +2183,6 @@
- YY_STACK_PRINT (yyss, yyssp);
- }
-
-- if (yyn == YYFINAL)
-- YYACCEPT;
--
- *++yyvsp = yylval;
-
-
-@@ -2207,7 +2207,7 @@
- yyresult = 1;
- goto yyreturn;
-
--#ifndef yyoverflow
-+#if !defined(yyoverflow) || YYERROR_VERBOSE
- /*-------------------------------------------------.
- | yyexhaustedlab -- memory exhaustion comes here. |
- `-------------------------------------------------*/
-@@ -2218,7 +2218,7 @@
- #endif
-
- yyreturn:
-- if (yychar != YYEOF && yychar != YYEMPTY)
-+ if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- /* Do not reclaim the symbols of the rule which action triggered
-@@ -2255,16 +2255,14 @@
- zconf_initscan(name);
-
- sym_init();
-- menu_init();
-+ _menu_init();
- modules_sym = sym_lookup(NULL, 0);
- modules_sym->type = S_BOOLEAN;
- modules_sym->flags |= SYMBOL_AUTO;
- rootmenu.prompt = menu_add_prompt(P_MENU, "uClibc Configuration", NULL);
-
--#if YYDEBUG
- if (getenv("ZCONF_DEBUG"))
- zconfdebug = 1;
--#endif
- zconfparse();
- if (zconfnerrs)
- exit(1);
-@@ -2274,6 +2272,10 @@
- prop = prop_alloc(P_DEFAULT, modules_sym);
- prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
- }
-+
-+ rootmenu.prompt->text = _(rootmenu.prompt->text);
-+ rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
-+
- menu_finalize(&rootmenu);
- for_all_symbols(i, sym) {
- if (sym_check_deps(sym))
-@@ -2284,7 +2286,7 @@
- sym_set_change_count(1);
- }
-
--const char *zconf_tokenname(int token)
-+static const char *zconf_tokenname(int token)
- {
- switch (token) {
- case T_MENU: return "menu";
-@@ -2294,11 +2296,12 @@
- case T_IF: return "if";
- case T_ENDIF: return "endif";
- case T_DEPENDS: return "depends";
-+ case T_VISIBLE: return "visible";
- }
- return "<token>";
- }
-
--static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
-+static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken)
- {
- if (id->token != endtoken) {
- zconf_error("unexpected '%s' within %s block",
-@@ -2343,12 +2346,10 @@
-
- static void zconferror(const char *err)
- {
--#if YYDEBUG
- fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
--#endif
- }
-
--void print_quoted_string(FILE *out, const char *str)
-+static void print_quoted_string(FILE *out, const char *str)
- {
- const char *p;
- int len;
-@@ -2365,15 +2366,15 @@
- putc('"', out);
- }
-
--void print_symbol(FILE *out, struct menu *menu)
-+static void print_symbol(FILE *out, struct menu *menu)
- {
- struct symbol *sym = menu->sym;
- struct property *prop;
-
- if (sym_is_choice(sym))
-- fprintf(out, "choice\n");
-+ fprintf(out, "\nchoice\n");
- else
-- fprintf(out, "config %s\n", sym->name);
-+ fprintf(out, "\nconfig %s\n", sym->name);
- switch (sym->type) {
- case S_BOOLEAN:
- fputs(" boolean\n", out);
-@@ -2419,6 +2420,21 @@
- case P_CHOICE:
- fputs(" #choice value\n", out);
- break;
-+ case P_SELECT:
-+ fputs( " select ", out);
-+ expr_fprint(prop->expr, out);
-+ fputc('\n', out);
-+ break;
-+ case P_RANGE:
-+ fputs( " range ", out);
-+ expr_fprint(prop->expr, out);
-+ fputc('\n', out);
-+ break;
-+ case P_MENU:
-+ fputs( " menu ", out);
-+ print_quoted_string(out, prop->text);
-+ fputc('\n', out);
-+ break;
- default:
- fprintf(out, " unknown prop %d!\n", prop->type);
- break;
-@@ -2430,7 +2446,6 @@
- menu->help[len] = 0;
- fprintf(out, " help\n%s\n", menu->help);
- }
-- fputc('\n', out);
- }
-
- void zconfdump(FILE *out)
-@@ -2463,7 +2478,6 @@
- expr_fprint(prop->visible.expr, out);
- fputc('\n', out);
- }
-- fputs("\n", out);
- }
-
- if (menu->list)
-@@ -2481,7 +2495,7 @@
- }
- }
-
--#include "lex.zconf.c"
-+#include "zconf.lex.c"
- #include "util.c"
- #include "confdata.c"
- #include "expr.c"
-diff -Nur uClibc-0.9.33.2/extra/config/zconf.y uClibc-git/extra/config/zconf.y
---- uClibc-0.9.33.2/extra/config/zconf.y 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/config/zconf.y 2014-07-25 20:36:04.865324519 +0200
-@@ -11,11 +11,8 @@
- #include <string.h>
- #include <stdbool.h>
-
--#define LKC_DIRECT_LINK
- #include "lkc.h"
-
--#include "zconf.hash.c"
--
- #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
-
- #define PRINTD 0x0001
-@@ -27,18 +24,14 @@
- static void zconfprint(const char *err, ...);
- static void zconf_error(const char *err, ...);
- static void zconferror(const char *err);
--static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
-+static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken);
-
--struct symbol *symbol_hash[257];
-+struct symbol *symbol_hash[SYMBOL_HASHSIZE];
-
- static struct menu *current_menu, *current_entry;
-
--#define YYDEBUG 0
--#if YYDEBUG
--#define YYERROR_VERBOSE
--#endif
- %}
--%expect 26
-+%expect 30
-
- %union
- {
-@@ -47,7 +40,7 @@
- struct symbol *symbol;
- struct expr *expr;
- struct menu *menu;
-- struct kconf_id *id;
-+ const struct kconf_id *id;
- }
-
- %token <id>T_MAINMENU
-@@ -70,6 +63,7 @@
- %token <id>T_DEFAULT
- %token <id>T_SELECT
- %token <id>T_RANGE
-+%token <id>T_VISIBLE
- %token <id>T_OPTION
- %token <id>T_ON
- %token <string> T_WORD
-@@ -100,15 +94,21 @@
- menu_end_menu();
- } if_entry menu_entry choice_entry
-
-+%{
-+/* Include zconf.hash.c here so it can see the token constants. */
-+#include "zconf.hash.c"
-+%}
-+
- %%
--input: stmt_list;
-+input: nl start | start;
-+
-+start: mainmenu_stmt stmt_list | stmt_list;
-
- stmt_list:
- /* empty */
- | stmt_list common_stmt
- | stmt_list choice_stmt
- | stmt_list menu_stmt
-- | stmt_list T_MAINMENU prompt nl
- | stmt_list end { zconf_error("unexpected end statement"); }
- | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); }
- | stmt_list option_name error T_EOL
-@@ -119,7 +119,7 @@
- ;
-
- option_name:
-- T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT
-+ T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
- ;
-
- common_stmt:
-@@ -224,7 +224,7 @@
- /* empty */
- | symbol_option_list T_WORD symbol_option_arg
- {
-- struct kconf_id *id = kconf_id_lookup($2, strlen($2));
-+ const struct kconf_id *id = kconf_id_lookup($2, strlen($2));
- if (id && id->flags & TF_OPTION)
- menu_add_option(id->token, $3);
- else
-@@ -339,6 +339,13 @@
- | if_block choice_stmt
- ;
-
-+/* mainmenu entry */
-+
-+mainmenu_stmt: T_MAINMENU prompt nl
-+{
-+ menu_add_prompt(P_MENU, $2, NULL);
-+};
-+
- /* menu entry */
-
- menu: T_MENU prompt T_EOL
-@@ -348,7 +355,7 @@
- printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
- };
-
--menu_entry: menu depends_list
-+menu_entry: menu visibility_list depends_list
- {
- $$ = menu_add_menu();
- };
-@@ -419,6 +426,19 @@
- printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
- };
-
-+/* visibility option */
-+
-+visibility_list:
-+ /* empty */
-+ | visibility_list visible
-+ | visibility_list T_EOL
-+;
-+
-+visible: T_VISIBLE if_expr
-+{
-+ menu_add_visibility($2);
-+};
-+
- /* prompt statement */
-
- prompt_stmt_opt:
-@@ -472,16 +492,14 @@
- zconf_initscan(name);
-
- sym_init();
-- menu_init();
-+ _menu_init();
- modules_sym = sym_lookup(NULL, 0);
- modules_sym->type = S_BOOLEAN;
- modules_sym->flags |= SYMBOL_AUTO;
- rootmenu.prompt = menu_add_prompt(P_MENU, "uClibc Configuration", NULL);
-
--#if YYDEBUG
- if (getenv("ZCONF_DEBUG"))
- zconfdebug = 1;
--#endif
- zconfparse();
- if (zconfnerrs)
- exit(1);
-@@ -491,6 +509,10 @@
- prop = prop_alloc(P_DEFAULT, modules_sym);
- prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
- }
-+
-+ rootmenu.prompt->text = _(rootmenu.prompt->text);
-+ rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
-+
- menu_finalize(&rootmenu);
- for_all_symbols(i, sym) {
- if (sym_check_deps(sym))
-@@ -501,7 +523,7 @@
- sym_set_change_count(1);
- }
-
--const char *zconf_tokenname(int token)
-+static const char *zconf_tokenname(int token)
- {
- switch (token) {
- case T_MENU: return "menu";
-@@ -511,11 +533,12 @@
- case T_IF: return "if";
- case T_ENDIF: return "endif";
- case T_DEPENDS: return "depends";
-+ case T_VISIBLE: return "visible";
- }
- return "<token>";
- }
-
--static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
-+static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken)
- {
- if (id->token != endtoken) {
- zconf_error("unexpected '%s' within %s block",
-@@ -560,12 +583,10 @@
-
- static void zconferror(const char *err)
- {
--#if YYDEBUG
- fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
--#endif
- }
-
--void print_quoted_string(FILE *out, const char *str)
-+static void print_quoted_string(FILE *out, const char *str)
- {
- const char *p;
- int len;
-@@ -582,15 +603,15 @@
- putc('"', out);
- }
-
--void print_symbol(FILE *out, struct menu *menu)
-+static void print_symbol(FILE *out, struct menu *menu)
- {
- struct symbol *sym = menu->sym;
- struct property *prop;
-
- if (sym_is_choice(sym))
-- fprintf(out, "choice\n");
-+ fprintf(out, "\nchoice\n");
- else
-- fprintf(out, "config %s\n", sym->name);
-+ fprintf(out, "\nconfig %s\n", sym->name);
- switch (sym->type) {
- case S_BOOLEAN:
- fputs(" boolean\n", out);
-@@ -636,6 +657,21 @@
- case P_CHOICE:
- fputs(" #choice value\n", out);
- break;
-+ case P_SELECT:
-+ fputs( " select ", out);
-+ expr_fprint(prop->expr, out);
-+ fputc('\n', out);
-+ break;
-+ case P_RANGE:
-+ fputs( " range ", out);
-+ expr_fprint(prop->expr, out);
-+ fputc('\n', out);
-+ break;
-+ case P_MENU:
-+ fputs( " menu ", out);
-+ print_quoted_string(out, prop->text);
-+ fputc('\n', out);
-+ break;
- default:
- fprintf(out, " unknown prop %d!\n", prop->type);
- break;
-@@ -647,7 +683,6 @@
- menu->help[len] = 0;
- fprintf(out, " help\n%s\n", menu->help);
- }
-- fputc('\n', out);
- }
-
- void zconfdump(FILE *out)
-@@ -680,7 +715,6 @@
- expr_fprint(prop->visible.expr, out);
- fputc('\n', out);
- }
-- fputs("\n", out);
- }
-
- if (menu->list)
-@@ -698,7 +732,7 @@
- }
- }
-
--#include "lex.zconf.c"
-+#include "zconf.lex.c"
- #include "util.c"
- #include "confdata.c"
- #include "expr.c"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.alpha uClibc-git/extra/Configs/Config.alpha
---- uClibc-0.9.33.2/extra/Configs/Config.alpha 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.alpha 2014-07-25 20:36:04.449322340 +0200
-@@ -13,4 +13,5 @@
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_MMU
- select ARCH_HAS_NO_LDSO
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
- select UCLIBC_HAS_LFS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.arc uClibc-git/extra/Configs/Config.arc
---- uClibc-0.9.33.2/extra/Configs/Config.arc 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/Configs/Config.arc 2014-07-25 20:36:04.449322340 +0200
-@@ -0,0 +1,23 @@
-+#
-+# For a description of the syntax of this configuration file,
-+# see extra/config/Kconfig-language.txt
-+#
-+config TARGET_ARCH
-+ default "arc"
-+
-+config FORCE_OPTIONS_FOR_ARCH
-+ bool
-+ default y
-+ select ARCH_ANY_ENDIAN
-+
-+choice
-+ prompt "Target Processor Type"
-+ default CONFIG_ARC_CPU_700
-+
-+config CONFIG_ARC_CPU_700
-+ bool "ARC700"
-+ select ARCH_HAS_MMU
-+ help
-+ ARCompact ISA based ARC CPU
-+
-+endchoice
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.arm uClibc-git/extra/Configs/Config.arm
---- uClibc-0.9.33.2/extra/Configs/Config.arm 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.arm 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,8 @@
- bool
- default y
- select ARCH_ANY_ENDIAN
-+ select ARCH_HAS_UCONTEXT
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- config CONFIG_ARM_EABI
- bool "Build for EABI"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.avr32 uClibc-git/extra/Configs/Config.avr32
---- uClibc-0.9.33.2/extra/Configs/Config.avr32 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.avr32 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,7 @@
- bool
- default y
- select ARCH_BIG_ENDIAN
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
- select FORCE_SHAREABLE_TEXT_SEGMENTS
-
- choice
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.bfin uClibc-git/extra/Configs/Config.bfin
---- uClibc-0.9.33.2/extra/Configs/Config.bfin 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.bfin 2014-07-25 20:36:04.449322340 +0200
-@@ -12,3 +12,4 @@
- default y
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_NO_MMU
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.cris uClibc-git/extra/Configs/Config.cris
---- uClibc-0.9.33.2/extra/Configs/Config.cris 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.cris 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,7 @@
- bool
- default y
- select ARCH_LITTLE_ENDIAN
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target Architecture Type"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.e1 uClibc-git/extra/Configs/Config.e1
---- uClibc-0.9.33.2/extra/Configs/Config.e1 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.e1 2014-07-25 20:36:04.449322340 +0200
-@@ -13,3 +13,4 @@
- select ARCH_BIG_ENDIAN
- select ARCH_HAS_NO_MMU
- select ARCH_HAS_NO_SHARED
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.frv uClibc-git/extra/Configs/Config.frv
---- uClibc-0.9.33.2/extra/Configs/Config.frv 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.frv 2014-07-25 20:36:04.449322340 +0200
-@@ -13,3 +13,4 @@
- select ARCH_BIG_ENDIAN
- select UCLIBC_HAS_FPU
- select ARCH_HAS_NO_MMU
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.h8300 uClibc-git/extra/Configs/Config.h8300
---- uClibc-0.9.33.2/extra/Configs/Config.h8300 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.h8300 2014-07-25 20:36:04.449322340 +0200
-@@ -12,6 +12,7 @@
- default y
- select ARCH_ANY_ENDIAN
- select ARCH_HAS_NO_MMU
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target Processor"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.hppa uClibc-git/extra/Configs/Config.hppa
---- uClibc-0.9.33.2/extra/Configs/Config.hppa 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.hppa 2014-07-25 20:36:04.449322340 +0200
-@@ -15,3 +15,4 @@
- select HAS_NO_THREADS
- select ARCH_HAS_NO_LDSO
- select HAVE_NO_SSP
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.i386 uClibc-git/extra/Configs/Config.i386
---- uClibc-0.9.33.2/extra/Configs/Config.i386 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.i386 2014-07-25 20:36:04.449322340 +0200
-@@ -12,44 +12,17 @@
- default y
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_MMU
-+ select ARCH_HAS_UCONTEXT
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target x86 Processor Family"
-- default CONFIG_486
-+ default CONFIG_686
- help
- This is the processor type of your CPU. This information is used for
-- optimizing purposes. To build a library that will run on all x86 CPU
-- types (albeit not optimally fast), you can specify "386" here. If
-- you pick anything other than "386", there is no guarantee that uClibc
-- will even run on anything other than the selected processor type.
--
-- Here are the settings recommended for greatest speed:
-- - "Generic 386" select this if your compiler is already setup to
-- optimize things properly.
-- - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
-- 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
-- will run on a 386 class machine.
-- - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
-- SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
-- - "586" for Intel Pentium and other generic Pentium CPUs
-- - "Pentium-MMX" for the Intel Pentium MMX.
-- - "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II.
-- - "Pentium-III" for the Intel Pentium III
-- and Celerons based on the Coppermine core.
-- - "Pentium-4" for the Intel Pentium 4.
-- - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
-- - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
-- - "Elan" for the AMD Elan.
-- - "Crusoe" for the Transmeta Crusoe series.
-- - "Winchip-C6" for original IDT Winchip.
-- - "Winchip-2/Winchip-2A/Winchip-3" for IDT Winchip CPUs
-- - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
-- - "VIA C3-2 Nehemiah" model 9 and above.
--
-- If you don't know what to do, choose "386".
--
--config CONFIG_GENERIC_386
-- bool "Generic 386"
-+ selecting different handcoded optimization functions. Nowadays, most
-+ people have an i686 CPU. If you don't, you most likely know what this
-+ means and can pick the right one for your processor.
-
- config CONFIG_386
- bool "386"
-@@ -58,45 +31,9 @@
- bool "486"
-
- config CONFIG_586
-- bool "Pentium/586/K5/5x86/6x86/6x86MX"
--
--config CONFIG_586MMX
-- bool "Pentium-MMX"
-+ bool "586"
-
- config CONFIG_686
-- bool "Pentium-Pro"
--
--config CONFIG_PENTIUMII
-- bool "Celeron/Pentium-II"
--
--config CONFIG_PENTIUMIII
-- bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
--
--config CONFIG_PENTIUM4
-- bool "Pentium-4/Celeron(P4-based)/Xeon"
--
--config CONFIG_K6
-- bool "K6/K6-II/K6-III"
--
--config CONFIG_K7
-- bool "Athlon/Duron/K7"
--
--config CONFIG_ELAN
-- bool "Elan"
--
--config CONFIG_CRUSOE
-- bool "Crusoe"
--
--config CONFIG_WINCHIPC6
-- bool "Winchip-C6"
--
--config CONFIG_WINCHIP2
-- bool "Winchip-2/Winchip-2A/Winchip-3"
--
--config CONFIG_CYRIXIII
-- bool "CyrixIII/VIA-C3"
--
--config CONFIG_NEHEMIAH
-- bool "VIA C3-2 (Nehemiah)"
-+ bool "686"
-
- endchoice
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.i960 uClibc-git/extra/Configs/Config.i960
---- uClibc-0.9.33.2/extra/Configs/Config.i960 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.i960 2014-07-25 20:36:04.449322340 +0200
-@@ -13,3 +13,4 @@
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_NO_MMU
- select HAS_NO_THREADS
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.ia64 uClibc-git/extra/Configs/Config.ia64
---- uClibc-0.9.33.2/extra/Configs/Config.ia64 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.ia64 2014-07-25 20:36:04.449322340 +0200
-@@ -13,3 +13,4 @@
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_MMU
- select ARCH_HAS_NO_LDSO
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.in uClibc-git/extra/Configs/Config.in
---- uClibc-0.9.33.2/extra/Configs/Config.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.in 2014-07-25 20:36:04.449322340 +0200
-@@ -3,15 +3,20 @@
- # see extra/config/Kconfig-language.txt
- #
-
--mainmenu "uClibc C Library Configuration"
-+mainmenu "uClibc $VERSION C Library Configuration"
-
- config DESIRED_TARGET_ARCH
- string
- option env="ARCH"
-
-+config VERSION
-+ string
-+ option env="VERSION"
-+
- choice
- prompt "Target Architecture"
- default TARGET_alpha if DESIRED_TARGET_ARCH = "alpha"
-+ default TARGET_arc if DESIRED_TARGET_ARCH = "arc"
- default TARGET_arm if DESIRED_TARGET_ARCH = "arm"
- default TARGET_avr32 if DESIRED_TARGET_ARCH = "avr32"
- default TARGET_bfin if DESIRED_TARGET_ARCH = "bfin"
-@@ -24,6 +29,7 @@
- default TARGET_i960 if DESIRED_TARGET_ARCH = "i960"
- default TARGET_ia64 if DESIRED_TARGET_ARCH = "ia64"
- default TARGET_m68k if DESIRED_TARGET_ARCH = "m68k"
-+ default TARGET_metag if DESIRED_TARGET_ARCH = "metag"
- default TARGET_microblaze if DESIRED_TARGET_ARCH = "microblaze"
- default TARGET_mips if DESIRED_TARGET_ARCH = "mips"
- default TARGET_nios if DESIRED_TARGET_ARCH = "nios"
-@@ -42,6 +48,9 @@
- config TARGET_alpha
- bool "alpha"
-
-+config TARGET_arc
-+ bool "arc"
-+
- config TARGET_arm
- bool "arm"
-
-@@ -81,6 +90,9 @@
- config TARGET_m68k
- bool "m68k"
-
-+config TARGET_metag
-+ bool "metag"
-+
- config TARGET_microblaze
- bool "microblaze"
-
-@@ -174,6 +186,10 @@
- source "extra/Configs/Config.m68k"
- endif
-
-+if TARGET_metag
-+source "extra/Configs/Config.metag"
-+endif
-+
- if TARGET_nios
- source "extra/Configs/Config.nios"
- endif
-@@ -226,15 +242,19 @@
- source "extra/Configs/Config.c6x"
- endif
-
-+if TARGET_arc
-+source "extra/Configs/Config.arc"
-+endif
-+
- config TARGET_SUBARCH
- string
- default "e500" if CONFIG_E500
- default "classic" if CONFIG_CLASSIC
- default "sh4" if CONFIG_SH4
-- default "" if CONFIG_GENERIC_386 || CONFIG_386
-+ default "" if CONFIG_386
- default "i486" if CONFIG_486
-- default "i586" if CONFIG_586 || CONFIG_586MMX
-- default "i686" if TARGET_ARCH = "i386"
-+ default "i586" if CONFIG_586
-+ default "i686" if CONFIG_686
- default ""
-
- source "extra/Configs/Config.in.arch"
-@@ -261,6 +281,9 @@
- bool
- select ARCH_HAS_NO_SHARED
-
-+config ARCH_HAS_UCONTEXT
-+ bool
-+
- config HAVE_SHARED
- bool "Enable shared libraries"
- depends on !ARCH_HAS_NO_SHARED
-@@ -395,6 +418,13 @@
- Usage of RUNPATH tags is not too common, so disabling this feature
- should be safe for most people.
-
-+config LDSO_SAFE_RUNPATH
-+ bool "Allow only RUNPATH beginning with /"
-+ depends on LDSO_RUNPATH
-+ default y
-+ help
-+ Allow only absolute path in RPATH/RUNPATH.
-+
- config LDSO_SEARCH_INTERP_PATH
- bool "Add ldso path to lib search path"
- depends on HAVE_SHARED
-@@ -423,7 +453,6 @@
- config LDSO_NO_CLEANUP
- bool "Disable automatic unloading of dynamically loaded shared objects"
- depends on HAVE_SHARED
-- default n
- help
- If you need complete allocation traces when debugging memory leaks
- using Valgrind in a process that dynamically loads shared objects,
-@@ -491,6 +520,7 @@
-
- config LINUXTHREADS_NEW
- bool "slightly newer version of linuxthreads"
-+ depends on ARCH_HAS_DEPRECATED_SYSCALLS
- help
- The new version has not been tested much, and lacks ports for arches
- which glibc does not support (like bfin/frv/etc...), but is based on
-@@ -501,6 +531,7 @@
- bool "Native POSIX Threading (NPTL)"
- select UCLIBC_HAS_TLS
- select UCLIBC_HAS_STDIO_FUTEXES
-+ select UCLIBC_HAS_REALTIME
- # i386 has no lowlevellock support (yet) as opposed to i486 onward
- depends on !CONFIG_386
- help
-@@ -629,6 +660,15 @@
- does not detect glibc style returning-a-valid-pointer-for-malloc(0)
- behavior). Most people can safely answer N.
-
-+config UCLIBC_HAS_OBSTACK
-+ bool "Obstack Support (gnu extension)"
-+ help
-+ When this option is enabled, uClibc will provide support for obstacks.
-+ An obstack is a structure in which memory can be dynamically allocated
-+ as a 'stack of objects'. Many programs need this GNU extention and
-+ you should say Y if you are using any. Otherwise, say N to save some
-+ space.
-+
- config UCLIBC_DYNAMIC_ATEXIT
- bool "Dynamic atexit() Support"
- default y
-@@ -650,6 +690,16 @@
- Enable this option if you want to update from 0.9.28 to git/0.9.29,
- else you will be missing atexit() until you rebuild all apps.
-
-+config UCLIBC_SUSV2_LEGACY
-+ bool "Enable SuSv2 LEGACY functions"
-+ help
-+ Enable this option if you want to have SuSv2 LEGACY functions
-+ Currently applies to:
-+
-+ valloc
-+
-+ WARNING! ABI incompatibility.
-+
- config UCLIBC_SUSV3_LEGACY
- bool "Enable SuSv3 LEGACY functions"
- #vfork,
-@@ -670,6 +720,19 @@
-
- WARNING! ABI incompatibility.
-
-+config UCLIBC_HAS_CONTEXT_FUNCS
-+ bool "Use obsolescent context control functions"
-+ depends on UCLIBC_SUSV3_LEGACY && ARCH_HAS_UCONTEXT
-+ help
-+ Add into library the SuSv3 obsolescent functions used for context
-+ control. The setcontext family allows the implementation in C of
-+ advanced control flow patterns such as iterators, fibers, and
-+ coroutines. They may be viewed as an advanced version of
-+ setjmp/longjmp; whereas the latter allows only a single non-local jump
-+ up the stack, setcontext allows the creation of multiple cooperative
-+ threads of control, each with its own stack.
-+ These functions are: setcontext, getcontext, makecontext, swapcontext.
-+
- config UCLIBC_SUSV3_LEGACY_MACROS
- bool "Enable SuSv3 LEGACY macros"
- help
-@@ -737,7 +800,6 @@
- config UCLIBC_HAS___PROGNAME
- bool "Support for __progname"
- default y
-- depends on UCLIBC_HAS_PROGRAM_INVOCATION_NAME
- help
- Some packages (like openssh) like to peek into internal libc
- symbols to make their output a bit more user friendly.
-@@ -1320,6 +1382,12 @@
- In particular, the following functions will be added to the
- library:
-
-+ ns_skiprr, ns_initparse, ns_parserr, ns_msg_getflag,
-+ res_mkquery, res_init, res_ninit, res_close, res_nclose
-+ res_query, res_search, res_querydomain,
-+ dn_expand, dn_comp,
-+ ns_name_uncompress, ns_name_ntop, ns_name_pton, ns_name_unpack,
-+ ns_name_pack, ns_name_compress, ns_name_skip, dn_skipname,
- ns_get16, ns_get32, ns_put16, ns_put32
-
- config UCLIBC_HAS_LIBRESOLV_STUB
-@@ -1462,7 +1530,7 @@
-
- config UCLIBC_PREGENERATED_LOCALE_DATA
- bool "Use Pre-generated Locale Data"
-- depends on UCLIBC_HAS_LOCALE
-+ depends on UCLIBC_HAS_LOCALE && !TARGET_metag
- help
- Use pre-built locale data.
-
-@@ -1590,19 +1658,6 @@
-
- Most people will answer 9.
-
--
--config UCLIBC_HAS_SCANF_GLIBC_A_FLAG
-- bool "Support glibc's 'a' flag for scanf string conversions (not implemented)"
-- help
-- NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!!
-- NOTE!!! Conflicts with an ANSI/ISO C99 scanf flag!! NOTE!!!
--
-- Answer Y to enable support for glibc's 'a' flag for the scanf string
-- conversions '%s', '%[', '%ls', '%l[', and '%S'. This is used to
-- auto-allocate sufficient memory to hold the data retrieved.
--
-- Most people will answer N.
--
- choice
- prompt "Stdio buffer size"
- default UCLIBC_HAS_STDIO_BUFSIZ_4096
-@@ -2093,6 +2148,16 @@
-
- Most people will answer N.
-
-+config ARC4RANDOM_USES_NODEV
-+ bool "Do not use /dev/urandom with arc4random()"
-+ depends on UCLIBC_HAS_ARC4RANDOM
-+ help
-+ Answer Y to use gettimeofday(2) and getpid(2) exclusively for
-+ arc4random(). This is not a bad idea for a diskless system, but
-+ it uses a lot of syscalls to stir each array element.
-+
-+ Most people will answer N.
-+
- config HAVE_NO_SSP
- bool
-
-@@ -2145,8 +2210,8 @@
- choice
- prompt "Propolice protection blocking signal"
- depends on UCLIBC_HAS_SSP
-- default PROPOLICE_BLOCK_ABRT if ! DODEBUG
-- default PROPOLICE_BLOCK_SEGV if DODEBUG
-+ depends on DODEBUG
-+ default PROPOLICE_BLOCK_SEGV
- help
- "abort" use SIGABRT to block offending programs.
- This is the default implementation.
-@@ -2340,6 +2405,7 @@
- config UCLIBC_MALLOC_DEBUGGING
- bool "Build malloc with debugging support"
- depends on MALLOC || MALLOC_STANDARD
-+ select DOASSERTS
- help
- Answer Y here to compile extra debugging support code into malloc.
- Malloc debugging output may then be enabled at runtime using the
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.in.arch uClibc-git/extra/Configs/Config.in.arch
---- uClibc-0.9.33.2/extra/Configs/Config.in.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.in.arch 2014-07-25 20:36:04.449322340 +0200
-@@ -10,9 +10,6 @@
- if !ARCH_USE_MMU
- choice
- prompt "Target File Format"
--config UCLIBC_FORMAT_ELF
-- bool "ELF"
-- depends on ARCH_USE_MMU
- config UCLIBC_FORMAT_FDPIC_ELF
- bool "FDPIC ELF"
- depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv)
-@@ -42,6 +39,14 @@
- comment "Using ELF file format"
- endif
-
-+config ARCH_HAS_DEPRECATED_SYSCALLS
-+ bool
-+ help
-+ New architectures do not support deprecated system calls. However,
-+ these system calls are needed to build linuxthreads (old and new) so
-+ this symbol controls whether there is support for these threading libraries
-+ or not.
-+
- config UCLIBC_SHARED_FLAT_ID
- int "Shared library ID"
- default 1
-@@ -152,7 +157,6 @@
- config DO_C99_MATH
- bool "Enable full C99 math library support"
- depends on UCLIBC_HAS_FLOATS
-- default n
- help
- If you want the uClibc math library to contain the full set C99
- math library features, then answer Y. If you leave this set to
-@@ -166,7 +170,6 @@
- config DO_XSI_MATH
- bool "Enable XSI math extensions to the ISO C standard (bessel)"
- depends on UCLIBC_HAS_FLOATS
-- default n
- help
- X/Open System Interfaces extensions to ISO C math functions
- (differential equation functions):
-@@ -177,7 +180,6 @@
- config UCLIBC_HAS_FENV
- bool "Enable C99 Floating-point environment"
- depends on UCLIBC_HAS_FLOATS
-- default n
- help
- If you want the uClibc math library to contain the C99 floating
- point environment, rounding and exception handling functions then
-@@ -198,7 +200,7 @@
-
- config KERNEL_HEADERS
- string "Linux kernel header location"
-- default "/usr/include"
-+ default ""
- help
- The kernel source you use to compile with should be the same
- as the Linux kernel you run your apps on. uClibc doesn't even
-@@ -209,6 +211,8 @@
- but then run on Linux 2.0.x, lchown will be compiled into uClibc,
- but won't work at all. You have been warned.
-
-+ If you don't set this, we'll assume the toolchain can find them.
-+
- config UCLIBC_UCLINUX_BROKEN_MUNMAP
- bool
- depends on !ARCH_USE_MMU
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.m68k uClibc-git/extra/Configs/Config.m68k
---- uClibc-0.9.33.2/extra/Configs/Config.m68k 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.m68k 2014-07-25 20:36:04.449322340 +0200
-@@ -11,3 +11,4 @@
- bool
- default y
- select ARCH_BIG_ENDIAN
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.metag uClibc-git/extra/Configs/Config.metag
---- uClibc-0.9.33.2/extra/Configs/Config.metag 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/Configs/Config.metag 2014-07-25 20:36:04.449322340 +0200
-@@ -0,0 +1,32 @@
-+#
-+# For a description of the syntax of this configuration file,
-+# see extra/config/Kconfig-language.txt
-+#
-+# Copyright (C) 2013, Imagination Technologies Ltd.
-+#
-+# Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+config TARGET_ARCH
-+ default "metag"
-+
-+config FORCE_OPTIONS_FOR_ARCH
-+ bool
-+ default y
-+ select ARCH_LITTLE_ENDIAN
-+ select ARCH_HAS_MMU
-+
-+choice
-+ prompt "Target Processor Type"
-+ default CONFIG_META_2_1
-+ help
-+ This is the processor type of your CPU. This information is used for
-+ optimizing purposes.
-+
-+config CONFIG_META_1_2
-+ bool "Meta 1.2"
-+
-+config CONFIG_META_2_1
-+ bool "Meta 2.1"
-+
-+endchoice
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.microblaze uClibc-git/extra/Configs/Config.microblaze
---- uClibc-0.9.33.2/extra/Configs/Config.microblaze 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.microblaze 2014-07-25 20:36:04.449322340 +0200
-@@ -6,3 +6,8 @@
- config TARGET_ARCH
- string
- default "microblaze"
-+
-+config FORCE_OPTIONS_FOR_ARCH
-+ bool
-+ default y
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.mips uClibc-git/extra/Configs/Config.mips
---- uClibc-0.9.33.2/extra/Configs/Config.mips 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.mips 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,8 @@
- bool
- default y
- select ARCH_ANY_ENDIAN
-+ select ARCH_HAS_UCONTEXT
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target ABI"
-@@ -70,4 +72,7 @@
- config CONFIG_MIPS_ISA_MIPS64
- bool "MIPS64"
-
-+config CONFIG_MIPS_ISA_MIPS64R2
-+ bool "MIPS64r2"
-+
- endchoice
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.nios uClibc-git/extra/Configs/Config.nios
---- uClibc-0.9.33.2/extra/Configs/Config.nios 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.nios 2014-07-25 20:36:04.449322340 +0200
-@@ -13,4 +13,5 @@
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_NO_MMU
- select ARCH_HAS_NO_LDSO
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
- select HAVE_NO_PIC
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.nios2 uClibc-git/extra/Configs/Config.nios2
---- uClibc-0.9.33.2/extra/Configs/Config.nios2 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.nios2 2014-07-25 20:36:04.449322340 +0200
-@@ -13,4 +13,5 @@
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_NO_MMU
- select ARCH_HAS_NO_LDSO
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
- select HAVE_NO_PIC
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.powerpc uClibc-git/extra/Configs/Config.powerpc
---- uClibc-0.9.33.2/extra/Configs/Config.powerpc 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.powerpc 2014-07-25 20:36:04.449322340 +0200
-@@ -12,6 +12,7 @@
- default y
- select ARCH_BIG_ENDIAN
- select ARCH_HAS_MMU
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target Processor Type"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.sh uClibc-git/extra/Configs/Config.sh
---- uClibc-0.9.33.2/extra/Configs/Config.sh 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.sh 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,7 @@
- bool
- default y
- select ARCH_ANY_ENDIAN
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target Processor Type"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.sh64 uClibc-git/extra/Configs/Config.sh64
---- uClibc-0.9.33.2/extra/Configs/Config.sh64 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.sh64 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,7 @@
- bool
- default y
- select ARCH_ANY_ENDIAN
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target Processor Type"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.sparc uClibc-git/extra/Configs/Config.sparc
---- uClibc-0.9.33.2/extra/Configs/Config.sparc 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.sparc 2014-07-25 20:36:04.449322340 +0200
-@@ -11,6 +11,7 @@
- bool
- default y
- select ARCH_BIG_ENDIAN
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-
- choice
- prompt "Target Processor Type"
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.v850 uClibc-git/extra/Configs/Config.v850
---- uClibc-0.9.33.2/extra/Configs/Config.v850 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.v850 2014-07-25 20:36:04.449322340 +0200
-@@ -12,4 +12,5 @@
- default y
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_NO_MMU
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
- select HAVE_NO_PIC
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.vax uClibc-git/extra/Configs/Config.vax
---- uClibc-0.9.33.2/extra/Configs/Config.vax 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.vax 2014-07-25 20:36:04.449322340 +0200
-@@ -12,3 +12,4 @@
- default y
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_NO_LDSO
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.x86_64 uClibc-git/extra/Configs/Config.x86_64
---- uClibc-0.9.33.2/extra/Configs/Config.x86_64 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.x86_64 2014-07-25 20:36:04.449322340 +0200
-@@ -12,3 +12,5 @@
- default y
- select ARCH_LITTLE_ENDIAN
- select ARCH_HAS_MMU
-+ select ARCH_HAS_UCONTEXT
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/Config.xtensa uClibc-git/extra/Configs/Config.xtensa
---- uClibc-0.9.33.2/extra/Configs/Config.xtensa 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/Configs/Config.xtensa 2014-07-25 20:36:04.449322340 +0200
-@@ -6,3 +6,8 @@
- config TARGET_ARCH
- string
- default "xtensa"
-+
-+config FORCE_OPTIONS_FOR_ARCH
-+ bool
-+ default y
-+ select ARCH_HAS_DEPRECATED_SYSCALLS
-diff -Nur uClibc-0.9.33.2/extra/Configs/defconfigs/arc/defconfig uClibc-git/extra/Configs/defconfigs/arc/defconfig
---- uClibc-0.9.33.2/extra/Configs/defconfigs/arc/defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/Configs/defconfigs/arc/defconfig 2014-07-25 20:36:04.477322487 +0200
-@@ -0,0 +1,28 @@
-+ARCH_WANTS_LITTLE_ENDIAN=y
-+# UCLIBC_HAS_FPU is not set
-+DO_C99_MATH=y
-+KERNEL_HEADERS="%KERNEL_HEADERS%"
-+# DOPIC is not set
-+# LDSO_CACHE_SUPPORT is not set
-+LDSO_RUNPATH=y
-+# LDSO_SAFE_RUNPATH is not set
-+LINUXTHREADS_OLD=y
-+PTHREADS_DEBUG_SUPPORT=y
-+UCLIBC_SUSV2_LEGACY=y
-+UCLIBC_SUSV3_LEGACY=y
-+UCLIBC_SUSV4_LEGACY=y
-+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-+UCLIBC_SV4_DEPRECATED=y
-+UCLIBC_HAS_RPC=y
-+UCLIBC_HAS_FULL_RPC=y
-+UCLIBC_HAS_RESOLVER_SUPPORT=y
-+UCLIBC_HAS_LIBRESOLV_STUB=y
-+UCLIBC_HAS_LOCALE=y
-+UCLIBC_HAS_NFTW=y
-+UCLIBC_HAS_FTW=y
-+RUNTIME_PREFIX="%RUNTIME_PREFIX%"
-+DEVEL_PREFIX="%DEVEL_PREFIX%"
-+CROSS_COMPILER_PREFIX="arc-linux-uclibc-"
-+# DOSTRIP is not set
-+SUPPORT_LD_DEBUG=y
-+UCLIBC_HAS_BACKTRACE=y
-diff -Nur uClibc-0.9.33.2/extra/Configs/defconfigs/arc/tb10x_defconfig uClibc-git/extra/Configs/defconfigs/arc/tb10x_defconfig
---- uClibc-0.9.33.2/extra/Configs/defconfigs/arc/tb10x_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/Configs/defconfigs/arc/tb10x_defconfig 2014-07-25 20:36:04.481322508 +0200
-@@ -0,0 +1,37 @@
-+ARCH_WANTS_LITTLE_ENDIAN=y
-+# UCLIBC_HAS_FPU is not set
-+DO_C99_MATH=y
-+KERNEL_HEADERS="%KERNEL_HEADERS%"
-+# DOPIC is not set
-+# LDSO_CACHE_SUPPORT is not set
-+LDSO_RUNPATH=y
-+# LDSO_SAFE_RUNPATH is not set
-+LINUXTHREADS_OLD=y
-+PTHREADS_DEBUG_SUPPORT=y
-+MALLOC_GLIBC_COMPAT=y
-+UCLIBC_SUSV3_LEGACY=y
-+UCLIBC_SUSV4_LEGACY=y
-+UCLIBC_HAS_GETPT=y
-+UCLIBC_HAS_LIBUTIL=y
-+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-+UCLIBC_SV4_DEPRECATED=y
-+UCLIBC_HAS_IPV6=y
-+UCLIBC_HAS_RPC=y
-+UCLIBC_HAS_FULL_RPC=y
-+UCLIBC_HAS_REENTRANT_RPC=y
-+UCLIBC_HAS_RESOLVER_SUPPORT=y
-+UCLIBC_HAS_LIBRESOLV_STUB=y
-+UCLIBC_HAS_LIBNSL_STUB=y
-+UCLIBC_HAS_CTYPE_CHECKED=y
-+UCLIBC_HAS_LOCALE=y
-+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
-+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-+UCLIBC_HAS_PRINTF_M_SPEC=y
-+UCLIBC_HAS_NFTW=y
-+UCLIBC_HAS_FTW=y
-+RUNTIME_PREFIX="%RUNTIME_PREFIX%"
-+DEVEL_PREFIX="%DEVEL_PREFIX%"
-+CROSS_COMPILER_PREFIX="arc-linux-uclibc-"
-+# DOSTRIP is not set
-+SUPPORT_LD_DEBUG=y
-diff -Nur uClibc-0.9.33.2/extra/Configs/defconfigs/metag/defconfig uClibc-git/extra/Configs/defconfigs/metag/defconfig
---- uClibc-0.9.33.2/extra/Configs/defconfigs/metag/defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/Configs/defconfigs/metag/defconfig 2014-07-25 20:36:04.665323472 +0200
-@@ -0,0 +1 @@
-+TARGET_metag=y
-diff -Nur uClibc-0.9.33.2/extra/locale/gen_wc8bit.c uClibc-git/extra/locale/gen_wc8bit.c
---- uClibc-0.9.33.2/extra/locale/gen_wc8bit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/locale/gen_wc8bit.c 2014-07-25 20:36:04.921324813 +0200
-@@ -182,7 +182,11 @@
- printf("\tunsigned char idx8c2wc[%d];\n", C2WC_IDX_LEN);
- printf("\tunsigned char idx8wc2c[%d];\n", II_LEN);
- #endif
-+#ifndef __metag__
- printf("} __codeset_8_bit_t;\n\n");
-+#else
-+ printf("} __attribute__((__packed__)) __codeset_8_bit_t;\n\n");
-+#endif /* __metag__ */
-
- printf("#ifdef WANT_DATA\n\n");
- printf("static const __codeset_8_bit_t codeset_8_bit[%d] = {\n", argc-1);
-diff -Nur uClibc-0.9.33.2/extra/locale/Makefile.in uClibc-git/extra/locale/Makefile.in
---- uClibc-0.9.33.2/extra/locale/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/locale/Makefile.in 2014-07-25 20:36:04.893324666 +0200
-@@ -111,16 +111,10 @@
- $(Q)echo "$(CURDIR)/$(locale_DIR)/charmaps/ISO-8859-1.pairs" >> $@
- else
- $(Q)set -e; \
-- tmp=`mktemp $@.XXXXXX 2>/dev/null || true`; \
-- [ -z "$$tmp" ] && tmp='$@.new'; \
- find $(CURDIR)/$(locale_DIR)/charmaps/ -name '*.pairs' | \
-- sort > $$tmp; \
-- [ -s $$tmp ]; \
-- if cmp $@ $$tmp >/dev/null 2>&1; then \
-- $(RM) $$tmp; \
-- else \
-- mv -f $$tmp $@; \
-- fi
-+ sort > $@.new; \
-+ [ -s $@.new ]; \
-+ cmp -s $@ $@.new && $(RM) $@.new || mv -f $@.new $@
- endif
-
- # the lines beginning w/ '#-' are mandatory
-diff -Nur uClibc-0.9.33.2/extra/locale/programs/locale.c uClibc-git/extra/locale/programs/locale.c
---- uClibc-0.9.33.2/extra/locale/programs/locale.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/locale/programs/locale.c 2014-07-25 20:36:04.933324875 +0200
-@@ -31,7 +31,7 @@
- unsigned char lc_messages_row;
- } locale_entry;
-
--/* Need to include this before locale.h and xlocale.h! */
-+/* Need to include this before locale.h! */
- #include <bits/uClibc_locale.h>
-
- #undef CODESET_LIST
-diff -Nur uClibc-0.9.33.2/extra/scripts/gen_bits_syscall_h.sh uClibc-git/extra/scripts/gen_bits_syscall_h.sh
---- uClibc-0.9.33.2/extra/scripts/gen_bits_syscall_h.sh 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/scripts/gen_bits_syscall_h.sh 2014-07-25 20:36:04.945324938 +0200
-@@ -8,14 +8,18 @@
-
- # June 27, 2001 Manuel Novoa III
- #
--# This script expects top_builddir and CC (as used in the Makefiles) to be set
--# in the environment, and outputs the appropriate
--# $top_builddir/include/bits/sysnum.h # corresponding to
--# $top_builddir/include/asm/unistd.h to stdout.
-+# This script expects CC (as used in the Makefiles) to be set
-+# in the environment, and outputs the appropriate bits/sysnum.h #
-+# corresponding to asm/unistd.h to stdout.
- #
- # Warning!!! This does _no_ error checking!!!
-
--INCLUDE_OPTS="-nostdinc -I${KERNEL_HEADERS}"
-+if [ "${KERNEL_HEADERS:-/}" != "/" ] ; then
-+ INCLUDE_OPTS="-nostdinc -I${KERNEL_HEADERS}"
-+else
-+ # Let the toolchain use its configure paths.
-+ INCLUDE_OPTS=
-+fi
-
- case $CC in
- *icc*) CC_SYSNUM_ARGS="-dM" ;;
-@@ -25,22 +29,31 @@
- ( echo "#include <asm/unistd.h>";
- echo "#include <asm/unistd.h>" |
- $CC -E $CC_SYSNUM_ARGS $INCLUDE_OPTS - |
-- sed -ne 's/^[ ]*#define[ ]*\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/UCLIBC\1\2 \1\2/gp' \
-- -e 's/^[ ]*#undef[ ]*\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/UNDEFUCLIBC\1\2 \1\2/gp' # needed to strip out any kernel-internal defines
-+ sed -n -r \
-+ -e 's/^[ ]*#define[ ]*(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/UCLIBC\1\2 \1\2/gp' \
-+ -e 's/^[ ]*#undef[ ]*(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/UNDEFUCLIBC\1\2 \1\2/gp' # needed to strip out any kernel-internal defines
- ) |
- $CC -E $INCLUDE_OPTS - |
--( echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" ;
-- echo ;
-- echo "#ifndef _BITS_SYSNUM_H" ;
-- echo "#define _BITS_SYSNUM_H" ;
-- echo ;
-- echo "#ifndef _SYSCALL_H" ;
-- echo "# error \"Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead.\"" ;
-- echo "#endif" ; echo ;
-- sed -ne 's/^UCLIBC\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\) *\(.*\)/#undef \1\2\
-+(
-+ cat <<-EOF
-+/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */
-+/* See $0 for more information. */
-+
-+#ifndef _BITS_SYSNUM_H
-+#define _BITS_SYSNUM_H
-+
-+#ifndef _SYSCALL_H
-+# error "Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead."
-+#endif
-+
-+EOF
-+ sed -n -r -e 's/^UCLIBC(__ARM_NR_|__NR_)([A-Za-z0-9_]*) *(.*)/#undef \1\2\
- #define \1\2 \3\
- #define SYS_\2 \1\2/gp' \
-- -e 's/^UNDEFUCLIBC\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/#undef \1\2/gp'
-- echo ;
-- echo "#endif" ;
-+ -e 's/^UNDEFUCLIBC(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/#undef \1\2\
-+#undef SYS_\2/gp'
-+ cat <<-EOF
-+
-+#endif
-+EOF
- )
-diff -Nur uClibc-0.9.33.2/extra/scripts/getent uClibc-git/extra/scripts/getent
---- uClibc-0.9.33.2/extra/scripts/getent 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/scripts/getent 2014-07-25 20:36:04.945324938 +0200
-@@ -1,5 +1,4 @@
- #!/bin/sh
--# $Header: /var/cvs/uClibc/extra/scripts/getent,v 1.2 2005/02/02 14:18:01 solar Exp $
- #
- # Closely (not perfectly) emulate the behavior of glibc's getent utility
- #
-@@ -9,7 +8,8 @@
- # case-insensitive matches not supported (ethers; others?)
- # may return false-positives (hosts,protocols,rpc,services,ethers)
-
--export PATH="${PATH}:/bin:/usr/bin"
-+[ -z "$PATH" ] && PATH="/bin:/usr/bin" || PATH="${PATH}:/bin:/usr/bin"
-+export PATH
-
- file="/etc/$1"
- case $1 in
-diff -Nur uClibc-0.9.33.2/extra/scripts/install_headers.sh uClibc-git/extra/scripts/install_headers.sh
---- uClibc-0.9.33.2/extra/scripts/install_headers.sh 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/scripts/install_headers.sh 2014-07-25 20:36:04.945324938 +0200
-@@ -32,10 +32,9 @@
- exit 1
- fi
-
--
- # Sanitize and copy uclibc headers
- (
--# We must cd, or else we'll prepend "${srcdir}" to filenames!
-+# We must cd, or else we will prepend "${srcdir}" to filenames!
- cd "${srcdir}" || exit 1
- find . ! -name '.' -a ! -path '*/.*' | sed -e 's/^\.\///' -e '/^config\//d' \
- -e '/^config$/d'
-@@ -51,18 +50,20 @@
- # Do not install libc-XXXX.h files
- continue
- fi
-- # NB: unifdef exits with 1 if output is not
-- # exactly the same as input. That's ok.
- # Do not abort the script if unifdef "fails"!
- # NB2: careful with sed command arguments, they contain tab character
- "$top_builddir/extra/scripts/unifdef" \
-+ -B \
-+ -t \
-+ -x 2 \
-+ -f "$top_builddir/include/generated/unifdef_config.h" \
- -U_LIBC \
- -U__UCLIBC_GEN_LOCALE \
- -U__NO_CTYPE \
- "${srcdir}/$filename" \
- | sed -e '/^rtld_hidden_proto[ ]*([a-zA-Z0-9_]*)$/d' \
- | sed -e '/^lib\(c\|m\|resolv\|dl\|intl\|rt\|nsl\|util\|crypt\|pthread\)_hidden_proto[ ]*([a-zA-Z0-9_]*)$/d' \
-- >"${dstdir}/$filename"
-+ > "${dstdir}/$filename"
- done
- )
-
-diff -Nur uClibc-0.9.33.2/extra/scripts/relinfo.pl uClibc-git/extra/scripts/relinfo.pl
---- uClibc-0.9.33.2/extra/scripts/relinfo.pl 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/scripts/relinfo.pl 2014-07-25 20:36:04.949324959 +0200
-@@ -1,5 +1,5 @@
- #! /usr/bin/perl
--eval "exec /usr/bin/perl -S $0 $*"
-+eval "exec /usr/bin/env perl -w -S $0 $@"
- if 0;
- # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
- # Written by Ulrich Drepper <drepper@redhat.com>, 2000.
-@@ -14,8 +14,7 @@
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software Foundation,
--# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- for ($cnt = 0; $cnt <= $#ARGV; ++$cnt) {
- $relent = 0;
-diff -Nur uClibc-0.9.33.2/extra/scripts/unifdef.c uClibc-git/extra/scripts/unifdef.c
---- uClibc-0.9.33.2/extra/scripts/unifdef.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/extra/scripts/unifdef.c 2014-07-25 20:36:04.949324959 +0200
-@@ -1,13 +1,5 @@
- /*
-- * Copyright (c) 2002 - 2005 Tony Finch <dot@dotat.at>. All rights reserved.
-- *
-- * This code is derived from software contributed to Berkeley by Dave Yost.
-- * It was rewritten to support ANSI C by Tony Finch. The original version of
-- * unifdef carried the following copyright notice. None of its code remains
-- * in this version (though some of the names remain).
-- *
-- * Copyright (c) 1985, 1993
-- * The Regents of the University of California. All rights reserved.
-+ * Copyright (c) 2002 - 2014 Tony Finch <dot@dotat.at>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
-@@ -31,27 +23,15 @@
- * SUCH DAMAGE.
- */
-
--#include <sys/cdefs.h>
--
--#ifndef lint
--#if 0
--static const char copyright[] =
--"@(#) Copyright (c) 1985, 1993\n\
-- The Regents of the University of California. All rights reserved.\n";
--#endif
--#ifdef __IDSTRING
--__IDSTRING(Berkeley, "@(#)unifdef.c 8.1 (Berkeley) 6/6/93");
--__IDSTRING(NetBSD, "$NetBSD: unifdef.c,v 1.8 2000/07/03 02:51:36 matt Exp $");
--__IDSTRING(dotat, "$dotat: things/unifdef.c,v 1.171 2005/03/08 12:38:48 fanf2 Exp $");
--#endif
--#endif /* not lint */
--#ifdef __FBSDID
--__FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05/21 09:55:09 ru Exp $");
--#endif
--
- /*
- * unifdef - remove ifdef'ed lines
- *
-+ * This code was derived from software contributed to Berkeley by Dave Yost.
-+ * It was rewritten to support ANSI C by Tony Finch. The original version
-+ * of unifdef carried the 4-clause BSD copyright licence. None of its code
-+ * remains in this version (though some of the names remain) so it now
-+ * carries a more liberal licence.
-+ *
- * Wishlist:
- * provide an option which will append the name of the
- * appropriate symbol after #else's and #endif's
-@@ -59,26 +39,17 @@
- * #else's and #endif's to see that they match their
- * corresponding #ifdef or #ifndef
- *
-- * The first two items above require better buffer handling, which would
-- * also make it possible to handle all "dodgy" directives correctly.
-+ * These require better buffer handling, which would also make
-+ * it possible to handle all "dodgy" directives correctly.
- */
-
--#include <errno.h>
--#include <ctype.h>
--#include <stdarg.h>
--#include <stdbool.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
--
--/* Avoid err.h since uClibc can disable these things */
--#define vwarnx(fmt, args) ({ fprintf(stderr, "unifdef: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); })
--#define warnx(fmt, args...) fprintf(stderr, "unifdef: " fmt "\n", ## args)
--#define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); })
--#define err(exit_code, fmt, args...) errx(exit_code, fmt ": %s", ## args, strerror(errno))
-+#include "unifdef.h"
-
--size_t strlcpy(char *dst, const char *src, size_t siz);
-+static const char copyright[] =
-+ #include "version.h"
-+ "@(#) $Author: Tony Finch (dot@dotat.at) $\n"
-+ "@(#) $URL: http://dotat.at/prog/unifdef $\n"
-+;
-
- /* types of input lines: */
- typedef enum {
-@@ -96,6 +67,7 @@
- LT_DODGY_LAST = LT_DODGY + LT_ENDIF,
- LT_PLAIN, /* ordinary line */
- LT_EOF, /* end of file */
-+ LT_ERROR, /* unevaluable #if */
- LT_COUNT
- } Linetype;
-
-@@ -106,9 +78,12 @@
- "DODGY IF", "DODGY TRUE", "DODGY FALSE",
- "DODGY ELIF", "DODGY ELTRUE", "DODGY ELFALSE",
- "DODGY ELSE", "DODGY ENDIF",
-- "PLAIN", "EOF"
-+ "PLAIN", "EOF", "ERROR"
- };
-
-+#define linetype_if2elif(lt) ((Linetype)(lt - LT_IF + LT_ELIF))
-+#define linetype_2dodgy(lt) ((Linetype)(lt + LT_DODGY))
-+
- /* state of #if processing */
- typedef enum {
- IS_OUTSIDE,
-@@ -162,7 +137,7 @@
- */
- #define MAXDEPTH 64 /* maximum #if nesting */
- #define MAXLINE 4096 /* maximum length of line */
--#define MAXSYMS 4096 /* maximum number of symbols */
-+#define MAXSYMS 16384 /* maximum number of symbols */
-
- /*
- * Sometimes when editing a keyword the replacement text is longer, so
-@@ -174,13 +149,17 @@
- * Globals.
- */
-
-+static bool compblank; /* -B: compress blank lines */
-+static bool lnblank; /* -b: blank deleted lines */
- static bool complement; /* -c: do the complement */
- static bool debugging; /* -d: debugging reports */
-+static bool inplace; /* -m: modify in place */
- static bool iocccok; /* -e: fewer IOCCC errors */
-+static bool strictlogic; /* -K: keep ambiguous #ifs */
- static bool killconsts; /* -k: eval constant #ifs */
--static bool lnblank; /* -l: blank deleted lines */
- static bool lnnum; /* -n: add #line directives */
- static bool symlist; /* -s: output symbol list */
-+static bool symdepth; /* -S: output symbol depth */
- static bool text; /* -t: this is a text file */
-
- static const char *symname[MAXSYMS]; /* symbol name */
-@@ -191,10 +170,28 @@
- static FILE *input; /* input file pointer */
- static const char *filename; /* input file name */
- static int linenum; /* current line number */
-+static const char *linefile; /* file name for #line */
-+static FILE *output; /* output file pointer */
-+static const char *ofilename; /* output file name */
-+static const char *backext; /* backup extension */
-+static char *tempname; /* avoid splatting input */
-
- static char tline[MAXLINE+EDITSLOP];/* input buffer plus space */
- static char *keyword; /* used for editing #elif's */
-
-+/*
-+ * When processing a file, the output's newline style will match the
-+ * input's, and unifdef correctly handles CRLF or LF endings whatever
-+ * the platform's native style. The stdio streams are opened in binary
-+ * mode to accommodate platforms whose native newline style is CRLF.
-+ * When the output isn't a processed input file (when it is error /
-+ * debug / diagnostic messages) then unifdef uses native line endings.
-+ */
-+
-+static const char *newline; /* input file format */
-+static const char newline_unix[] = "\n";
-+static const char newline_crlf[] = "\r\n";
-+
- static Comment_state incomment; /* comment parser state */
- static Line_state linestate; /* #if line parser state */
- static Ifstate ifstate[MAXDEPTH]; /* #if processor state */
-@@ -202,31 +199,53 @@
- static int stifline[MAXDEPTH]; /* start of current #if */
- static int depth; /* current #if nesting */
- static int delcount; /* count of deleted lines */
--static bool keepthis; /* don't delete constant #if */
-+static unsigned blankcount; /* count of blank lines */
-+static unsigned blankmax; /* maximum recent blankcount */
-+static bool constexpr; /* constant #if expression */
-+static bool zerosyms; /* to format symdepth output */
-+static bool firstsym; /* ditto */
-
-+static int exitmode; /* exit status mode */
- static int exitstat; /* program exit status */
-+static bool altered; /* was this file modified? */
-
--static void addsym(bool, bool, char *);
-+static void addsym1(bool, bool, char *);
-+static void addsym2(bool, const char *, const char *);
-+static char *astrcat(const char *, const char *);
-+static void cleantemp(void);
-+static void closeio(void);
- static void debug(const char *, ...);
-+static void debugsym(const char *, int);
-+static bool defundef(void);
-+static void defundefile(const char *);
- static void done(void);
- static void error(const char *);
--static int findsym(const char *);
-+static int findsym(const char **);
- static void flushline(bool);
--static Linetype get_line(void);
-+static void hashline(void);
-+static void help(void);
- static Linetype ifeval(const char **);
- static void ignoreoff(void);
- static void ignoreon(void);
-+static void indirectsym(void);
- static void keywordedit(const char *);
-+static const char *matchsym(const char *, const char *);
- static void nest(void);
-+static Linetype parseline(void);
- static void process(void);
-+static void processinout(const char *, const char *);
-+static const char *skipargs(const char *);
- static const char *skipcomment(const char *);
-+static const char *skiphash(void);
-+static const char *skipline(const char *);
- static const char *skipsym(const char *);
- static void state(Ifstate);
--static int strlcmp(const char *, const char *, size_t);
- static void unnest(void);
- static void usage(void);
-+static void version(void);
-+static const char *xstrdup(const char *, const char *);
-
--#define endsym(c) (!isalpha((unsigned char)c) && !isdigit((unsigned char)c) && c != '_')
-+#define endsym(c) (!isalnum((unsigned char)c) && c != '_')
-
- /*
- * The main program.
-@@ -236,7 +255,7 @@
- {
- int opt;
-
-- while ((opt = getopt(argc, argv, "i:D:U:I:cdeklnst")) != -1)
-+ while ((opt = getopt(argc, argv, "i:D:U:f:I:M:o:x:bBcdehKklmnsStV")) != -1)
- switch (opt) {
- case 'i': /* treat stuff controlled by these symbols as text */
- /*
-@@ -246,20 +265,26 @@
- */
- opt = *optarg++;
- if (opt == 'D')
-- addsym(true, true, optarg);
-+ addsym1(true, true, optarg);
- else if (opt == 'U')
-- addsym(true, false, optarg);
-+ addsym1(true, false, optarg);
- else
- usage();
- break;
- case 'D': /* define a symbol */
-- addsym(false, true, optarg);
-+ addsym1(false, true, optarg);
- break;
- case 'U': /* undef a symbol */
-- addsym(false, false, optarg);
-+ addsym1(false, false, optarg);
- break;
-- case 'I':
-- /* no-op for compatibility with cpp */
-+ case 'I': /* no-op for compatibility with cpp */
-+ break;
-+ case 'b': /* blank deleted lines instead of omitting them */
-+ case 'l': /* backwards compatibility */
-+ lnblank = true;
-+ break;
-+ case 'B': /* compress blank lines around removed section */
-+ compblank = true;
- break;
- case 'c': /* treat -D as -U and vice versa */
- complement = true;
-@@ -270,50 +295,214 @@
- case 'e': /* fewer errors from dodgy lines */
- iocccok = true;
- break;
-+ case 'f': /* definitions file */
-+ defundefile(optarg);
-+ break;
-+ case 'h':
-+ help();
-+ break;
-+ case 'K': /* keep ambiguous #ifs */
-+ strictlogic = true;
-+ break;
- case 'k': /* process constant #ifs */
- killconsts = true;
- break;
-- case 'l': /* blank deleted lines instead of omitting them */
-- lnblank = true;
-+ case 'm': /* modify in place */
-+ inplace = true;
-+ break;
-+ case 'M': /* modify in place and keep backup */
-+ inplace = true;
-+ backext = optarg;
- break;
- case 'n': /* add #line directive after deleted lines */
- lnnum = true;
- break;
-+ case 'o': /* output to a file */
-+ ofilename = optarg;
-+ break;
- case 's': /* only output list of symbols that control #ifs */
- symlist = true;
- break;
-+ case 'S': /* list symbols with their nesting depth */
-+ symlist = symdepth = true;
-+ break;
- case 't': /* don't parse C comments */
- text = true;
- break;
-+ case 'V':
-+ version();
-+ break;
-+ case 'x':
-+ exitmode = atoi(optarg);
-+ if(exitmode < 0 || exitmode > 2)
-+ usage();
-+ break;
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-- if (argc > 1) {
-- errx(2, "can only do one file");
-- } else if (argc == 1 && strcmp(*argv, "-") != 0) {
-- filename = *argv;
-- input = fopen(filename, "r");
-- if (input == NULL)
-- err(2, "can't open %s", filename);
-- } else {
-+ if (compblank && lnblank)
-+ errx(2, "-B and -b are mutually exclusive");
-+ if (symlist && (ofilename != NULL || inplace || argc > 1))
-+ errx(2, "-s only works with one input file");
-+ if (argc > 1 && ofilename != NULL)
-+ errx(2, "-o cannot be used with multiple input files");
-+ if (argc > 1 && !inplace)
-+ errx(2, "multiple input files require -m or -M");
-+ if (argc == 0)
-+ argc = 1;
-+ if (argc == 1 && !inplace && ofilename == NULL)
-+ ofilename = "-";
-+ indirectsym();
-+
-+ atexit(cleantemp);
-+ if (ofilename != NULL)
-+ processinout(*argv, ofilename);
-+ else while (argc-- > 0) {
-+ processinout(*argv, *argv);
-+ argv++;
-+ }
-+ switch(exitmode) {
-+ case(0): exit(exitstat);
-+ case(1): exit(!exitstat);
-+ case(2): exit(0);
-+ default: abort(); /* bug */
-+ }
-+}
-+
-+/*
-+ * File logistics.
-+ */
-+static void
-+processinout(const char *ifn, const char *ofn)
-+{
-+ struct stat st;
-+
-+ if (ifn == NULL || strcmp(ifn, "-") == 0) {
- filename = "[stdin]";
-- input = stdin;
-+ linefile = NULL;
-+ input = fbinmode(stdin);
-+ } else {
-+ filename = ifn;
-+ linefile = ifn;
-+ input = fopen(ifn, "rb");
-+ if (input == NULL)
-+ err(2, "can't open %s", ifn);
-+ }
-+ if (strcmp(ofn, "-") == 0) {
-+ output = fbinmode(stdout);
-+ process();
-+ return;
- }
-+ if (stat(ofn, &st) < 0) {
-+ output = fopen(ofn, "wb");
-+ if (output == NULL)
-+ err(2, "can't create %s", ofn);
-+ process();
-+ return;
-+ }
-+
-+ tempname = astrcat(ofn, ".XXXXXX");
-+ output = mktempmode(tempname, st.st_mode);
-+ if (output == NULL)
-+ err(2, "can't create %s", tempname);
-+
- process();
-- debug("bug at line %d", __LINE__);
-- abort(); /* bug */
-+
-+ if (backext != NULL) {
-+ char *backname = astrcat(ofn, backext);
-+ if (rename(ofn, backname) < 0)
-+ err(2, "can't rename \"%s\" to \"%s\"", ofn, backname);
-+ free(backname);
-+ }
-+ /* leave file unmodified if unifdef made no changes */
-+ if (!altered && backext == NULL) {
-+ if (remove(tempname) < 0)
-+ warn("can't remove \"%s\"", tempname);
-+ } else if (replace(tempname, ofn) < 0)
-+ err(2, "can't rename \"%s\" to \"%s\"", tempname, ofn);
-+ free(tempname);
-+ tempname = NULL;
-+}
-+
-+/*
-+ * For cleaning up if there is an error.
-+ */
-+static void
-+cleantemp(void)
-+{
-+ if (tempname != NULL)
-+ remove(tempname);
-+}
-+
-+/*
-+ * Self-identification functions.
-+ */
-+
-+static void
-+version(void)
-+{
-+ const char *c = copyright;
-+ for (;;) {
-+ while (*++c != '$')
-+ if (*c == '\0')
-+ exit(0);
-+ while (*++c != '$')
-+ putc(*c, stderr);
-+ putc('\n', stderr);
-+ }
-+}
-+
-+static void
-+synopsis(FILE *fp)
-+{
-+ fprintf(fp,
-+ "usage: unifdef [-bBcdehKkmnsStV] [-x{012}] [-Mext] [-opath] \\\n"
-+ " [-[i]Dsym[=val]] [-[i]Usym] [-fpath] ... [file] ...\n");
- }
-
- static void
- usage(void)
- {
-- fprintf(stderr, "usage: unifdef [-cdeklnst] [-Ipath]"
-- " [-Dsym[=val]] [-Usym] [-iDsym[=val]] [-iUsym] ... [file]\n");
-+ synopsis(stderr);
- exit(2);
- }
-
-+static void
-+help(void)
-+{
-+ synopsis(stdout);
-+ printf(
-+ " -Dsym=val define preprocessor symbol with given value\n"
-+ " -Dsym define preprocessor symbol with value 1\n"
-+ " -Usym preprocessor symbol is undefined\n"
-+ " -iDsym=val \\ ignore C strings and comments\n"
-+ " -iDsym ) in sections controlled by these\n"
-+ " -iUsym / preprocessor symbols\n"
-+ " -fpath file containing #define and #undef directives\n"
-+ " -b blank lines instead of deleting them\n"
-+ " -B compress blank lines around deleted section\n"
-+ " -c complement (invert) keep vs. delete\n"
-+ " -d debugging mode\n"
-+ " -e ignore multiline preprocessor directives\n"
-+ " -h print help\n"
-+ " -Ipath extra include file path (ignored)\n"
-+ " -K disable && and || short-circuiting\n"
-+ " -k process constant #if expressions\n"
-+ " -Mext modify in place and keep backups\n"
-+ " -m modify input files in place\n"
-+ " -n add #line directives to output\n"
-+ " -opath output file name\n"
-+ " -S list #if control symbols with nesting\n"
-+ " -s list #if control symbols\n"
-+ " -t ignore C strings and comments\n"
-+ " -V print version\n"
-+ " -x{012} exit status mode\n"
-+ );
-+ exit(0);
-+}
-+
- /*
- * A state transition function alters the global #if processing state
- * in a particular way. The table below is indexed by the current
-@@ -327,7 +516,8 @@
- * When we have processed a group that starts off with a known-false
- * #if/#elif sequence (which has therefore been deleted) followed by a
- * #elif that we don't understand and therefore must keep, we edit the
-- * latter into a #if to keep the nesting correct.
-+ * latter into a #if to keep the nesting correct. We use memcpy() to
-+ * overwrite the 4 byte token "elif" with "if " without a '\0' byte.
- *
- * When we find a true #elif in a group, the following block will
- * always be kept and the rest of the sequence after the next #elif or
-@@ -380,75 +570,66 @@
- static void Idrop (void) { Fdrop(); ignoreon(); }
- static void Itrue (void) { Ftrue(); ignoreon(); }
- static void Ifalse(void) { Ffalse(); ignoreon(); }
--/* edit this line */
--static void Mpass (void) { strncpy(keyword, "if ", 4); Pelif(); }
--static void Mtrue (void) { keywordedit("else\n"); state(IS_TRUE_MIDDLE); }
--static void Melif (void) { keywordedit("endif\n"); state(IS_FALSE_TRAILER); }
--static void Melse (void) { keywordedit("endif\n"); state(IS_FALSE_ELSE); }
-+/* modify this line */
-+static void Mpass (void) { memcpy(keyword, "if ", 4); Pelif(); }
-+static void Mtrue (void) { keywordedit("else"); state(IS_TRUE_MIDDLE); }
-+static void Melif (void) { keywordedit("endif"); state(IS_FALSE_TRAILER); }
-+static void Melse (void) { keywordedit("endif"); state(IS_FALSE_ELSE); }
-
- static state_fn * const trans_table[IS_COUNT][LT_COUNT] = {
- /* IS_OUTSIDE */
- { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Eendif,
- Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eendif,
-- print, done },
-+ print, done, abort },
- /* IS_FALSE_PREFIX */
- { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Strue, Sfalse,Selse, Dendif,
- Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Eioccc,Eioccc,Eioccc,Eioccc,
-- drop, Eeof },
-+ drop, Eeof, abort },
- /* IS_TRUE_PREFIX */
- { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Dfalse,Dfalse,Dfalse,Delse, Dendif,
- Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
-- print, Eeof },
-+ print, Eeof, abort },
- /* IS_PASS_MIDDLE */
- { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Pelif, Mtrue, Delif, Pelse, Pendif,
- Oiffy, Oiffy, Fpass, Oif, Oif, Pelif, Oelif, Oelif, Pelse, Pendif,
-- print, Eeof },
-+ print, Eeof, abort },
- /* IS_FALSE_MIDDLE */
- { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Pelif, Mtrue, Delif, Pelse, Pendif,
- Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
-- drop, Eeof },
-+ drop, Eeof, abort },
- /* IS_TRUE_MIDDLE */
- { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Melif, Melif, Melif, Melse, Pendif,
- Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Pendif,
-- print, Eeof },
-+ print, Eeof, abort },
- /* IS_PASS_ELSE */
- { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Pendif,
- Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Pendif,
-- print, Eeof },
-+ print, Eeof, abort },
- /* IS_FALSE_ELSE */
- { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Dendif,
- Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Eioccc,
-- drop, Eeof },
-+ drop, Eeof, abort },
- /* IS_TRUE_ELSE */
- { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Dendif,
- Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eioccc,
-- print, Eeof },
-+ print, Eeof, abort },
- /* IS_FALSE_TRAILER */
- { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Dendif,
- Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Eioccc,
-- drop, Eeof }
-+ drop, Eeof, abort }
- /*TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF
- TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF (DODGY)
-- PLAIN EOF */
-+ PLAIN EOF ERROR */
- };
-
- /*
- * State machine utility functions
- */
- static void
--done(void)
--{
-- if (incomment)
-- error("EOF in comment");
-- exit(exitstat);
--}
--static void
- ignoreoff(void)
- {
-- if (depth == 0) {
-- debug("bug at line %d", __LINE__);
-+ if (depth == 0)
- abort(); /* bug */
-- }
- ignoring[depth] = ignoring[depth-1];
- }
- static void
-@@ -459,31 +640,26 @@
- static void
- keywordedit(const char *replacement)
- {
-- size_t size = tline + sizeof(tline) - keyword;
-- char *dst = keyword;
-- const char *src = replacement;
-- if (size != 0) {
-- while ((--size != 0) && (*src != '\0'))
-- *dst++ = *src++;
-- *dst = '\0';
-- }
-+ snprintf(keyword, tline + sizeof(tline) - keyword,
-+ "%s%s", replacement, newline);
-+ altered = true;
- print();
- }
- static void
- nest(void)
- {
-- depth += 1;
-- if (depth >= MAXDEPTH)
-+ if (depth > MAXDEPTH-1)
-+ abort(); /* bug */
-+ if (depth == MAXDEPTH-1)
- error("Too many levels of nesting");
-+ depth += 1;
- stifline[depth] = linenum;
- }
- static void
- unnest(void)
- {
-- if (depth == 0) {
-- debug("bug at line %d", __LINE__);
-+ if (depth == 0)
- abort(); /* bug */
-- }
- depth -= 1;
- }
- static void
-@@ -493,7 +669,20 @@
- }
-
- /*
-+ * The last state transition function. When this is called,
-+ * lineval == LT_EOF, so the process() loop will terminate.
-+ */
-+static void
-+done(void)
-+{
-+ if (incomment)
-+ error("EOF in comment");
-+ closeio();
-+}
-+
-+/*
- * Write a line to the output or not, according to command line options.
-+ * If writing fails, closeio() will print the error and exit.
- */
- static void
- flushline(bool keep)
-@@ -501,16 +690,58 @@
- if (symlist)
- return;
- if (keep ^ complement) {
-- if (lnnum && delcount > 0)
-- printf("#line %d\n", linenum);
-- fputs(tline, stdout);
-- delcount = 0;
-+ bool blankline = tline[strspn(tline, " \t\r\n")] == '\0';
-+ if (blankline && compblank && blankcount != blankmax) {
-+ delcount += 1;
-+ blankcount += 1;
-+ } else {
-+ if (lnnum && delcount > 0)
-+ hashline();
-+ if (fputs(tline, output) == EOF)
-+ closeio();
-+ delcount = 0;
-+ blankmax = blankcount = blankline ? blankcount + 1 : 0;
-+ }
- } else {
-- if (lnblank)
-- putc('\n', stdout);
-- exitstat = 1;
-+ if (lnblank && fputs(newline, output) == EOF)
-+ closeio();
-+ altered = true;
- delcount += 1;
-+ blankcount = 0;
- }
-+ if (debugging && fflush(output) == EOF)
-+ closeio();
-+}
-+
-+/*
-+ * Format of #line directives depends on whether we know the input filename.
-+ */
-+static void
-+hashline(void)
-+{
-+ int e;
-+
-+ if (linefile == NULL)
-+ e = fprintf(output, "#line %d%s", linenum, newline);
-+ else
-+ e = fprintf(output, "#line %d \"%s\"%s",
-+ linenum, linefile, newline);
-+ if (e < 0)
-+ closeio();
-+}
-+
-+/*
-+ * Flush the output and handle errors.
-+ */
-+static void
-+closeio(void)
-+{
-+ /* Tidy up after findsym(). */
-+ if (symdepth && !zerosyms)
-+ printf("\n");
-+ if (output != NULL && (ferror(output) || fclose(output) == EOF))
-+ err(2, "%s: can't write to output", filename);
-+ fclose(input);
- }
-
- /*
-@@ -519,16 +750,22 @@
- static void
- process(void)
- {
-- Linetype lineval;
--
-- for (;;) {
-- linenum++;
-- lineval = get_line();
-+ Linetype lineval = LT_PLAIN;
-+ /* When compressing blank lines, act as if the file
-+ is preceded by a large number of blank lines. */
-+ blankmax = blankcount = 1000;
-+ zerosyms = true;
-+ newline = NULL;
-+ linenum = 0;
-+ altered = false;
-+ while (lineval != LT_EOF) {
-+ lineval = parseline();
- trans_table[ifstate[depth]][lineval]();
-- debug("process %s -> %s depth %d",
-- linetype_name[lineval],
-+ debug("process line %d %s -> %s depth %d",
-+ linenum, linetype_name[lineval],
- ifstate_name[ifstate[depth]], depth);
- }
-+ exitstat |= altered;
- }
-
- /*
-@@ -537,104 +774,131 @@
- * help from skipcomment().
- */
- static Linetype
--get_line(void)
-+parseline(void)
- {
- const char *cp;
- int cursym;
-- int kwlen;
- Linetype retval;
- Comment_state wascomment;
-
-- if (fgets(tline, MAXLINE, input) == NULL)
-- return (LT_EOF);
-- retval = LT_PLAIN;
- wascomment = incomment;
-- cp = skipcomment(tline);
-- if (linestate == LS_START) {
-- if (*cp == '#') {
-- linestate = LS_HASH;
-- cp = skipcomment(cp + 1);
-- } else if (*cp != '\0')
-- linestate = LS_DIRTY;
-+ cp = skiphash();
-+ if (cp == NULL)
-+ return (LT_EOF);
-+ if (newline == NULL) {
-+ if (strrchr(tline, '\n') == strrchr(tline, '\r') + 1)
-+ newline = newline_crlf;
-+ else
-+ newline = newline_unix;
- }
-- if (!incomment && linestate == LS_HASH) {
-- keyword = tline + (cp - tline);
-- cp = skipsym(cp);
-- kwlen = cp - keyword;
-- /* no way can we deal with a continuation inside a keyword */
-- if (strncmp(cp, "\\\n", 2) == 0)
-- Eioccc();
-- if (strlcmp("ifdef", keyword, kwlen) == 0 ||
-- strlcmp("ifndef", keyword, kwlen) == 0) {
-- cp = skipcomment(cp);
-- if ((cursym = findsym(cp)) < 0)
-- retval = LT_IF;
-- else {
-- retval = (keyword[2] == 'n')
-- ? LT_FALSE : LT_TRUE;
-- if (value[cursym] == NULL)
-- retval = (retval == LT_TRUE)
-- ? LT_FALSE : LT_TRUE;
-- if (ignore[cursym])
-- retval = (retval == LT_TRUE)
-- ? LT_TRUEI : LT_FALSEI;
-- }
-- cp = skipsym(cp);
-- } else if (strlcmp("if", keyword, kwlen) == 0)
-- retval = ifeval(&cp);
-- else if (strlcmp("elif", keyword, kwlen) == 0)
-- retval = ifeval(&cp) - LT_IF + LT_ELIF;
-- else if (strlcmp("else", keyword, kwlen) == 0)
-- retval = LT_ELSE;
-- else if (strlcmp("endif", keyword, kwlen) == 0)
-- retval = LT_ENDIF;
-+ if (*cp == '\0') {
-+ retval = LT_PLAIN;
-+ goto done;
-+ }
-+ keyword = tline + (cp - tline);
-+ if ((cp = matchsym("ifdef", keyword)) != NULL ||
-+ (cp = matchsym("ifndef", keyword)) != NULL) {
-+ cp = skipcomment(cp);
-+ if ((cursym = findsym(&cp)) < 0)
-+ retval = LT_IF;
- else {
-- linestate = LS_DIRTY;
-- retval = LT_PLAIN;
-+ retval = (keyword[2] == 'n')
-+ ? LT_FALSE : LT_TRUE;
-+ if (value[cursym] == NULL)
-+ retval = (retval == LT_TRUE)
-+ ? LT_FALSE : LT_TRUE;
-+ if (ignore[cursym])
-+ retval = (retval == LT_TRUE)
-+ ? LT_TRUEI : LT_FALSEI;
- }
-- cp = skipcomment(cp);
-- if (*cp != '\0') {
-+ } else if ((cp = matchsym("if", keyword)) != NULL)
-+ retval = ifeval(&cp);
-+ else if ((cp = matchsym("elif", keyword)) != NULL)
-+ retval = linetype_if2elif(ifeval(&cp));
-+ else if ((cp = matchsym("else", keyword)) != NULL)
-+ retval = LT_ELSE;
-+ else if ((cp = matchsym("endif", keyword)) != NULL)
-+ retval = LT_ENDIF;
-+ else {
-+ cp = skipsym(keyword);
-+ /* no way can we deal with a continuation inside a keyword */
-+ if (strncmp(cp, "\\\r\n", 3) == 0 ||
-+ strncmp(cp, "\\\n", 2) == 0)
-+ Eioccc();
-+ cp = skipline(cp);
-+ retval = LT_PLAIN;
-+ goto done;
-+ }
-+ cp = skipcomment(cp);
-+ if (*cp != '\0') {
-+ cp = skipline(cp);
-+ if (retval == LT_TRUE || retval == LT_FALSE ||
-+ retval == LT_TRUEI || retval == LT_FALSEI)
-+ retval = LT_IF;
-+ if (retval == LT_ELTRUE || retval == LT_ELFALSE)
-+ retval = LT_ELIF;
-+ }
-+ /* the following can happen if the last line of the file lacks a
-+ newline or if there is too much whitespace in a directive */
-+ if (linestate == LS_HASH) {
-+ long len = cp - tline;
-+ if (fgets(tline + len, MAXLINE - len, input) == NULL) {
-+ if (ferror(input))
-+ err(2, "can't read %s", filename);
-+ /* append the missing newline at eof */
-+ strcpy(tline + len, newline);
-+ cp += strlen(newline);
-+ linestate = LS_START;
-+ } else {
- linestate = LS_DIRTY;
-- if (retval == LT_TRUE || retval == LT_FALSE ||
-- retval == LT_TRUEI || retval == LT_FALSEI)
-- retval = LT_IF;
-- if (retval == LT_ELTRUE || retval == LT_ELFALSE)
-- retval = LT_ELIF;
-- }
-- if (retval != LT_PLAIN && (wascomment || incomment)) {
-- retval += LT_DODGY;
-- if (incomment)
-- linestate = LS_DIRTY;
- }
-- /* skipcomment should have changed the state */
--// Hmm hppens sometimes on valid files
--// if (linestate == LS_HASH) {
--// debug("bug at line %d", __LINE__);
--// abort(); /* bug */
--// }
-- }
-- if (linestate == LS_DIRTY) {
-- while (*cp != '\0')
-- cp = skipcomment(cp + 1);
- }
-- debug("parser %s comment %s line",
-+ if (retval != LT_PLAIN && (wascomment || linestate != LS_START)) {
-+ retval = linetype_2dodgy(retval);
-+ linestate = LS_DIRTY;
-+ }
-+done:
-+ debug("parser line %d state %s comment %s line", linenum,
- comment_name[incomment], linestate_name[linestate]);
- return (retval);
- }
-
- /*
- * These are the binary operators that are supported by the expression
-- * evaluator. Note that if support for division is added then we also
-- * need short-circuiting booleans because of divide-by-zero.
-+ * evaluator.
- */
--static int op_lt(int a, int b) { return (a < b); }
--static int op_gt(int a, int b) { return (a > b); }
--static int op_le(int a, int b) { return (a <= b); }
--static int op_ge(int a, int b) { return (a >= b); }
--static int op_eq(int a, int b) { return (a == b); }
--static int op_ne(int a, int b) { return (a != b); }
--static int op_or(int a, int b) { return (a || b); }
--static int op_and(int a, int b) { return (a && b); }
-+static Linetype op_strict(long *p, long v, Linetype at, Linetype bt) {
-+ if(at == LT_IF || bt == LT_IF) return (LT_IF);
-+ return (*p = v, v ? LT_TRUE : LT_FALSE);
-+}
-+static Linetype op_lt(long *p, Linetype at, long a, Linetype bt, long b) {
-+ return op_strict(p, a < b, at, bt);
-+}
-+static Linetype op_gt(long *p, Linetype at, long a, Linetype bt, long b) {
-+ return op_strict(p, a > b, at, bt);
-+}
-+static Linetype op_le(long *p, Linetype at, long a, Linetype bt, long b) {
-+ return op_strict(p, a <= b, at, bt);
-+}
-+static Linetype op_ge(long *p, Linetype at, long a, Linetype bt, long b) {
-+ return op_strict(p, a >= b, at, bt);
-+}
-+static Linetype op_eq(long *p, Linetype at, long a, Linetype bt, long b) {
-+ return op_strict(p, a == b, at, bt);
-+}
-+static Linetype op_ne(long *p, Linetype at, long a, Linetype bt, long b) {
-+ return op_strict(p, a != b, at, bt);
-+}
-+static Linetype op_or(long *p, Linetype at, long a, Linetype bt, long b) {
-+ if (!strictlogic && (at == LT_TRUE || bt == LT_TRUE))
-+ return (*p = 1, LT_TRUE);
-+ return op_strict(p, a || b, at, bt);
-+}
-+static Linetype op_and(long *p, Linetype at, long a, Linetype bt, long b) {
-+ if (!strictlogic && (at == LT_FALSE || bt == LT_FALSE))
-+ return (*p = 0, LT_FALSE);
-+ return op_strict(p, a && b, at, bt);
-+}
-
- /*
- * An evaluation function takes three arguments, as follows: (1) a pointer to
-@@ -643,12 +907,12 @@
- * value of the expression; and (3) a pointer to a char* that points to the
- * expression to be evaluated and that is updated to the end of the expression
- * when evaluation is complete. The function returns LT_FALSE if the value of
-- * the expression is zero, LT_TRUE if it is non-zero, or LT_IF if the
-- * expression could not be evaluated.
-+ * the expression is zero, LT_TRUE if it is non-zero, LT_IF if the expression
-+ * depends on an unknown symbol, or LT_ERROR if there is a parse failure.
- */
- struct ops;
-
--typedef Linetype eval_fn(const struct ops *, int *, const char **);
-+typedef Linetype eval_fn(const struct ops *, long *, const char **);
-
- static eval_fn eval_table, eval_unary;
-
-@@ -659,139 +923,139 @@
- * element of the table. Innermost expressions have special non-table-driven
- * handling.
- */
--static const struct ops {
-+struct op {
-+ const char *str;
-+ Linetype (*fn)(long *, Linetype, long, Linetype, long);
-+};
-+struct ops {
- eval_fn *inner;
-- struct op {
-- const char *str;
-- int short_circuit_val;
-- int (*fn)(int, int);
-- } op[5];
--} eval_ops[] = {
-- { eval_table, { { "||", 1, op_or } } },
-- { eval_table, { { "&&", 0, op_and } } },
-- { eval_table, { { "==", -1, op_eq },
-- { "!=", -1, op_ne } } },
-- { eval_unary, { { "<=", -1, op_le },
-- { ">=", -1, op_ge },
-- { "<", -1, op_lt },
-- { ">", -1, op_gt } } }
-+ struct op op[5];
-+};
-+static const struct ops eval_ops[] = {
-+ { eval_table, { { "||", op_or } } },
-+ { eval_table, { { "&&", op_and } } },
-+ { eval_table, { { "==", op_eq },
-+ { "!=", op_ne } } },
-+ { eval_unary, { { "<=", op_le },
-+ { ">=", op_ge },
-+ { "<", op_lt },
-+ { ">", op_gt } } }
- };
-
-+/* Current operator precedence level */
-+static long prec(const struct ops *ops)
-+{
-+ return (ops - eval_ops);
-+}
-+
- /*
-- * Function for evaluating the innermost parts of expressions, viz.
-- * "!expr", "(expr)", "defined(symbol)", "defined symbol", "symbol", "number".
-- * We reset the keepthis flag when we find a non-constant subexpression.
-- */
--// TODO: we use LT_IF both as "I don't know whether it's false or true"
--// (example: "#if defined FOO") and when we see syntax error
--// (example: "#if (1 || 2" - no closing paren!), but this is wrong.
--// Binary && and || need to distinguish these cases in order to handle this:
--// "#if defined KNOWN_UNDEFINED && FOO" - discard
--// "#if defined KNOWN_UNDEFINED && (syntax_error_here" - do not discard!
-+ * Function for evaluating the innermost parts of expressions,
-+ * viz. !expr (expr) number defined(symbol) symbol
-+ * We reset the constexpr flag in the last two cases.
-+ */
- static Linetype
--eval_unary(const struct ops *ops, int *valp, const char **cpp)
-+eval_unary(const struct ops *ops, long *valp, const char **cpp)
- {
- const char *cp;
- char *ep;
- int sym;
-+ bool defparen;
-+ Linetype lt;
-
- cp = skipcomment(*cpp);
- if (*cp == '!') {
-- debug("eval%d !", ops - eval_ops);
-+ debug("eval%d !", prec(ops));
- cp++;
-- if (eval_unary(ops, valp, &cp) == LT_IF) {
-- *cpp = cp;
-- return (LT_IF);
-+ lt = eval_unary(ops, valp, &cp);
-+ if (lt == LT_ERROR)
-+ return (LT_ERROR);
-+ if (lt != LT_IF) {
-+ *valp = !*valp;
-+ lt = *valp ? LT_TRUE : LT_FALSE;
- }
-- *valp = !*valp;
--
- } else if (*cp == '(') {
-- Linetype expr_res;
--
- cp++;
-- debug("eval%d (%s", ops - eval_ops, cp);
-- expr_res = eval_table(eval_ops, valp, &cp);
-+ debug("eval%d (", prec(ops));
-+ lt = eval_table(eval_ops, valp, &cp);
-+ if (lt == LT_ERROR)
-+ return (LT_ERROR);
- cp = skipcomment(cp);
-- *cpp = cp;
- if (*cp++ != ')')
-- return (LT_IF);
-- *cpp = cp;
-- if (expr_res == LT_IF)
-- return (LT_IF);
--
-+ return (LT_ERROR);
- } else if (isdigit((unsigned char)*cp)) {
-- debug("eval%d number", ops - eval_ops);
-+ debug("eval%d number", prec(ops));
- *valp = strtol(cp, &ep, 0);
-- cp = skipsym(cp);
--
-- } else if (strncmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
-- bool parens;
--
-+ if (ep == cp)
-+ return (LT_ERROR);
-+ lt = *valp ? LT_TRUE : LT_FALSE;
-+ cp = ep;
-+ } else if (matchsym("defined", cp) != NULL) {
- cp = skipcomment(cp+7);
-- debug("eval%d defined '%s'", ops - eval_ops, cp);
-- parens = (*cp == '(');
-- if (parens)
-+ if (*cp == '(') {
- cp = skipcomment(cp+1);
-- sym = findsym(cp);
-- cp = skipsym(cp);
-+ defparen = true;
-+ } else {
-+ defparen = false;
-+ }
-+ sym = findsym(&cp);
- cp = skipcomment(cp);
-- if (parens) {
-- if (*cp != ')')
-- return (LT_IF);
-- cp = skipcomment(cp+1);
-+ if (defparen && *cp++ != ')') {
-+ debug("eval%d defined missing ')'", prec(ops));
-+ return (LT_ERROR);
- }
-- *cpp = cp;
- if (sym < 0) {
-- debug("sym not found, returning LT_IF");
-- return (LT_IF);
-+ debug("eval%d defined unknown", prec(ops));
-+ lt = LT_IF;
-+ } else {
-+ debug("eval%d defined %s", prec(ops), symname[sym]);
-+ *valp = (value[sym] != NULL);
-+ lt = *valp ? LT_TRUE : LT_FALSE;
- }
-- *valp = (value[sym] != NULL);
-- keepthis = false;
--
-+ constexpr = false;
- } else if (!endsym(*cp)) {
-- debug("eval%d symbol", ops - eval_ops);
-- sym = findsym(cp);
-- cp = skipsym(cp);
-- *cpp = cp;
-- if (sym < 0)
-- return (LT_IF);
-- if (value[sym] == NULL)
-+ debug("eval%d symbol", prec(ops));
-+ sym = findsym(&cp);
-+ if (sym < 0) {
-+ lt = LT_IF;
-+ cp = skipargs(cp);
-+ } else if (value[sym] == NULL) {
- *valp = 0;
-- else {
-+ lt = LT_FALSE;
-+ } else {
- *valp = strtol(value[sym], &ep, 0);
- if (*ep != '\0' || ep == value[sym])
-- return (LT_IF);
-+ return (LT_ERROR);
-+ lt = *valp ? LT_TRUE : LT_FALSE;
-+ cp = skipargs(cp);
- }
-- keepthis = false;
--
-+ constexpr = false;
- } else {
-- debug("eval%d bad expr", ops - eval_ops);
-- return (LT_IF);
-+ debug("eval%d bad expr", prec(ops));
-+ return (LT_ERROR);
- }
-
- *cpp = cp;
-- debug("eval%d = %d", ops - eval_ops, *valp);
-- return (*valp ? LT_TRUE : LT_FALSE);
-+ debug("eval%d = %d", prec(ops), *valp);
-+ return (lt);
- }
-
- /*
- * Table-driven evaluation of binary operators.
- */
- static Linetype
--eval_table(const struct ops *ops, int *valp, const char **cpp)
-+eval_table(const struct ops *ops, long *valp, const char **cpp)
- {
-- Linetype left_side;
- const struct op *op;
- const char *cp;
-- int val;
-+ long val;
-+ Linetype lt, rt;
-
-- debug("eval%d '%s'", ops - eval_ops, *cpp);
-- left_side = ops->inner(ops+1, valp, cpp);
-+ debug("eval%d", prec(ops));
- cp = *cpp;
--
-+ lt = ops->inner(ops+1, valp, &cp);
-+ if (lt == LT_ERROR)
-+ return (LT_ERROR);
- for (;;) {
-- Linetype right_side;
--
- cp = skipcomment(cp);
- for (op = ops->op; op->str != NULL; op++)
- if (strncmp(cp, op->str, strlen(op->str)) == 0)
-@@ -799,38 +1063,17 @@
- if (op->str == NULL)
- break;
- cp += strlen(op->str);
-- debug("eval%d '%s'", ops - eval_ops, op->str);
-- right_side = ops->inner(ops+1, &val, &cp);
-- *cpp = cp;
--
-- /* If short_circuit_val is 0 or 1, we can ignore
-- * right side if left size is known, and its value
-- * (i.e., *valp) is 0 or !0, respectively */
-- if (left_side != LT_IF && op->short_circuit_val == !!*valp) {
-- debug("op->short_circuit_val:%d *valp:%d cp:'%s'",
-- op->short_circuit_val, *valp, cp);
-- *valp = !!*valp;
-- break;
-- }
-- /* Same for the right side */
-- if (right_side != LT_IF && op->short_circuit_val == !!val) {
-- debug("op->short_circuit_val:%d val:%d cp:'%s'",
-- op->short_circuit_val, val, cp);
-- left_side = right_side;
-- *valp = !!val;
-- break;
-- }
--
-- if (left_side == LT_IF || right_side == LT_IF)
-- return (LT_IF);
-- *valp = op->fn(*valp, val);
-- left_side = right_side;
-+ debug("eval%d %s", prec(ops), op->str);
-+ rt = ops->inner(ops+1, &val, &cp);
-+ if (rt == LT_ERROR)
-+ return (LT_ERROR);
-+ lt = op->fn(valp, lt, *valp, rt, val);
- }
-
-- debug("eval%d = %d LT_IF:%d", ops - eval_ops, *valp, (left_side == LT_IF));
-- if (left_side == LT_IF)
-- return (LT_IF);
-- return (*valp ? LT_TRUE : LT_FALSE);
-+ *cpp = cp;
-+ debug("eval%d = %d", prec(ops), *valp);
-+ debug("eval%d lt = %s", prec(ops), linetype_name[lt]);
-+ return (lt);
- }
-
- /*
-@@ -841,14 +1084,57 @@
- static Linetype
- ifeval(const char **cpp)
- {
-- int ret;
-- int val;
-+ Linetype ret;
-+ long val = 0;
-
- debug("eval %s", *cpp);
-- keepthis = killconsts ? false : true;
-+ constexpr = killconsts ? false : true;
- ret = eval_table(eval_ops, &val, cpp);
-- debug("val:%d ret:%d keepthis:%d", val, ret, keepthis);
-- return (keepthis ? LT_IF : ret);
-+ debug("eval = %d", val);
-+ return (constexpr ? LT_IF : ret == LT_ERROR ? LT_IF : ret);
-+}
-+
-+/*
-+ * Read a line and examine its initial part to determine if it is a
-+ * preprocessor directive. Returns NULL on EOF, or a pointer to a
-+ * preprocessor directive name, or a pointer to the zero byte at the
-+ * end of the line.
-+ */
-+static const char *
-+skiphash(void)
-+{
-+ const char *cp;
-+
-+ linenum++;
-+ if (fgets(tline, MAXLINE, input) == NULL) {
-+ if (ferror(input))
-+ err(2, "can't read %s", filename);
-+ else
-+ return (NULL);
-+ }
-+ cp = skipcomment(tline);
-+ if (linestate == LS_START && *cp == '#') {
-+ linestate = LS_HASH;
-+ return (skipcomment(cp + 1));
-+ } else if (*cp == '\0') {
-+ return (cp);
-+ } else {
-+ return (skipline(cp));
-+ }
-+}
-+
-+/*
-+ * Mark a line dirty and consume the rest of it, keeping track of the
-+ * lexical state.
-+ */
-+static const char *
-+skipline(const char *cp)
-+{
-+ if (*cp != '\0')
-+ linestate = LS_DIRTY;
-+ while (*cp != '\0')
-+ cp = skipcomment(cp + 1);
-+ return (cp);
- }
-
- /*
-@@ -869,11 +1155,16 @@
- }
- while (*cp != '\0')
- /* don't reset to LS_START after a line continuation */
-- if (strncmp(cp, "\\\n", 2) == 0)
-+ if (strncmp(cp, "\\\r\n", 3) == 0)
-+ cp += 3;
-+ else if (strncmp(cp, "\\\n", 2) == 0)
- cp += 2;
- else switch (incomment) {
- case NO_COMMENT:
-- if (strncmp(cp, "/\\\n", 3) == 0) {
-+ if (strncmp(cp, "/\\\r\n", 4) == 0) {
-+ incomment = STARTING_COMMENT;
-+ cp += 4;
-+ } else if (strncmp(cp, "/\\\n", 3) == 0) {
- incomment = STARTING_COMMENT;
- cp += 3;
- } else if (strncmp(cp, "/*", 2) == 0) {
-@@ -893,7 +1184,7 @@
- } else if (strncmp(cp, "\n", 1) == 0) {
- linestate = LS_START;
- cp += 1;
-- } else if (strchr(" \t", *cp) != NULL) {
-+ } else if (strchr(" \r\t", *cp) != NULL) {
- cp += 1;
- } else
- return (cp);
-@@ -925,7 +1216,10 @@
- cp += 1;
- continue;
- case C_COMMENT:
-- if (strncmp(cp, "*\\\n", 3) == 0) {
-+ if (strncmp(cp, "*\\\r\n", 4) == 0) {
-+ incomment = FINISHING_COMMENT;
-+ cp += 4;
-+ } else if (strncmp(cp, "*\\\n", 3) == 0) {
- incomment = FINISHING_COMMENT;
- cp += 3;
- } else if (strncmp(cp, "*/", 2) == 0) {
-@@ -954,13 +1248,37 @@
- incomment = C_COMMENT;
- continue;
- default:
-- debug("bug at line %d", __LINE__);
- abort(); /* bug */
- }
- return (cp);
- }
-
- /*
-+ * Skip macro arguments.
-+ */
-+static const char *
-+skipargs(const char *cp)
-+{
-+ const char *ocp = cp;
-+ int level = 0;
-+ cp = skipcomment(cp);
-+ if (*cp != '(')
-+ return (cp);
-+ do {
-+ if (*cp == '(')
-+ level++;
-+ if (*cp == ')')
-+ level--;
-+ cp = skipcomment(cp+1);
-+ } while (level != 0 && *cp != '\0');
-+ if (level == 0)
-+ return (cp);
-+ else
-+ /* Rewind and re-detect the syntax error later. */
-+ return (ocp);
-+}
-+
-+/*
- * Skip over an identifier.
- */
- static const char *
-@@ -972,27 +1290,69 @@
- }
-
- /*
-- * Look for the symbol in the symbol table. If is is found, we return
-+ * Skip whitespace and take a copy of any following identifier.
-+ */
-+static const char *
-+getsym(const char **cpp)
-+{
-+ const char *cp = *cpp, *sym;
-+
-+ cp = skipcomment(cp);
-+ cp = skipsym(sym = cp);
-+ if (cp == sym)
-+ return NULL;
-+ *cpp = cp;
-+ return (xstrdup(sym, cp));
-+}
-+
-+/*
-+ * Check that s (a symbol) matches the start of t, and that the
-+ * following character in t is not a symbol character. Returns a
-+ * pointer to the following character in t if there is a match,
-+ * otherwise NULL.
-+ */
-+static const char *
-+matchsym(const char *s, const char *t)
-+{
-+ while (*s != '\0' && *t != '\0')
-+ if (*s != *t)
-+ return (NULL);
-+ else
-+ ++s, ++t;
-+ if (*s == '\0' && endsym(*t))
-+ return(t);
-+ else
-+ return(NULL);
-+}
-+
-+/*
-+ * Look for the symbol in the symbol table. If it is found, we return
- * the symbol table index, else we return -1.
- */
- static int
--findsym(const char *str)
-+findsym(const char **strp)
- {
-- const char *cp;
-+ const char *str;
- int symind;
-
-- cp = skipsym(str);
-- if (cp == str)
-- return (-1);
-+ str = *strp;
-+ *strp = skipsym(str);
- if (symlist) {
-- printf("%.*s\n", (int)(cp-str), str);
-+ if (*strp == str)
-+ return (-1);
-+ if (symdepth && firstsym)
-+ printf("%s%3d", zerosyms ? "" : "\n", depth);
-+ firstsym = zerosyms = false;
-+ printf("%s%.*s%s",
-+ symdepth ? " " : "",
-+ (int)(*strp-str), str,
-+ symdepth ? "" : "\n");
- /* we don't care about the value of the symbol */
- return (0);
- }
- for (symind = 0; symind < nsyms; ++symind) {
-- if (strlcmp(symname[symind], str, cp-str) == 0) {
-- debug("findsym %s %s", symname[symind],
-- value[symind] ? value[symind] : "");
-+ if (matchsym(symname[symind], str) != NULL) {
-+ debugsym("findsym", symind);
- return (symind);
- }
- }
-@@ -1000,51 +1360,194 @@
- }
-
- /*
-+ * Resolve indirect symbol values to their final definitions.
-+ */
-+static void
-+indirectsym(void)
-+{
-+ const char *cp;
-+ int changed, sym, ind;
-+
-+ do {
-+ changed = 0;
-+ for (sym = 0; sym < nsyms; ++sym) {
-+ if (value[sym] == NULL)
-+ continue;
-+ cp = value[sym];
-+ ind = findsym(&cp);
-+ if (ind == -1 || ind == sym ||
-+ *cp != '\0' ||
-+ value[ind] == NULL ||
-+ value[ind] == value[sym])
-+ continue;
-+ debugsym("indir...", sym);
-+ value[sym] = value[ind];
-+ debugsym("...ectsym", sym);
-+ changed++;
-+ }
-+ } while (changed);
-+}
-+
-+/*
-+ * Add a symbol to the symbol table, specified with the format sym=val
-+ */
-+static void
-+addsym1(bool ignorethis, bool definethis, char *symval)
-+{
-+ const char *sym, *val;
-+
-+ sym = symval;
-+ val = skipsym(sym);
-+ if (definethis && *val == '=') {
-+ symval[val - sym] = '\0';
-+ val = val + 1;
-+ } else if (*val == '\0') {
-+ val = definethis ? "1" : NULL;
-+ } else {
-+ usage();
-+ }
-+ addsym2(ignorethis, sym, val);
-+}
-+
-+/*
- * Add a symbol to the symbol table.
- */
- static void
--addsym(bool ignorethis, bool definethis, char *sym)
-+addsym2(bool ignorethis, const char *sym, const char *val)
- {
-+ const char *cp = sym;
- int symind;
-- char *val;
-
-- symind = findsym(sym);
-+ symind = findsym(&cp);
- if (symind < 0) {
- if (nsyms >= MAXSYMS)
- errx(2, "too many symbols");
- symind = nsyms++;
- }
-- symname[symind] = sym;
- ignore[symind] = ignorethis;
-- val = sym + (skipsym(sym) - sym);
-- if (definethis) {
-- if (*val == '=') {
-- value[symind] = val+1;
-- *val = '\0';
-- } else if (*val == '\0')
-- value[symind] = "";
-- else
-- usage();
-+ symname[symind] = sym;
-+ value[symind] = val;
-+ debugsym("addsym", symind);
-+}
-+
-+static void
-+debugsym(const char *why, int symind)
-+{
-+ debug("%s %s%c%s", why, symname[symind],
-+ value[symind] ? '=' : ' ',
-+ value[symind] ? value[symind] : "undef");
-+}
-+
-+/*
-+ * Add symbols to the symbol table from a file containing
-+ * #define and #undef preprocessor directives.
-+ */
-+static void
-+defundefile(const char *fn)
-+{
-+ filename = fn;
-+ input = fopen(fn, "rb");
-+ if (input == NULL)
-+ err(2, "can't open %s", fn);
-+ linenum = 0;
-+ while (defundef())
-+ ;
-+ if (ferror(input))
-+ err(2, "can't read %s", filename);
-+ else
-+ fclose(input);
-+ if (incomment)
-+ error("EOF in comment");
-+}
-+
-+/*
-+ * Read and process one #define or #undef directive
-+ */
-+static bool
-+defundef(void)
-+{
-+ const char *cp, *kw, *sym, *val, *end;
-+
-+ cp = skiphash();
-+ if (cp == NULL)
-+ return (false);
-+ if (*cp == '\0')
-+ goto done;
-+ /* strip trailing whitespace, and do a fairly rough check to
-+ avoid unsupported multi-line preprocessor directives */
-+ end = cp + strlen(cp);
-+ while (end > tline && strchr(" \t\n\r", end[-1]) != NULL)
-+ --end;
-+ if (end > tline && end[-1] == '\\')
-+ Eioccc();
-+
-+ kw = cp;
-+ if ((cp = matchsym("define", kw)) != NULL) {
-+ sym = getsym(&cp);
-+ if (sym == NULL)
-+ error("missing macro name in #define");
-+ if (*cp == '(') {
-+ val = "1";
-+ } else {
-+ cp = skipcomment(cp);
-+ val = (cp < end) ? xstrdup(cp, end) : "";
-+ }
-+ debug("#define");
-+ addsym2(false, sym, val);
-+ } else if ((cp = matchsym("undef", kw)) != NULL) {
-+ sym = getsym(&cp);
-+ if (sym == NULL)
-+ error("missing macro name in #undef");
-+ cp = skipcomment(cp);
-+ debug("#undef");
-+ addsym2(false, sym, NULL);
- } else {
-- if (*val != '\0')
-- usage();
-- value[symind] = NULL;
-+ error("unrecognized preprocessor directive");
- }
-+ skipline(cp);
-+done:
-+ debug("parser line %d state %s comment %s line", linenum,
-+ comment_name[incomment], linestate_name[linestate]);
-+ return (true);
- }
-
- /*
-- * Compare s with n characters of t.
-- * The same as strncmp() except that it checks that s[n] == '\0'.
-+ * Concatenate two strings into new memory, checking for failure.
- */
--static int
--strlcmp(const char *s, const char *t, size_t n)
-+static char *
-+astrcat(const char *s1, const char *s2)
- {
-- while (n-- && *t != '\0')
-- if (*s != *t)
-- return ((unsigned char)*s - (unsigned char)*t);
-- else
-- ++s, ++t;
-- return ((unsigned char)*s);
-+ char *s;
-+ int len;
-+ size_t size;
-+
-+ len = snprintf(NULL, 0, "%s%s", s1, s2);
-+ if (len < 0)
-+ err(2, "snprintf");
-+ size = (size_t)len + 1;
-+ s = (char *)malloc(size);
-+ if (s == NULL)
-+ err(2, "malloc");
-+ snprintf(s, size, "%s%s", s1, s2);
-+ return (s);
-+}
-+
-+/*
-+ * Duplicate a segment of a string, checking for failure.
-+ */
-+static const char *
-+xstrdup(const char *start, const char *end)
-+{
-+ size_t n;
-+ char *s;
-+
-+ if (end < start) abort(); /* bug */
-+ n = (size_t)(end - start) + 1;
-+ s = malloc(n);
-+ if (s == NULL)
-+ err(2, "malloc");
-+ snprintf(s, n, "%s", start);
-+ return (s);
- }
-
- /*
-@@ -1070,5 +1573,6 @@
- else
- warnx("%s: %d: %s (#if line %d depth %d)",
- filename, linenum, msg, stifline[depth], depth);
-+ closeio();
- errx(2, "output may be truncated");
- }
-diff -Nur uClibc-0.9.33.2/extra/scripts/unifdef.h uClibc-git/extra/scripts/unifdef.h
---- uClibc-0.9.33.2/extra/scripts/unifdef.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/scripts/unifdef.h 2014-07-25 20:36:04.949324959 +0200
-@@ -0,0 +1,57 @@
-+/*
-+ * Copyright (c) 2012 - 2013 Tony Finch <dot@dotat.at>
-+ *
-+ * 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 <sys/stat.h>
-+
-+#include <ctype.h>
-+#include <errno.h>
-+#include <stdarg.h>
-+#include <stdbool.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+/* Avoid err.h since this are non-standard BSD extensions */
-+#define vwarnx(fmt, args) ({ fprintf(stderr, "unifdef: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); })
-+#define warnx(fmt, args...) fprintf(stderr, "unifdef: " fmt "\n", ## args)
-+#define warn(fmt, args...) warnx(fmt ": %s", ## args, strerror(errno))
-+#define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); })
-+#define err(exit_code, fmt, args...) errx(exit_code, fmt ": %s", ## args, strerror(errno))
-+
-+/* portability stubs */
-+
-+#define fbinmode(fp) (fp)
-+
-+#define replace(old,new) rename(old,new)
-+
-+static FILE *
-+mktempmode(char *tmp, int mode)
-+{
-+ int fd = mkstemp(tmp);
-+ if (fd < 0) return (NULL);
-+ fchmod(fd, mode & (S_IRWXU|S_IRWXG|S_IRWXO));
-+ return (fdopen(fd, "wb"));
-+}
-diff -Nur uClibc-0.9.33.2/extra/scripts/version.h uClibc-git/extra/scripts/version.h
---- uClibc-0.9.33.2/extra/scripts/version.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/extra/scripts/version.h 2014-07-25 20:36:04.949324959 +0200
-@@ -0,0 +1,2 @@
-+"@(#) $Version: unifdef-2.10.4.1542ea4 $\n"
-+"@(#) $Date: 2014-01-07 22:32:21 +0000 $\n"
-diff -Nur uClibc-0.9.33.2/.gitignore uClibc-git/.gitignore
---- uClibc-0.9.33.2/.gitignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/.gitignore 2014-07-25 20:36:04.409322131 +0200
-@@ -25,6 +25,7 @@
- .gdb_history
- .gdbinit
- core
-+*.c.[0-9][0-9][0-9]t.*
-
- #
- # Backups / patches
-diff -Nur uClibc-0.9.33.2/include/alloca.h uClibc-git/include/alloca.h
---- uClibc-0.9.33.2/include/alloca.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/alloca.h 2014-07-25 20:36:04.961325022 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ALLOCA_H
- #define _ALLOCA_H 1
-diff -Nur uClibc-0.9.33.2/include/ar.h uClibc-git/include/ar.h
---- uClibc-0.9.33.2/include/ar.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ar.h 2014-07-25 20:36:04.961325022 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _AR_H
- #define _AR_H 1
-diff -Nur uClibc-0.9.33.2/include/arpa/inet.h uClibc-git/include/arpa/inet.h
---- uClibc-0.9.33.2/include/arpa/inet.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/arpa/inet.h 2014-07-25 20:36:04.973325085 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ARPA_INET_H
- #define _ARPA_INET_H 1
-@@ -32,7 +31,7 @@
-
- /* Convert Internet host address from numbers-and-dots notation in CP
- into binary data in network byte order. */
--extern in_addr_t inet_addr (__const char *__cp) __THROW;
-+extern in_addr_t inet_addr (const char *__cp) __THROW;
- libc_hidden_proto(inet_addr)
-
- /* Return the local host address part of the Internet address in IN. */
-@@ -50,7 +49,7 @@
-
- /* Extract the network number in network byte order from the address
- in numbers-and-dots natation starting at CP. */
--extern in_addr_t inet_network (__const char *__cp) __THROW;
-+extern in_addr_t inet_network (const char *__cp) __THROW;
- libc_hidden_proto(inet_network)
-
- /* Convert Internet number in IN to ASCII representation. The return value
-@@ -60,20 +59,19 @@
- #ifdef __UCLIBC__
- /* Recursion-safe flavor */
- extern char *inet_ntoa_r (struct in_addr __in, char *__buf) __THROW;
--libc_hidden_proto(inet_ntoa_r)
- #endif
-
- /* Convert from presentation format of an Internet number in buffer
- starting at CP to the binary network format and store result for
- interface type AF in buffer starting at BUF. */
--extern int inet_pton (int __af, __const char *__restrict __cp,
-+extern int inet_pton (int __af, const char *__restrict __cp,
- void *__restrict __buf) __THROW;
- libc_hidden_proto(inet_pton)
-
- /* Convert a Internet address in binary network format for interface
- type AF in buffer starting at CP to presentation form and place
- result in buffer of length LEN astarting at BUF. */
--extern __const char *inet_ntop (int __af, __const void *__restrict __cp,
-+extern const char *inet_ntop (int __af, const void *__restrict __cp,
- char *__restrict __buf, socklen_t __len)
- __THROW;
- libc_hidden_proto(inet_ntop)
-@@ -83,7 +81,7 @@
- #ifdef __USE_MISC
- /* Convert Internet host address from numbers-and-dots notation in CP
- into binary data and store the result in the structure INP. */
--extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
-+extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
- libc_hidden_proto(inet_aton)
-
- #if 0
-@@ -94,24 +92,24 @@
- /* Convert network number for interface type AF in buffer starting at
- CP to presentation format. The result will specifiy BITS bits of
- the number. */
--extern char *inet_net_ntop (int __af, __const void *__cp, int __bits,
-+extern char *inet_net_ntop (int __af, const void *__cp, int __bits,
- char *__buf, size_t __len) __THROW;
-
- /* Convert network number for interface type AF from presentation in
- buffer starting at CP to network format and store result int
- buffer starting at BUF of size LEN. */
--extern int inet_net_pton (int __af, __const char *__cp,
-+extern int inet_net_pton (int __af, const char *__cp,
- void *__buf, size_t __len) __THROW;
-
- /* Convert ASCII representation in hexadecimal form of the Internet
- address to binary form and place result in buffer of length LEN
- starting at BUF. */
--extern unsigned int inet_nsap_addr (__const char *__cp,
-+extern unsigned int inet_nsap_addr (const char *__cp,
- unsigned char *__buf, int __len) __THROW;
-
- /* Convert internet address in binary form in LEN bytes starting at CP
- a presentation form and place result in BUF. */
--extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
-+extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp,
- char *__buf) __THROW;
- #endif
- #endif
-diff -Nur uClibc-0.9.33.2/include/assert.h uClibc-git/include/assert.h
---- uClibc-0.9.33.2/include/assert.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/assert.h 2014-07-25 20:36:04.973325085 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.2 Diagnostics <assert.h>
-@@ -72,7 +71,7 @@
- # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
- # define __ASSERT_FUNCTION __func__
- # else
--# define __ASSERT_FUNCTION ((__const char *) 0)
-+# define __ASSERT_FUNCTION ((const char *) 0)
- # endif
- # endif
-
-diff -Nur uClibc-0.9.33.2/include/atomic.h uClibc-git/include/atomic.h
---- uClibc-0.9.33.2/include/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/atomic.h 2014-07-25 20:36:04.973325085 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ATOMIC_H
- #define _ATOMIC_H 1
-diff -Nur uClibc-0.9.33.2/include/byteswap.h uClibc-git/include/byteswap.h
---- uClibc-0.9.33.2/include/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/byteswap.h 2014-07-25 20:36:04.973325085 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BYTESWAP_H
- #define _BYTESWAP_H 1
-diff -Nur uClibc-0.9.33.2/include/cancel.h uClibc-git/include/cancel.h
---- uClibc-0.9.33.2/include/cancel.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/include/cancel.h 2014-07-25 20:36:04.973325085 +0200
-@@ -0,0 +1,101 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _CANCEL_H
-+#define _CANCEL_H
-+
-+/*
-+ * Usage of this header:
-+ * 1. define a static or hidden function __NC(NAME) - expands to __NAME_nocancel
-+ * 2. if it is hidden, add the prototype to the appropiate header where NAME has
-+ * it's prototype (guarded by _LIBC)
-+ * 3. add a CANCELLABLE_SYSCALL(...) line at the end, this will create the function
-+ * NAME (as weak) with enabled cancellation for NPTL (and later for new LT), for
-+ * LT_OLD it will also create a strong_alias to __libc_NAME to be used in libpthread
-+ * 4. if you need libc_hidden_(weak|def) line, use instead lt_libc_hidden, this will
-+ * take care of the correct type, weak or strong depending on the THREADS type
-+ * 5. If the implementation can't be done using CANCELLABLE_SYSCALL (like for fcntl)
-+ * you need to manually add lt_strong_alias() line too, to optionally create the
-+ * __libc_NAME alias
-+ * 6. if functions are needed to implement __NC(NAME), that themselves are cancellable,
-+ * decide how the cancellation should be solved, two variants are possible:
-+ * a. use the other function as __NC(FUNC), this way you access the non-cancellable
-+ * variant and provide by CANCELLABLE_SYSCALL(...) the dedicated cancellation for NAME.
-+ * be aware, that for this case __NC(FUNC) has to be hidden (not static)
-+ * b. use the other function with it's name (FUNC) and add LIBC_CANCEL_HANDLED(); at
-+ * the end of file with a comment telling us which function took care of the cancellation
-+ * Note: LIBC_CANCEL_HANDLED() is noop on uClibc, glibc uses it only for tests, we use
-+ * it only for "documentation".
-+ *
-+ * For now the use of this file is limited to libc, will expand later to support libpthread
-+ * and librt as well.
-+ */
-+
-+#include <features.h>
-+
-+#ifndef NOT_IN_libc
-+
-+#define __NC(name) _NC(name)
-+#define _NC(name) __##name##_nocancel
-+
-+#define __NC_OLD(name) _NC_OLD(name)
-+#define _NC_OLD(name) __libc_##name
-+
-+#define __NC_PROTO(name) extern __typeof(name) __NC(name) attribute_hidden;
-+#define __NC_OLD_PROTO(name) extern __typeof(name) __NC_OLD(name);
-+
-+#if defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
-+# define __NEW_THREADS 1
-+#else
-+# define SINGLE_THREAD_P 1
-+#endif
-+
-+#ifdef __NEW_THREADS
-+# include <sysdep-cancel.h>
-+
-+# define CANCELLABLE_SYSCALL(res_type, name, param_list, params) \
-+res_type weak_function name param_list \
-+{ \
-+ if (SINGLE_THREAD_P) \
-+ return __NC(name) params; \
-+ int oldtype = LIBC_CANCEL_ASYNC(); \
-+ res_type result = __NC(name) params; \
-+ LIBC_CANCEL_RESET(oldtype); \
-+ return result; \
-+}
-+
-+# define lt_strong_alias(name)
-+# define lt_libc_hidden(name) libc_hidden_def(name)
-+
-+#elif defined __LINUXTHREADS_OLD__
-+
-+# define CANCELLABLE_SYSCALL(res_type, name, param_list, params) \
-+weak_alias(__NC(name),name) \
-+lt_strong_alias(name)
-+
-+# define lt_strong_alias(name) \
-+__NC_OLD_PROTO(name) \
-+strong_alias(name,__NC_OLD(name))
-+# define lt_libc_hidden(name) libc_hidden_weak(name)
-+
-+#else
-+
-+# define CANCELLABLE_SYSCALL(res_type, name, param_list, params) \
-+strong_alias(__NC(name),name)
-+
-+# define lt_strong_alias(name)
-+# define lt_libc_hidden(name) libc_hidden_def(name)
-+
-+#endif
-+
-+/* disable it, useless, glibc uses it only for tests */
-+# undef LIBC_CANCEL_HANDLED
-+# define LIBC_CANCEL_HANDLED()
-+
-+#endif /* NOT_IN_libc */
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/include/complex.h uClibc-git/include/complex.h
---- uClibc-0.9.33.2/include/complex.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/complex.h 2014-07-25 20:36:04.973325085 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
-+/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99: 7.3 Complex arithmetic <complex.h>
-@@ -84,7 +83,8 @@
-
- /* And the long double versions. It is non-critical to define them
- here unconditionally since `long double' is required in ISO C99. */
--#if __STDC__ - 0 || __GNUC__ - 0 && defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
-+#if (__STDC__ - 0 || __GNUC__ - 0) \
-+ && defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
- # ifndef _Mlong_double_
- # define _Mlong_double_ long double
- # endif
-diff -Nur uClibc-0.9.33.2/include/cpio.h uClibc-git/include/cpio.h
---- uClibc-0.9.33.2/include/cpio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/cpio.h 2014-07-25 20:36:04.977325106 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _CPIO_H
- #define _CPIO_H 1
-diff -Nur uClibc-0.9.33.2/include/crypt.h uClibc-git/include/crypt.h
---- uClibc-0.9.33.2/include/crypt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/crypt.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,10 +12,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-- *
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- #ifndef _CRYPT_H
-diff -Nur uClibc-0.9.33.2/include/ctype.h uClibc-git/include/ctype.h
---- uClibc-0.9.33.2/include/ctype.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ctype.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard 7.4: Character handling <ctype.h>
-@@ -405,8 +404,8 @@
-
- #endif /* __UCLIBC_HAS_CTYPE_TABLES__ */
-
--/* We define {__,}isascii for internal use only */
- #if defined _LIBC && !defined __UCLIBC_SUSV4_LEGACY__
-+/* We define {__,}isascii for internal use only */
- # define __isascii(c) (((c) & ~0x7f) == 0)
- # define isascii(c) __isascii (c)
- #endif
-diff -Nur uClibc-0.9.33.2/include/dirent.h uClibc-git/include/dirent.h
---- uClibc-0.9.33.2/include/dirent.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/dirent.h 2014-07-25 20:36:04.977325106 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-2000, 2003-2005, 2009 Free Software Foundation, Inc.
-+/* Copyright (C) 1991-2000,2003-2005,2009,2010 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 5.1.2 Directory Operations <dirent.h>
-@@ -132,7 +131,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern DIR *opendir (__const char *__name) __nonnull ((1));
-+extern DIR *opendir (const char *__name) __nonnull ((1));
- libc_hidden_proto(opendir)
-
- #ifdef __USE_XOPEN2K8
-@@ -224,7 +223,7 @@
- extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
- #endif
-
--#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN_2K8
-+#if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN2K8
-
- /* Return the file descriptor used by DIRP. */
- extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
-@@ -256,20 +255,20 @@
- sorted using qsort with CMP, and collected in a malloc'd array in
- *NAMELIST. Returns the number of entries selected, or -1 on error. */
- # ifndef __USE_FILE_OFFSET64
--extern int scandir (__const char *__restrict __dir,
-+extern int scandir (const char *__restrict __dir,
- struct dirent ***__restrict __namelist,
-- int (*__selector) (__const struct dirent *),
-- int (*__cmp) (__const struct dirent **,
-- __const struct dirent **))
-+ int (*__selector) (const struct dirent *),
-+ int (*__cmp) (const struct dirent **,
-+ const struct dirent **))
- __nonnull ((1, 2));
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT (scandir,
-- (__const char *__restrict __dir,
-+ (const char *__restrict __dir,
- struct dirent ***__restrict __namelist,
-- int (*__selector) (__const struct dirent *),
-- int (*__cmp) (__const struct dirent **,
-- __const struct dirent **)),
-+ int (*__selector) (const struct dirent *),
-+ int (*__cmp) (const struct dirent **,
-+ const struct dirent **)),
- scandir64) __nonnull ((1, 2));
- # else
- # define scandir scandir64
-@@ -279,24 +278,24 @@
- # if defined __USE_GNU && defined __USE_LARGEFILE64
- /* This function is like `scandir' but it uses the 64bit dirent structure.
- Please note that the CMP function must now work with struct dirent64 **. */
--extern int scandir64 (__const char *__restrict __dir,
-+extern int scandir64 (const char *__restrict __dir,
- struct dirent64 ***__restrict __namelist,
-- int (*__selector) (__const struct dirent64 *),
-- int (*__cmp) (__const struct dirent64 **,
-- __const struct dirent64 **))
-+ int (*__selector) (const struct dirent64 *),
-+ int (*__cmp) (const struct dirent64 **,
-+ const struct dirent64 **))
- __nonnull ((1, 2));
- # endif
-
- /* Function to compare two `struct dirent's alphabetically. */
- # ifndef __USE_FILE_OFFSET64
--extern int alphasort (__const struct dirent **__e1,
-- __const struct dirent **__e2)
-+extern int alphasort (const struct dirent **__e1,
-+ const struct dirent **__e2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT_NTH (alphasort,
-- (__const struct dirent **__e1,
-- __const struct dirent **__e2),
-+ (const struct dirent **__e1,
-+ const struct dirent **__e2),
- alphasort64) __attribute_pure__ __nonnull ((1, 2));
- # else
- # define alphasort alphasort64
-@@ -304,14 +303,14 @@
- # endif
-
- # if defined __USE_GNU && defined __USE_LARGEFILE64
--extern int alphasort64 (__const struct dirent64 **__e1,
-- __const struct dirent64 **__e2)
-+extern int alphasort64 (const struct dirent64 **__e1,
-+ const struct dirent64 **__e2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- # endif
- #endif /* Use BSD or misc or XPG7. */
-
-
--#if defined __USE_BSD || defined __USE_MISC
-+#if 0 /* defined __USE_BSD || defined __USE_MISC */
- /* Read directory entries from FD into BUF, reading at most NBYTES.
- Reading starts at offset *BASEP, and *BASEP is updated with the new
- position after reading. Returns the number of bytes read; zero when at
-@@ -344,14 +343,14 @@
- #ifdef __USE_GNU
- /* Function to compare two `struct dirent's by name & version. */
- # ifndef __USE_FILE_OFFSET64
--extern int versionsort (__const struct dirent **__e1,
-- __const struct dirent **__e2)
-+extern int versionsort (const struct dirent **__e1,
-+ const struct dirent **__e2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT_NTH (versionsort,
-- (__const struct dirent **__e1,
-- __const struct dirent **__e2),
-+ (const struct dirent **__e1,
-+ const struct dirent **__e2),
- versionsort64)
- __attribute_pure__ __nonnull ((1, 2));
- # else
-@@ -360,12 +359,19 @@
- # endif
-
- # ifdef __USE_LARGEFILE64
--extern int versionsort64 (__const struct dirent64 **__e1,
-- __const struct dirent64 **__e2)
-+extern int versionsort64 (const struct dirent64 **__e1,
-+ const struct dirent64 **__e2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- # endif
- #endif /* Use GNU. */
-
- __END_DECLS
-
-+#ifdef _LIBC
-+extern __ssize_t __getdents(int fd, char *buf, size_t count) attribute_hidden;
-+# ifdef __UCLIBC_HAS_LFS__
-+extern __ssize_t __getdents64 (int fd, char *buf, size_t count) attribute_hidden;
-+# endif
-+#endif
-+
- #endif /* dirent.h */
-diff -Nur uClibc-0.9.33.2/include/dlfcn.h uClibc-git/include/dlfcn.h
---- uClibc-0.9.33.2/include/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/dlfcn.h 2014-07-25 20:36:04.977325106 +0200
-@@ -1,6 +1,5 @@
- /* User functions for run-time dynamic loading.
-- Copyright (C) 1995-1999,2000,2001,2003,2004,2006
-- Free Software Foundation, Inc.
-+ Copyright (C) 1995-2001,2003,2004,2006,2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -14,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _DLFCN_H
- #define _DLFCN_H 1
-@@ -52,11 +50,12 @@
- # endif
- #endif
-
-+
- __BEGIN_DECLS
-
- /* Open the shared object FILE and map it in; return a handle that can be
- passed to `dlsym' to get symbol values from it. */
--extern void *dlopen (__const char *__file, int __mode) __THROW;
-+extern void *dlopen (const char *__file, int __mode) __THROW;
-
- /* Unmap and close a shared object opened by `dlopen'.
- The handle cannot be used again after calling `dlclose'. */
-@@ -65,17 +64,17 @@
- /* Find the run-time address in the shared object HANDLE refers to
- of the symbol called NAME. */
- extern void *dlsym (void *__restrict __handle,
-- __const char *__restrict __name) __THROW __nonnull ((2));
-+ const char *__restrict __name) __THROW __nonnull ((2));
-
- #if 0 /*def __USE_GNU*/
- /* Like `dlopen', but request object to be allocated in a new namespace. */
--extern void *dlmopen (Lmid_t __nsid, __const char *__file, int __mode) __THROW;
-+extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROW;
-
- /* Find the run-time address in the shared object HANDLE refers to
- of the symbol called NAME with VERSION. */
- extern void *dlvsym (void *__restrict __handle,
-- __const char *__restrict __name,
-- __const char *__restrict __version)
-+ const char *__restrict __name,
-+ const char *__restrict __version)
- __THROW __nonnull ((2, 3));
- #endif
-
-@@ -90,20 +89,20 @@
- `dladdr'. */
- typedef struct
- {
-- __const char *dli_fname; /* File name of defining object. */
-+ const char *dli_fname; /* File name of defining object. */
- void *dli_fbase; /* Load address of that object. */
-- __const char *dli_sname; /* Name of nearest symbol. */
-+ const char *dli_sname; /* Name of nearest symbol. */
- void *dli_saddr; /* Exact value of nearest symbol. */
- } Dl_info;
-
- /* Fill in *INFO with the following information about ADDRESS.
- Returns 0 iff no shared object's segments contain that address. */
--extern int dladdr (__const void *__address, Dl_info *__info)
-+extern int dladdr (const void *__address, Dl_info *__info)
- __THROW __nonnull ((2));
-
- #if 0 /* not supported by uClibc */
- /* Same as `dladdr', but additionally sets *EXTRA_INFO according to FLAGS. */
--extern int dladdr1 (__const void *__address, Dl_info *__info,
-+extern int dladdr1 (const void *__address, Dl_info *__info,
- void **__extra_info, int __flags) __THROW __nonnull ((2));
-
- /* These are the possible values for the FLAGS argument to `dladdr1'.
-@@ -166,7 +165,7 @@
- segment, or if the calling thread has not allocated a block for it. */
- RTLD_DI_TLS_DATA = 10,
-
-- RTLD_DI_MAX = 10,
-+ RTLD_DI_MAX = 10
- };
-
-
-@@ -186,12 +185,6 @@
- unsigned int dls_cnt; /* Number of elements in `dls_serpath'. */
- Dl_serpath dls_serpath[1]; /* Actually longer, dls_cnt elements. */
- } Dl_serinfo;
--
--#else
--
--/* Get information about the shared objects currently loaded */
--extern int dlinfo (void);
--
- #endif
- #endif /* __USE_GNU */
-
-diff -Nur uClibc-0.9.33.2/include/elf.h uClibc-git/include/elf.h
---- uClibc-0.9.33.2/include/elf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/elf.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ELF_H
- #define _ELF_H 1
-@@ -148,8 +147,8 @@
- #define ELFOSABI_SYSV 0 /* Alias. */
- #define ELFOSABI_HPUX 1 /* HP-UX */
- #define ELFOSABI_NETBSD 2 /* NetBSD. */
--#define ELFOSABI_LINUX 3 /* Linux. */
--#define ELFOSABI_HURD 4 /* GNU/Hurd */
-+#define ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */
-+#define ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */
- #define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
- #define ELFOSABI_AIX 7 /* IBM AIX. */
- #define ELFOSABI_IRIX 8 /* SGI Irix. */
-@@ -260,6 +259,7 @@
- #define EM_PJ 91 /* picoJava */
- #define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
- #define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
-+#define EM_ARCOMPACT 93 /* ARCompact ISA based Cores: ARC 700 */
- #define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
- #define EM_IP2K 101 /* Ubicom IP2022 micro controller */
- #define EM_CR 103 /* National Semiconductor CompactRISC */
-@@ -282,6 +282,9 @@
- unofficial e_machine number should eventually ask registry@caldera.com for
- an officially blessed number to be added to the list above. */
-
-+/* Imagination Technologies Meta */
-+#define EM_METAG 174
-+
- /* picoJava */
- #define EM_PJ_OLD 99
-
-@@ -3141,6 +3144,110 @@
- #define R_MICROBLAZE_COPY 21 /* runtime copy */
- #define R_MICROBLAZE_NUM 22
-
-+/* Meta relocations */
-+#define R_METAG_HIADDR16 0
-+#define R_METAG_LOADDR16 1
-+#define R_METAG_ADDR32 2
-+#define R_METAG_NONE 3
-+#define R_METAG_RELBRANCH 4
-+#define R_METAG_GETSETOFF 5
-+
-+/* Backward compatability */
-+#define R_METAG_REG32OP1 6
-+#define R_METAG_REG32OP2 7
-+#define R_METAG_REG32OP3 8
-+#define R_METAG_REG16OP1 9
-+#define R_METAG_REG16OP2 10
-+#define R_METAG_REG16OP3 11
-+#define R_METAG_REG32OP4 12
-+
-+#define R_METAG_HIOG 13
-+#define R_METAG_LOOG 14
-+
-+/* GNU */
-+#define R_METAG_GNU_VTINHERIT 30
-+#define R_METAG_GNU_VTENTRY 31
-+
-+/* PIC relocations */
-+#define R_METAG_HI16_GOTOFF 32
-+#define R_METAG_LO16_GOTOFF 33
-+#define R_METAG_GETSET_GOTOFF 34
-+#define R_METAG_GETSET_GOT 35
-+#define R_METAG_HI16_GOTPC 36
-+#define R_METAG_LO16_GOTPC 37
-+#define R_METAG_HI16_PLT 38
-+#define R_METAG_LO16_PLT 39
-+#define R_METAG_RELBRANCH_PLT 40
-+#define R_METAG_GOTOFF 41
-+#define R_METAG_PLT 42
-+#define R_METAG_COPY 43
-+#define R_METAG_JMP_SLOT 44
-+#define R_METAG_RELATIVE 45
-+#define R_METAG_GLOB_DAT 46
-+
-+/* TLS relocations */
-+#define R_METAG_TLS_TPOFF 56
-+#define R_METAG_TLS_DTPMOD 57
-+#define R_METAG_TLS_DTPOFF 58
-+
-+/* ARCompact specific relocs */
-+#define R_ARC_NONE 0x0
-+#define R_ARC_8 0x1
-+#define R_ARC_16 0x2
-+#define R_ARC_24 0x3
-+#define R_ARC_32 0x4
-+#define R_ARC_B26 0x5
-+#define R_ARC_B22_PCREL 0x6
-+#define R_ARC_H30 0x7
-+#define R_ARC_N8 0x8
-+#define R_ARC_N16 0x9
-+#define R_ARC_N24 0xA
-+#define R_ARC_N32 0xB
-+#define R_ARC_SDA 0xC
-+#define R_ARC_SECTOFF 0xD
-+#define R_ARC_S21H_PCREL 0xE
-+#define R_ARC_S21W_PCREL 0xF
-+#define R_ARC_S25H_PCREL 0x10
-+#define R_ARC_S25W_PCREL 0x11
-+#define R_ARC_SDA32 0x12
-+#define R_ARC_SDA_LDST 0x13
-+#define R_ARC_SDA_LDST1 0x14
-+#define R_ARC_SDA_LDST2 0x15
-+#define R_ARC_SDA16_LD 0x16
-+#define R_ARC_SDA16_LD1 0x17
-+#define R_ARC_SDA16_LD2 0x18
-+#define R_ARC_S13_PCREL 0x19
-+#define R_ARC_W 0x1A
-+#define R_ARC_32_ME 0x1B
-+#define R_ARC_N32_ME 0x1C
-+#define R_ARC_SECTOFF_ME 0x1D
-+#define R_ARC_SDA32_ME 0x1E
-+#define R_ARC_W_ME 0x1F
-+#define R_ARC_H30_ME 0x20
-+#define R_ARC_SECTOFF_U8 0x21
-+#define R_ARC_SECTOFF_S9 0x22
-+#define R_AC_SECTOFF_U8 0x23
-+#define R_AC_SECTOFF_U8_1 0x24
-+#define R_AC_SECTOFF_U8_2 0x25
-+#define R_AC_SECTOFF_S9 0x26
-+#define R_AC_SECTOFF_S9_1 0x27
-+#define R_AC_SECTOFF_S9_2 0x28
-+#define R_ARC_SECTOFF_ME_1 0x29
-+#define R_ARC_SECTOFF_ME_2 0x2A
-+#define R_ARC_SECTOFF_1 0x2B
-+#define R_ARC_SECTOFF_2 0x2C
-+#define R_ARC_PC32 0x32
-+#define R_ARC_GOTPC32 0x33
-+#define R_ARC_PLT32 0x34
-+#define R_ARC_COPY 0x35
-+#define R_ARC_GLOB_DAT 0x36
-+#define R_ARC_JMP_SLOT 0x37
-+#define R_ARC_RELATIVE 0x38
-+#define R_ARC_GOTOFF 0x39
-+#define R_ARC_GOTPC 0x3A
-+#define R_ARC_GOT32 0x3B
-+#define R_ARC_NUM 0x3C
-+
- #ifdef __cplusplus
- }
- #endif
-diff -Nur uClibc-0.9.33.2/include/endian.h uClibc-git/include/endian.h
---- uClibc-0.9.33.2/include/endian.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/endian.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ENDIAN_H
- #define _ENDIAN_H 1
-@@ -55,6 +54,17 @@
- # define __LONG_LONG_PAIR(HI, LO) HI, LO
- #endif
-
-+#ifdef _LIBC
-+# ifndef __ASSEMBLER__
-+# include <stdint.h>
-+# define OFF_HI(offset) (offset >> 31)
-+# define OFF_LO(offset) (offset)
-+# define OFF64_HI(offset) (uint32_t)(offset >> 32)
-+# define OFF64_LO(offset) (uint32_t)(offset & 0xffffffff)
-+# define OFF_HI_LO(offset) __LONG_LONG_PAIR(OFF_HI(offset), OFF_LO(offset))
-+# define OFF64_HI_LO(offset) __LONG_LONG_PAIR(OFF64_HI(offset), OFF64_LO(offset))
-+# endif
-+#endif
-
- #ifdef __USE_BSD
- /* Conversion interfaces. */
-diff -Nur uClibc-0.9.33.2/include/err.h uClibc-git/include/err.h
---- uClibc-0.9.33.2/include/err.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/err.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ERR_H
- #define _ERR_H 1
-@@ -32,30 +31,26 @@
-
- /* Print "program: ", FORMAT, ": ", the standard error string for errno,
- and a newline, on stderr. */
--extern void warn (__const char *__format, ...)
-+extern void warn (const char *__format, ...)
- __attribute__ ((__format__ (__printf__, 1, 2)));
--extern void vwarn (__const char *__format, __gnuc_va_list)
-+extern void vwarn (const char *__format, __gnuc_va_list)
- __attribute__ ((__format__ (__printf__, 1, 0)));
--libc_hidden_proto(vwarn)
-
- /* Likewise, but without ": " and the standard error string. */
--extern void warnx (__const char *__format, ...)
-+extern void warnx (const char *__format, ...)
- __attribute__ ((__format__ (__printf__, 1, 2)));
--extern void vwarnx (__const char *__format, __gnuc_va_list)
-+extern void vwarnx (const char *__format, __gnuc_va_list)
- __attribute__ ((__format__ (__printf__, 1, 0)));
--libc_hidden_proto(vwarnx)
-
- /* Likewise, and then exit with STATUS. */
--extern void err (int __status, __const char *__format, ...)
-+extern void err (int __status, const char *__format, ...)
- __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
--extern void verr (int __status, __const char *__format, __gnuc_va_list)
-+extern void verr (int __status, const char *__format, __gnuc_va_list)
- __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
--libc_hidden_proto(verr)
--extern void errx (int __status, __const char *__format, ...)
-+extern void errx (int __status, const char *__format, ...)
- __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
--extern void verrx (int __status, __const char *, __gnuc_va_list)
-+extern void verrx (int __status, const char *, __gnuc_va_list)
- __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
--libc_hidden_proto(verrx)
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/errno.h uClibc-git/include/errno.h
---- uClibc-0.9.33.2/include/errno.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/errno.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.5 Errors <errno.h>
-@@ -47,6 +46,11 @@
- extern int errno;
- #endif
-
-+#ifdef _LIBC
-+# ifdef __UCLIBC_HAS___PROGNAME__
-+extern const char *__progname, *__progname_full;
-+# endif
-+#endif
- #if defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
-
- /* The full and simple forms of the name with which the program was
-diff -Nur uClibc-0.9.33.2/include/error.h uClibc-git/include/error.h
---- uClibc-0.9.33.2/include/error.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/error.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ERROR_H
- #define _ERROR_H 1
-diff -Nur uClibc-0.9.33.2/include/execinfo.h uClibc-git/include/execinfo.h
---- uClibc-0.9.33.2/include/execinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/execinfo.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _EXECINFO_H
- #define _EXECINFO_H 1
-@@ -30,13 +29,13 @@
-
- /* Return names of functions from the backtrace list in ARRAY in a newly
- malloc()ed memory block. */
--extern char **backtrace_symbols (void *__const *__array, int __size)
-+extern char **backtrace_symbols (void *const *__array, int __size)
- __THROW __nonnull ((1));
-
-
- /* This function is similar to backtrace_symbols() but it writes the result
- immediately to a file. */
--extern void backtrace_symbols_fd (void *__const *__array, int __size, int __fd)
-+extern void backtrace_symbols_fd (void *const *__array, int __size, int __fd)
- __THROW __nonnull ((1));
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/fcntl.h uClibc-git/include/fcntl.h
---- uClibc-0.9.33.2/include/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/fcntl.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 6.5 File Control Operations <fcntl.h>
-@@ -75,7 +74,10 @@
- __THROW. */
- #if !defined(__USE_FILE_OFFSET64) || defined(__LP64__)
- extern int fcntl (int __fd, int __cmd, ...);
-+# ifdef _LIBC
-+extern int __fcntl_nocancel(int, int, long) attribute_hidden;
- libc_hidden_proto(fcntl)
-+# endif
- #else
- # ifdef __REDIRECT
- extern int __REDIRECT (fcntl, (int __fd, int __cmd, ...), fcntl64);
-@@ -85,7 +87,10 @@
- #endif
- #if defined(__USE_LARGEFILE64) && !defined(__LP64__)
- extern int fcntl64 (int __fd, int __cmd, ...);
-+# ifdef _LIBC
-+extern int __fcntl64_nocancel(int, int, long) attribute_hidden;
- libc_hidden_proto(fcntl64)
-+# endif
- #endif
-
- /* Open FILE and return a new file descriptor for it, or -1 on error.
-@@ -95,18 +100,22 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- #ifndef __USE_FILE_OFFSET64
--extern int open (__const char *__file, int __oflag, ...) __nonnull ((1));
-+extern int open (const char *__file, int __oflag, ...) __nonnull ((1));
- libc_hidden_proto(open)
-+# ifdef _LIBC
-+extern int __open2_nocancel(const char *, int) __nonnull ((1)) attribute_hidden;
-+extern int __open_nocancel(const char *, int, mode_t) __nonnull ((1)) attribute_hidden;
-+# endif
- #else
- # ifdef __REDIRECT
--extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
-+extern int __REDIRECT (open, (const char *__file, int __oflag, ...), open64)
- __nonnull ((1));
- # else
- # define open open64
- # endif
- #endif
- #ifdef __USE_LARGEFILE64
--extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
-+extern int open64 (const char *__file, int __oflag, ...) __nonnull ((1));
- libc_hidden_proto(open64)
- #endif
-
-@@ -121,21 +130,20 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- # ifndef __USE_FILE_OFFSET64
--extern int openat (int __fd, __const char *__file, int __oflag, ...)
-+extern int openat (int __fd, const char *__file, int __oflag, ...)
- __nonnull ((2));
- libc_hidden_proto(openat)
- # else
- # ifdef __REDIRECT
--extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag,
-+extern int __REDIRECT (openat, (int __fd, const char *__file, int __oflag,
- ...), openat64) __nonnull ((2));
- # else
- # define openat openat64
- # endif
- # endif
-
--extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
-+extern int openat64 (int __fd, const char *__file, int __oflag, ...)
- __nonnull ((2));
--libc_hidden_proto(openat64)
- #endif
-
- /* Create and open FILE, with mode MODE. This takes an `int' MODE
-@@ -144,17 +152,17 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- #ifndef __USE_FILE_OFFSET64
--extern int creat (__const char *__file, __mode_t __mode) __nonnull ((1));
-+extern int creat (const char *__file, __mode_t __mode) __nonnull ((1));
- #else
- # ifdef __REDIRECT
--extern int __REDIRECT (creat, (__const char *__file, __mode_t __mode),
-+extern int __REDIRECT (creat, (const char *__file, __mode_t __mode),
- creat64) __nonnull ((1));
- # else
- # define creat creat64
- # endif
- #endif
- #ifdef __USE_LARGEFILE64
--extern int creat64 (__const char *__file, __mode_t __mode) __nonnull ((1));
-+extern int creat64 (const char *__file, __mode_t __mode) __nonnull ((1));
- #endif
-
- #if !defined F_LOCK && (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \
-@@ -184,7 +192,6 @@
- # endif
- # ifdef __USE_LARGEFILE64
- extern int lockf64 (int __fd, int __cmd, __off64_t __len);
--libc_hidden_proto(lockf64)
- # endif
- #endif
-
-@@ -210,9 +217,7 @@
-
- #endif
-
--#if 0 /* && defined __UCLIBC_HAS_ADVANCED_REALTIME__ */
--
--/* FIXME -- uClibc should probably implement these... */
-+#if defined __UCLIBC_HAS_ADVANCED_REALTIME__
-
- /* Reserve storage for the data of the file associated with FD.
-
-@@ -234,11 +239,6 @@
- # endif
- #endif
-
--#ifdef _LIBC
--extern int __fcntl_nocancel (int fd, int cmd, ...);
--libc_hidden_proto(__fcntl_nocancel)
--#endif
--
- __END_DECLS
-
- #endif /* fcntl.h */
-diff -Nur uClibc-0.9.33.2/include/features.h uClibc-git/include/features.h
---- uClibc-0.9.33.2/include/features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/features.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FEATURES_H
- #define _FEATURES_H 1
-diff -Nur uClibc-0.9.33.2/include/fenv.h uClibc-git/include/fenv.h
---- uClibc-0.9.33.2/include/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/fenv.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 7.6: Floating-point environment <fenv.h>
-@@ -73,7 +72,7 @@
-
- /* Set complete status for exceptions indicated by EXCEPTS according to
- the representation in the object pointed to by FLAGP. */
--extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;
-+extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
-
- /* Determine which of subset of the exceptions specified by EXCEPTS are
- currently set. */
-@@ -102,12 +101,12 @@
-
- /* Establish the floating-point environment represented by the object
- pointed to by ENVP. */
--extern int fesetenv (__const fenv_t *__envp) __THROW;
-+extern int fesetenv (const fenv_t *__envp) __THROW;
-
- /* Save current exceptions in temporary storage, install environment
- represented by object pointed to by ENVP and raise exceptions
- according to saved exceptions. */
--extern int feupdateenv (__const fenv_t *__envp) __THROW;
-+extern int feupdateenv (const fenv_t *__envp) __THROW;
-
-
- /* Include optimization. */
-diff -Nur uClibc-0.9.33.2/include/fnmatch.h uClibc-git/include/fnmatch.h
---- uClibc-0.9.33.2/include/fnmatch.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/fnmatch.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FNMATCH_H
- #define _FNMATCH_H 1
-@@ -23,14 +22,6 @@
- extern "C" {
- #endif
-
--#ifndef const
--# if (defined __STDC__ && __STDC__) || defined __cplusplus
--# define __const const
--# else
--# define __const
--# endif
--#endif
--
- /* We #undef these before defining them because some losing systems
- (HP-UX A.08.07 for example) define these in <unistd.h>. */
- #undef FNM_PATHNAME
-@@ -62,7 +53,7 @@
-
- /* Match NAME against the filename pattern PATTERN,
- returning zero if it matches, FNM_NOMATCH if not. */
--extern int fnmatch (__const char *__pattern, __const char *__name,
-+extern int fnmatch (const char *__pattern, const char *__name,
- int __flags);
- libc_hidden_proto(fnmatch)
-
-diff -Nur uClibc-0.9.33.2/include/ftw.h uClibc-git/include/ftw.h
---- uClibc-0.9.33.2/include/ftw.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ftw.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * X/Open Portability Guide 4.2: ftw.h
-@@ -112,19 +111,19 @@
-
-
- /* Convenient types for callback functions. */
--typedef int (*__ftw_func_t) (__const char *__filename,
-- __const struct stat *__status, int __flag);
-+typedef int (*__ftw_func_t) (const char *__filename,
-+ const struct stat *__status, int __flag);
- #ifdef __USE_LARGEFILE64
--typedef int (*__ftw64_func_t) (__const char *__filename,
-- __const struct stat64 *__status, int __flag);
-+typedef int (*__ftw64_func_t) (const char *__filename,
-+ const struct stat64 *__status, int __flag);
- #endif
- #ifdef __USE_XOPEN_EXTENDED
--typedef int (*__nftw_func_t) (__const char *__filename,
-- __const struct stat *__status, int __flag,
-+typedef int (*__nftw_func_t) (const char *__filename,
-+ const struct stat *__status, int __flag,
- struct FTW *__info);
- # ifdef __USE_LARGEFILE64
--typedef int (*__nftw64_func_t) (__const char *__filename,
-- __const struct stat64 *__status,
-+typedef int (*__nftw64_func_t) (const char *__filename,
-+ const struct stat64 *__status,
- int __flag, struct FTW *__info);
- # endif
- #endif
-@@ -135,18 +134,18 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- # ifndef __USE_FILE_OFFSET64
--extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors)
-+extern int ftw (const char *__dir, __ftw_func_t __func, int __descriptors)
- __nonnull ((1, 2));
- # else
- # ifdef __REDIRECT
--extern int __REDIRECT (ftw, (__const char *__dir, __ftw_func_t __func,
-+extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func,
- int __descriptors), ftw64) __nonnull ((1, 2));
- # else
- # define ftw ftw64
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
--extern int ftw64 (__const char *__dir, __ftw64_func_t __func,
-+extern int ftw64 (const char *__dir, __ftw64_func_t __func,
- int __descriptors) __nonnull ((1, 2));
- # endif
- #endif
-@@ -158,11 +157,11 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- # ifndef __USE_FILE_OFFSET64
--extern int nftw (__const char *__dir, __nftw_func_t __func, int __descriptors,
-+extern int nftw (const char *__dir, __nftw_func_t __func, int __descriptors,
- int __flag) __nonnull ((1, 2));
- # else
- # ifdef __REDIRECT
--extern int __REDIRECT (nftw, (__const char *__dir, __nftw_func_t __func,
-+extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func,
- int __descriptors, int __flag), nftw64)
- __nonnull ((1, 2));
- # else
-@@ -170,7 +169,7 @@
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
--extern int nftw64 (__const char *__dir, __nftw64_func_t __func,
-+extern int nftw64 (const char *__dir, __nftw64_func_t __func,
- int __descriptors, int __flag) __nonnull ((1, 2));
- # endif
- #endif
-diff -Nur uClibc-0.9.33.2/include/.gitignore uClibc-git/include/.gitignore
---- uClibc-0.9.33.2/include/.gitignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/.gitignore 2014-07-25 20:36:04.961325022 +0200
-@@ -8,6 +8,7 @@
- #
- /bits/
- /config/
-+/generated/
-
- /bfin_fixed_code.h
- /bfin_l1layout.h
-@@ -15,6 +16,9 @@
- /dl-osinfo.h
- /fpu_control.h
- /hp-timing.h
-+/jmpbuf-offsets.h
-+/jmpbuf-unwind.h
-+/not-cancel.h
- /pthread.h
- /semaphore.h
- /thread_db.h
-diff -Nur uClibc-0.9.33.2/include/glob.h uClibc-git/include/glob.h
---- uClibc-0.9.33.2/include/glob.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/glob.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GLOB_H
- #define _GLOB_H 1
-@@ -110,13 +109,13 @@
- #else
- void *(*gl_readdir) (void *);
- #endif
-- void *(*gl_opendir) (__const char *);
-+ void *(*gl_opendir) (const char *);
- #ifdef __USE_GNU
-- int (*gl_lstat) (__const char *__restrict, struct stat *__restrict);
-- int (*gl_stat) (__const char *__restrict, struct stat *__restrict);
-+ int (*gl_lstat) (const char *__restrict, struct stat *__restrict);
-+ int (*gl_stat) (const char *__restrict, struct stat *__restrict);
- #else
-- int (*gl_lstat) (__const char *__restrict, void *__restrict);
-- int (*gl_stat) (__const char *__restrict, void *__restrict);
-+ int (*gl_lstat) (const char *__restrict, void *__restrict);
-+ int (*gl_stat) (const char *__restrict, void *__restrict);
- #endif
- #endif
- #endif /* __UCLIBC_HAS_GNU_GLOB__ */
-@@ -143,13 +142,13 @@
- # else
- void *(*gl_readdir) (void *);
- # endif
-- void *(*gl_opendir) (__const char *);
-+ void *(*gl_opendir) (const char *);
- # ifdef __USE_GNU
-- int (*gl_lstat) (__const char *__restrict, struct stat64 *__restrict);
-- int (*gl_stat) (__const char *__restrict, struct stat64 *__restrict);
-+ int (*gl_lstat) (const char *__restrict, struct stat64 *__restrict);
-+ int (*gl_stat) (const char *__restrict, struct stat64 *__restrict);
- # else
-- int (*gl_lstat) (__const char *__restrict, void *__restrict);
-- int (*gl_stat) (__const char *__restrict, void *__restrict);
-+ int (*gl_lstat) (const char *__restrict, void *__restrict);
-+ int (*gl_stat) (const char *__restrict, void *__restrict);
- # endif
- #endif
- #endif /* __UCLIBC_HAS_GNU_GLOB__ */
-@@ -170,8 +169,8 @@
- If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
- Otherwise, `glob' returns zero. */
- #if !defined __USE_FILE_OFFSET64 || __GNUC__ < 2
--extern int glob (__const char *__restrict __pattern, int __flags,
-- int (*__errfunc) (__const char *, int),
-+extern int glob (const char *__restrict __pattern, int __flags,
-+ int (*__errfunc) (const char *, int),
- glob_t *__restrict __pglob) __THROW;
- libc_hidden_proto(glob)
-
-@@ -179,17 +178,17 @@
- extern void globfree (glob_t *__pglob) __THROW;
- libc_hidden_proto(globfree)
- #else
--extern int __REDIRECT_NTH (glob, (__const char *__restrict __pattern,
-+extern int __REDIRECT_NTH (glob, (const char *__restrict __pattern,
- int __flags,
-- int (*__errfunc) (__const char *, int),
-+ int (*__errfunc) (const char *, int),
- glob_t *__restrict __pglob), glob64);
-
- extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
- #endif
-
- #ifdef __USE_LARGEFILE64
--extern int glob64 (__const char *__restrict __pattern, int __flags,
-- int (*__errfunc) (__const char *, int),
-+extern int glob64 (const char *__restrict __pattern, int __flags,
-+ int (*__errfunc) (const char *, int),
- glob64_t *__restrict __pglob) __THROW;
- libc_hidden_proto(glob64)
-
-@@ -204,7 +203,7 @@
-
- This function is not part of the interface specified by POSIX.2
- but several programs want to use it. */
--extern int glob_pattern_p (__const char *__pattern, int __quote) __THROW;
-+extern int glob_pattern_p (const char *__pattern, int __quote) __THROW;
- libc_hidden_proto(glob_pattern_p)
- #endif
-
-diff -Nur uClibc-0.9.33.2/include/gnu-versions.h uClibc-git/include/gnu-versions.h
---- uClibc-0.9.33.2/include/gnu-versions.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/gnu-versions.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GNU_VERSIONS_H
- #define _GNU_VERSIONS_H 1
-diff -Nur uClibc-0.9.33.2/include/grp.h uClibc-git/include/grp.h
---- uClibc-0.9.33.2/include/grp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/grp.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 9.2.1 Group Database Access <grp.h>
-@@ -92,7 +91,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int putgrent (__const struct group *__restrict __p,
-+extern int putgrent (const struct group *__restrict __p,
- FILE *__restrict __f);
- #endif
-
-@@ -106,7 +105,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct group *getgrnam (__const char *__name);
-+extern struct group *getgrnam (const char *__name);
-
- #if defined __USE_POSIX || defined __USE_MISC
-
-@@ -149,7 +148,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int getgrnam_r (__const char *__restrict __name,
-+extern int getgrnam_r (const char *__restrict __name,
- struct group *__restrict __resultbuf,
- char *__restrict __buffer, size_t __buflen,
- struct group **__restrict __result);
-@@ -187,7 +186,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int getgrouplist (__const char *__user, __gid_t __group,
-+extern int getgrouplist (const char *__user, __gid_t __group,
- __gid_t *__groups, int *__ngroups);
-
- #endif
-@@ -195,7 +194,7 @@
- #if defined __USE_BSD
-
- /* Set the group set for the current user to GROUPS (N of them). */
--extern int setgroups (size_t __n, __const __gid_t *__groups) __THROW;
-+extern int setgroups (size_t __n, const __gid_t *__groups) __THROW;
- libc_hidden_proto(setgroups)
-
- /* Initialize the group set for the current user
-@@ -206,7 +205,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int initgroups (__const char *__user, __gid_t __group);
-+extern int initgroups (const char *__user, __gid_t __group);
-
- #endif /* Use BSD. */
-
-diff -Nur uClibc-0.9.33.2/include/iconv.h uClibc-git/include/iconv.h
---- uClibc-0.9.33.2/include/iconv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/iconv.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ICONV_H
- #define _ICONV_H 1
-@@ -39,7 +38,7 @@
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
--extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
-+extern iconv_t iconv_open (const char *__tocode, const char *__fromcode);
-
- /* Convert at most *INBYTESLEFT bytes from *INBUF according to the
- code conversion algorithm specified by CD and place up to
-diff -Nur uClibc-0.9.33.2/include/ieee754.h uClibc-git/include/ieee754.h
---- uClibc-0.9.33.2/include/ieee754.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ieee754.h 2014-07-25 20:36:04.977325106 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _IEEE754_H
-
-diff -Nur uClibc-0.9.33.2/include/ifaddrs.h uClibc-git/include/ifaddrs.h
---- uClibc-0.9.33.2/include/ifaddrs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ifaddrs.h 2014-07-25 20:36:04.977325106 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _IFADDRS_H
- #define _IFADDRS_H 1
-diff -Nur uClibc-0.9.33.2/include/inttypes.h uClibc-git/include/inttypes.h
---- uClibc-0.9.33.2/include/inttypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/inttypes.h 2014-07-25 20:36:04.997325210 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99: 7.8 Format conversion of integer types <inttypes.h>
-@@ -304,21 +303,21 @@
- __THROW __attribute__ ((__const__));
-
- /* Like `strtol' but convert to `intmax_t'. */
--extern intmax_t strtoimax (__const char *__restrict __nptr,
-+extern intmax_t strtoimax (const char *__restrict __nptr,
- char **__restrict __endptr, int __base) __THROW;
-
- /* Like `strtoul' but convert to `uintmax_t'. */
--extern uintmax_t strtoumax (__const char *__restrict __nptr,
-+extern uintmax_t strtoumax (const char *__restrict __nptr,
- char ** __restrict __endptr, int __base) __THROW;
-
- #ifdef __UCLIBC_HAS_WCHAR__
- /* Like `wcstol' but convert to `intmax_t'. */
--extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
-+extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
- __gwchar_t **__restrict __endptr, int __base)
- __THROW;
-
- /* Like `wcstoul' but convert to `uintmax_t'. */
--extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
-+extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
- __gwchar_t ** __restrict __endptr, int __base)
- __THROW;
- #endif
-@@ -327,44 +326,44 @@
-
- # if __WORDSIZE == 64
-
--extern long int __strtol_internal (__const char *__restrict __nptr,
-+extern long int __strtol_internal (const char *__restrict __nptr,
- char **__restrict __endptr,
- int __base, int __group)
- __THROW __nonnull ((1)) __wur;
- /* Like `strtol' but convert to `intmax_t'. */
- __extern_inline intmax_t
--__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
-+__NTH (strtoimax (const char *__restrict nptr, char **__restrict endptr,
- int base))
- {
- return __strtol_internal (nptr, endptr, base, 0);
- }
-
--extern unsigned long int __strtoul_internal (__const char *
-+extern unsigned long int __strtoul_internal (const char *
- __restrict __nptr,
- char ** __restrict __endptr,
- int __base, int __group)
- __THROW __nonnull ((1)) __wur;
- /* Like `strtoul' but convert to `uintmax_t'. */
- __extern_inline uintmax_t
--__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
-+__NTH (strtoumax (const char *__restrict nptr, char **__restrict endptr,
- int base))
- {
- return __strtoul_internal (nptr, endptr, base, 0);
- }
-
--extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
-+extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr,
- __gwchar_t **__restrict __endptr,
- int __base, int __group)
- __THROW __nonnull ((1)) __wur;
- /* Like `wcstol' but convert to `intmax_t'. */
- __extern_inline intmax_t
--__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
-+__NTH (wcstoimax (const __gwchar_t *__restrict nptr,
- __gwchar_t **__restrict endptr, int base))
- {
- return __wcstol_internal (nptr, endptr, base, 0);
- }
-
--extern unsigned long int __wcstoul_internal (__const __gwchar_t *
-+extern unsigned long int __wcstoul_internal (const __gwchar_t *
- __restrict __nptr,
- __gwchar_t **
- __restrict __endptr,
-@@ -372,7 +371,7 @@
- __THROW __nonnull ((1)) __wur;
- /* Like `wcstoul' but convert to `uintmax_t'. */
- __extern_inline uintmax_t
--__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
-+__NTH (wcstoumax (const __gwchar_t *__restrict nptr,
- __gwchar_t **__restrict endptr, int base))
- {
- return __wcstoul_internal (nptr, endptr, base, 0);
-@@ -381,20 +380,20 @@
- # else /* __WORDSIZE == 32 */
-
- __extension__
--extern long long int __strtoll_internal (__const char *__restrict __nptr,
-+extern long long int __strtoll_internal (const char *__restrict __nptr,
- char **__restrict __endptr,
- int __base, int __group)
- __THROW __nonnull ((1)) __wur;
- /* Like `strtol' but convert to `intmax_t'. */
- __extern_inline intmax_t
--__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
-+__NTH (strtoimax (const char *__restrict nptr, char **__restrict endptr,
- int base))
- {
- return __strtoll_internal (nptr, endptr, base, 0);
- }
-
- __extension__
--extern unsigned long long int __strtoull_internal (__const char *
-+extern unsigned long long int __strtoull_internal (const char *
- __restrict __nptr,
- char **
- __restrict __endptr,
-@@ -403,21 +402,21 @@
- __THROW __nonnull ((1)) __wur;
- /* Like `strtoul' but convert to `uintmax_t'. */
- __extern_inline uintmax_t
--__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
-+__NTH (strtoumax (const char *__restrict nptr, char **__restrict endptr,
- int base))
- {
- return __strtoull_internal (nptr, endptr, base, 0);
- }
-
- __extension__
--extern long long int __wcstoll_internal (__const __gwchar_t *
-+extern long long int __wcstoll_internal (const __gwchar_t *
- __restrict __nptr,
- __gwchar_t **__restrict __endptr,
- int __base, int __group)
- __THROW __nonnull ((1)) __wur;
- /* Like `wcstol' but convert to `intmax_t'. */
- __extern_inline intmax_t
--__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
-+__NTH (wcstoimax (const __gwchar_t *__restrict nptr,
- __gwchar_t **__restrict endptr, int base))
- {
- return __wcstoll_internal (nptr, endptr, base, 0);
-@@ -425,7 +424,7 @@
-
-
- __extension__
--extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
-+extern unsigned long long int __wcstoull_internal (const __gwchar_t *
- __restrict __nptr,
- __gwchar_t **
- __restrict __endptr,
-@@ -434,7 +433,7 @@
- __THROW __nonnull ((1)) __wur;
- /* Like `wcstoul' but convert to `uintmax_t'. */
- __extern_inline uintmax_t
--__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
-+__NTH (wcstoumax (const __gwchar_t *__restrict nptr,
- __gwchar_t **__restrict endptr, int base))
- {
- return __wcstoull_internal (nptr, endptr, base, 0);
-diff -Nur uClibc-0.9.33.2/include/langinfo.h uClibc-git/include/langinfo.h
---- uClibc-0.9.33.2/include/langinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/langinfo.h 2014-07-25 20:36:04.997325210 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LANGINFO_H
- #define _LANGINFO_H 1
-diff -Nur uClibc-0.9.33.2/include/libc-internal.h uClibc-git/include/libc-internal.h
---- uClibc-0.9.33.2/include/libc-internal.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/libc-internal.h 2014-07-25 20:36:04.997325210 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LIBC_INTERNAL_H
- #define _LIBC_INTERNAL_H 1
-@@ -29,6 +28,9 @@
-
- #ifdef __UCLIBC_HAS_TLS__
- # define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec")))
-+#else
-+# define attribute_tls_model_ie
-+# define __thread
- #endif
-
- /* Pull in things like __attribute_used__ */
-@@ -44,12 +46,12 @@
- # include <stddef.h>
-
- /* sources are built w/ _GNU_SOURCE, this gets undefined */
--#ifdef __USE_GNU
--extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen);
--libc_hidden_proto(__xpg_strerror_r)
--#else
-+#if defined __USE_XOPEN2K && !defined __USE_GNU
- extern char *__glibc_strerror_r (int __errnum, char *__buf, size_t __buflen);
- libc_hidden_proto(__glibc_strerror_r)
-+#else
-+extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen);
-+libc_hidden_proto(__xpg_strerror_r)
- #endif
-
- /* #include <pthread.h> */
-@@ -70,6 +72,10 @@
- libc_hidden_proto(__chk_fail)
- # endif
-
-+# ifdef __UCLIBC_HAS_SSP__
-+extern void __stack_chk_fail(void) attribute_noreturn __cold;
-+# endif
-+
- # endif /* IS_IN_libc */
-
- #endif /* __ASSEMBLER__ */
-diff -Nur uClibc-0.9.33.2/include/libc-symbols.h uClibc-git/include/libc-symbols.h
---- uClibc-0.9.33.2/include/libc-symbols.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/libc-symbols.h 2014-07-25 20:36:04.997325210 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LIBC_SYMBOLS_H
- #define _LIBC_SYMBOLS_H 1
-@@ -196,12 +195,12 @@
- # define _strong_alias_untyped(name, aliasname) \
- extern __typeof (aliasname) aliasname __attribute__ ((alias (#name)));
-
-+# ifdef HAVE_WEAK_SYMBOLS
-+
- /* This comes between the return type and function name in
- a function definition to make that definition weak. */
--# define weak_function __attribute__ ((weak))
--# define weak_const_function __attribute__ ((weak, __const__))
--
--# ifdef HAVE_WEAK_SYMBOLS
-+# define weak_function __attribute__ ((weak))
-+# define weak_const_function __attribute__ ((weak, __const__))
-
- /* Define ALIASNAME as a weak alias for NAME.
- If weak aliases are not available, this defines a strong alias. */
-@@ -215,6 +214,9 @@
-
- # else
-
-+# define weak_function /* empty */
-+# define weak_const_function __attribute__ ((__const__))
-+
- # define weak_alias(name, aliasname) strong_alias(name, aliasname)
- # define weak_extern(symbol) /* Nothing. */
-
-diff -Nur uClibc-0.9.33.2/include/libgen.h uClibc-git/include/libgen.h
---- uClibc-0.9.33.2/include/libgen.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/libgen.h 2014-07-25 20:36:04.997325210 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LIBGEN_H
- #define _LIBGEN_H 1
-diff -Nur uClibc-0.9.33.2/include/libintl.h uClibc-git/include/libintl.h
---- uClibc-0.9.33.2/include/libintl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/libintl.h 2014-07-25 20:36:04.997325210 +0200
-@@ -14,15 +14,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LIBINTL_H
- #define _LIBINTL_H 1
-
- #include <features.h>
-
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+
- /* We define an additional symbol to signal that we use the GNU
- implementation of gettext. */
- #define __USE_GNU_GETTEXT 1
-@@ -37,46 +38,46 @@
- /* Look up MSGID in the current default message catalog for the current
- LC_MESSAGES locale. If not found, returns MSGID itself (the default
- text). */
--extern char *gettext (__const char *__msgid)
-+extern char *gettext (const char *__msgid)
- __THROW __attribute_format_arg__ (1);
-
- /* Look up MSGID in the DOMAINNAME message catalog for the current
- LC_MESSAGES locale. */
--extern char *dgettext (__const char *__domainname, __const char *__msgid)
-+extern char *dgettext (const char *__domainname, const char *__msgid)
- __THROW __attribute_format_arg__ (2);
- #if 0 /* uClibc: disabled */
--extern char *__dgettext (__const char *__domainname, __const char *__msgid)
-+extern char *__dgettext (const char *__domainname, const char *__msgid)
- __THROW __attribute_format_arg__ (2);
- #endif
-
- /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
- locale. */
--extern char *dcgettext (__const char *__domainname,
-- __const char *__msgid, int __category)
-+extern char *dcgettext (const char *__domainname,
-+ const char *__msgid, int __category)
- __THROW __attribute_format_arg__ (2);
- #if 0 /* uClibc: disabled */
--extern char *__dcgettext (__const char *__domainname,
-- __const char *__msgid, int __category)
-+extern char *__dcgettext (const char *__domainname,
-+ const char *__msgid, int __category)
- __THROW __attribute_format_arg__ (2);
- #endif
-
-
- /* Similar to `gettext' but select the plural form corresponding to the
- number N. */
--extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
-+extern char *ngettext (const char *__msgid1, const char *__msgid2,
- unsigned long int __n)
- __THROW __attribute_format_arg__ (1) __attribute_format_arg__ (2);
-
- /* Similar to `dgettext' but select the plural form corresponding to the
- number N. */
--extern char *dngettext (__const char *__domainname, __const char *__msgid1,
-- __const char *__msgid2, unsigned long int __n)
-+extern char *dngettext (const char *__domainname, const char *__msgid1,
-+ const char *__msgid2, unsigned long int __n)
- __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
-
- /* Similar to `dcgettext' but select the plural form corresponding to the
- number N. */
--extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
-- __const char *__msgid2, unsigned long int __n,
-+extern char *dcngettext (const char *__domainname, const char *__msgid1,
-+ const char *__msgid2, unsigned long int __n,
- int __category)
- __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
-
-@@ -84,17 +85,17 @@
- /* Set the current default message catalog to DOMAINNAME.
- If DOMAINNAME is null, return the current default.
- If DOMAINNAME is "", reset to the default of "messages". */
--extern char *textdomain (__const char *__domainname) __THROW;
-+extern char *textdomain (const char *__domainname) __THROW;
-
- /* Specify that the DOMAINNAME message catalog will be found
- in DIRNAME rather than in the system locale data base. */
--extern char *bindtextdomain (__const char *__domainname,
-- __const char *__dirname) __THROW;
-+extern char *bindtextdomain (const char *__domainname,
-+ const char *__dirname) __THROW;
-
- /* Specify the character encoding in which the messages from the
- DOMAINNAME message catalog will be returned. */
--extern char *bind_textdomain_codeset (__const char *__domainname,
-- __const char *__codeset) __THROW;
-+extern char *bind_textdomain_codeset (const char *__domainname,
-+ const char *__codeset) __THROW;
-
-
- /* Optimized version of the function above. */
-@@ -125,4 +126,15 @@
-
- __END_DECLS
-
-+#else
-+
-+#define gettext(msgid) ((const char *) (msgid))
-+
-+#endif /* __UCLIBC_HAS_GETTEXT_AWARENESS__ */
-+
-+#ifdef _LIBC
-+# define _(x) gettext(x)
-+# define N_(x) x
-+#endif
-+
- #endif /* libintl.h */
-diff -Nur uClibc-0.9.33.2/include/limits.h uClibc-git/include/limits.h
---- uClibc-0.9.33.2/include/limits.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/limits.h 2014-07-25 20:36:04.997325210 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
-diff -Nur uClibc-0.9.33.2/include/link.h uClibc-git/include/link.h
---- uClibc-0.9.33.2/include/link.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/link.h 2014-07-25 20:36:04.997325210 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINK_H
- #define _LINK_H 1
-@@ -110,7 +109,7 @@
- char *l_name; /* Absolute file name object was found in. */
- ElfW(Dyn) *l_ld; /* Dynamic section of the shared object. */
- struct link_map *l_next, *l_prev; /* Chain of loaded objects. */
--
-+#ifdef _LIBC
- #if defined(USE_TLS) && USE_TLS
- /* Thread-local storage related info. */
-
-@@ -134,6 +133,7 @@
- /* Nonzero if _dl_init_static_tls should be called for this module */
- unsigned int l_need_tls_init:1;
- #endif
-+#endif
- };
-
- #ifdef __USE_GNU
-diff -Nur uClibc-0.9.33.2/include/locale.h uClibc-git/include/locale.h
---- uClibc-0.9.33.2/include/locale.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/locale.h 2014-07-25 20:36:04.997325210 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.11 Localization <locale.h>
-@@ -124,7 +123,7 @@
-
-
- /* Set and/or return the current locale. */
--extern char *setlocale (int __category, __const char *__locale) __THROW;
-+extern char *setlocale (int __category, const char *__locale) __THROW;
-
- /* Return the numeric/monetary information for the current locale. */
- extern struct lconv *localeconv (void) __THROW;
-@@ -133,7 +132,7 @@
- __END_NAMESPACE_STD
-
-
--#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_LOCALE__
-+#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
- /* The concept of one static locale per category is not very well
- thought out. Many applications will need to process its data using
- information from several different locales. Another application is
-@@ -145,19 +144,14 @@
- Attention: all these functions are *not* standardized in any form.
- This is a proof-of-concept implementation. */
-
--#ifdef __UCLIBC_HAS_XLOCALE__
- /* Get locale datatype definition. */
- # include <xlocale.h>
--#endif
--
--/* POSIX 2008 makes locale_t official. */
--typedef __locale_t locale_t;
-
- /* Return a reference to a data structure representing a set of locale
- datasets. Unlike for the CATEGORY parameter for `setlocale' the
- CATEGORY_MASK parameter here uses a single bit for each category,
- made by OR'ing together LC_*_MASK bits above. */
--extern __locale_t newlocale (int __category_mask, __const char *__locale,
-+extern __locale_t newlocale (int __category_mask, const char *__locale,
- __locale_t __base) __THROW;
- libc_hidden_proto(newlocale)
-
-diff -Nur uClibc-0.9.33.2/include/malloc.h uClibc-git/include/malloc.h
---- uClibc-0.9.33.2/include/malloc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/malloc.h 2014-07-25 20:36:04.997325210 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MALLOC_H
- #define _MALLOC_H 1
-@@ -124,9 +123,12 @@
-
- /* Allocate SIZE bytes allocated to ALIGNMENT bytes. */
- extern __malloc_ptr_t memalign __MALLOC_P ((size_t __alignment, size_t __size));
-+libc_hidden_proto(memalign)
-
-+#ifdef __UCLIBC_SUSV2_LEGACY__
- /* Allocate SIZE bytes on a page boundary. */
- extern __malloc_ptr_t valloc __MALLOC_P ((size_t __size)) __attribute_malloc__;
-+#endif
-
- #ifdef __MALLOC_STANDARD__
-
-diff -Nur uClibc-0.9.33.2/include/math.h uClibc-git/include/math.h
---- uClibc-0.9.33.2/include/math.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/math.h 2014-07-25 20:36:04.997325210 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.12 Mathematics <math.h>
-diff -Nur uClibc-0.9.33.2/include/memory.h uClibc-git/include/memory.h
---- uClibc-0.9.33.2/include/memory.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/memory.h 2014-07-25 20:36:04.997325210 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * SVID
-diff -Nur uClibc-0.9.33.2/include/mntent.h uClibc-git/include/mntent.h
---- uClibc-0.9.33.2/include/mntent.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/mntent.h 2014-07-25 20:36:04.997325210 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MNTENT_H
- #define _MNTENT_H 1
-@@ -64,7 +63,7 @@
-
- /* Prepare to begin reading and/or writing mount table entries from the
- beginning of FILE. MODE is as for `fopen'. */
--extern FILE *setmntent (__const char *__file, __const char *__mode) __THROW;
-+extern FILE *setmntent (const char *__file, const char *__mode) __THROW;
- libc_hidden_proto(setmntent)
-
- /* Read one mount table entry from STREAM. Returns a pointer to storage
-@@ -84,7 +83,7 @@
- /* Write the mount table entry described by MNT to STREAM.
- Return zero on success, nonzero on failure. */
- extern int addmntent (FILE *__restrict __stream,
-- __const struct mntent *__restrict __mnt) __THROW;
-+ const struct mntent *__restrict __mnt) __THROW;
-
- /* Close a stream opened with `setmntent'. */
- extern int endmntent (FILE *__stream) __THROW;
-@@ -92,8 +91,8 @@
-
- /* Search MNT->mnt_opts for an option matching OPT.
- Returns the address of the substring, or null if none found. */
--extern char *hasmntopt (__const struct mntent *__mnt,
-- __const char *__opt) __THROW;
-+extern char *hasmntopt (const struct mntent *__mnt,
-+ const char *__opt) __THROW;
-
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/mqueue.h uClibc-git/include/mqueue.h
---- uClibc-0.9.33.2/include/mqueue.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/mqueue.h 2014-07-25 20:36:04.997325210 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MQUEUE_H
- #define _MQUEUE_H 1
-diff -Nur uClibc-0.9.33.2/include/net/ethernet.h uClibc-git/include/net/ethernet.h
---- uClibc-0.9.33.2/include/net/ethernet.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/ethernet.h 2014-07-25 20:36:05.009325274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Based on the FreeBSD version of this file. Curiously, that file
- lacks a copyright in the header. */
-diff -Nur uClibc-0.9.33.2/include/net/if_arp.h uClibc-git/include/net/if_arp.h
---- uClibc-0.9.33.2/include/net/if_arp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/if_arp.h 2014-07-25 20:36:05.009325274 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Based on the 4.4BSD and Linux version of this file. */
-
-diff -Nur uClibc-0.9.33.2/include/net/if.h uClibc-git/include/net/if.h
---- uClibc-0.9.33.2/include/net/if.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/if.h 2014-07-25 20:36:05.009325274 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NET_IF_H
- #define _NET_IF_H 1
-@@ -191,7 +190,7 @@
- __BEGIN_DECLS
-
- /* Convert an interface name to an index, and vice versa. */
--extern unsigned int if_nametoindex (__const char *__ifname) __THROW;
-+extern unsigned int if_nametoindex (const char *__ifname) __THROW;
- libc_hidden_proto(if_nametoindex)
- extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __THROW;
-
-diff -Nur uClibc-0.9.33.2/include/net/if_packet.h uClibc-git/include/net/if_packet.h
---- uClibc-0.9.33.2/include/net/if_packet.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/if_packet.h 2014-07-25 20:36:05.009325274 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __IF_PACKET_H
- #define __IF_PACKET_H
-diff -Nur uClibc-0.9.33.2/include/net/if_shaper.h uClibc-git/include/net/if_shaper.h
---- uClibc-0.9.33.2/include/net/if_shaper.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/if_shaper.h 2014-07-25 20:36:05.009325274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NET_IF_SHAPER_H
- #define _NET_IF_SHAPER_H 1
-diff -Nur uClibc-0.9.33.2/include/net/if_slip.h uClibc-git/include/net/if_slip.h
---- uClibc-0.9.33.2/include/net/if_slip.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/if_slip.h 2014-07-25 20:36:05.009325274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NET_IF_SLIP_H
- #define _NET_IF_SLIP_H 1
-diff -Nur uClibc-0.9.33.2/include/net/route.h uClibc-git/include/net/route.h
---- uClibc-0.9.33.2/include/net/route.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/net/route.h 2014-07-25 20:36:05.009325274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Based on the 4.4BSD and Linux version of this file. */
-
-diff -Nur uClibc-0.9.33.2/include/netax25/ax25.h uClibc-git/include/netax25/ax25.h
---- uClibc-0.9.33.2/include/netax25/ax25.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netax25/ax25.h 2014-07-25 20:36:05.025325357 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETAX25_AX25_H
- #define _NETAX25_AX25_H 1
-diff -Nur uClibc-0.9.33.2/include/netdb.h uClibc-git/include/netdb.h
---- uClibc-0.9.33.2/include/netdb.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netdb.h 2014-07-25 20:36:05.025325357 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1996-2002, 2003, 2004, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* All data returned by the network data base library are supplied in
- host order and returned in network order (suitable for use in
-@@ -59,7 +58,6 @@
-
- /* Function to get address of global `h_errno' variable. */
- extern int *__h_errno_location (void) __THROW __attribute__ ((__const__));
--libc_hidden_proto(__h_errno_location)
-
- /* Macros for accessing h_errno from inside libc. */
- #ifdef _LIBC
-@@ -88,8 +86,6 @@
- #endif /* _LIBC */
-
- /* Possible values left in `h_errno'. */
--#define NETDB_INTERNAL -1 /* See errno. */
--#define NETDB_SUCCESS 0 /* No problem. */
- #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */
- #define TRY_AGAIN 2 /* Non-Authoritative Host not found,
- or SERVERFAIL. */
-@@ -97,7 +93,11 @@
- NOTIMP. */
- #define NO_DATA 4 /* Valid name, no data record of requested
- type. */
--#define NO_ADDRESS NO_DATA /* No address, look for MX record. */
-+#if defined __USE_MISC || defined __USE_GNU
-+# define NETDB_INTERNAL -1 /* See errno. */
-+# define NETDB_SUCCESS 0 /* No problem. */
-+# define NO_ADDRESS NO_DATA /* No address, look for MX record. */
-+#endif
-
- #ifdef __USE_XOPEN2K
- /* Highest reserved Internet port number. */
-@@ -109,13 +109,15 @@
- # define SCOPE_DELIMITER '%'
- #endif
-
-+#if defined __USE_MISC || defined __USE_GNU
- /* Print error indicated by `h_errno' variable on standard error. STR
- if non-null is printed before the error string. */
--extern void herror (__const char *__str) __THROW;
-+extern void herror (const char *__str) __THROW;
- libc_hidden_proto(herror)
-
- /* Return string associated with error ERR_NUM. */
--extern __const char *hstrerror (int __err_num) __THROW;
-+extern const char *hstrerror (int __err_num) __THROW;
-+#endif
-
-
- /* Description of data base entry for a single host. */
-@@ -126,7 +128,9 @@
- int h_addrtype; /* Host address type. */
- int h_length; /* Length of address. */
- char **h_addr_list; /* List of addresses from name server. */
--#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
-+#if defined __USE_MISC || defined __USE_GNU
-+# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/
-+#endif
- };
-
- /* Open host data base files and mark them as staying open even after
-@@ -154,7 +158,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len,
-+extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len,
- int __type);
- libc_hidden_proto(gethostbyaddr)
-
-@@ -162,7 +166,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct hostent *gethostbyname (__const char *__name);
-+extern struct hostent *gethostbyname (const char *__name);
- libc_hidden_proto(gethostbyname)
-
- #ifdef __USE_MISC
-@@ -174,7 +178,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern struct hostent *gethostbyname2 (__const char *__name, int __af);
-+extern struct hostent *gethostbyname2 (const char *__name, int __af);
- libc_hidden_proto(gethostbyname2)
-
- /* Reentrant versions of the functions above. The additional
-@@ -193,7 +197,7 @@
- int *__restrict __h_errnop);
- libc_hidden_proto(gethostent_r)
-
--extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len,
-+extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len,
- int __type,
- struct hostent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
-@@ -201,14 +205,14 @@
- int *__restrict __h_errnop);
- libc_hidden_proto(gethostbyaddr_r)
-
--extern int gethostbyname_r (__const char *__restrict __name,
-+extern int gethostbyname_r (const char *__restrict __name,
- struct hostent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct hostent **__restrict __result,
- int *__restrict __h_errnop);
- libc_hidden_proto(gethostbyname_r)
-
--extern int gethostbyname2_r (__const char *__restrict __name, int __af,
-+extern int gethostbyname2_r (const char *__restrict __name, int __af,
- struct hostent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct hostent **__restrict __result,
-@@ -250,7 +254,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct netent *getnetbyname (__const char *__name);
-+extern struct netent *getnetbyname (const char *__name);
-
- #ifdef __USE_MISC
- /* Reentrant versions of the functions above. The additional
-@@ -268,13 +272,15 @@
- struct netent **__restrict __result,
- int *__restrict __h_errnop);
- libc_hidden_proto(getnetent_r)
-+
- extern int getnetbyaddr_r (uint32_t __net, int __type,
- struct netent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct netent **__restrict __result,
- int *__restrict __h_errnop);
- libc_hidden_proto(getnetbyaddr_r)
--extern int getnetbyname_r (__const char *__restrict __name,
-+
-+extern int getnetbyname_r (const char *__restrict __name,
- struct netent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct netent **__restrict __result,
-@@ -319,15 +325,15 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct servent *getservbyname (__const char *__name,
-- __const char *__proto);
-+extern struct servent *getservbyname (const char *__name,
-+ const char *__proto);
-
- /* Return entry from service data base which matches port PORT and
- protocol PROTO.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct servent *getservbyport (int __port, __const char *__proto);
-+extern struct servent *getservbyport (int __port, const char *__proto);
- libc_hidden_proto(getservbyport)
-
-
-@@ -344,14 +350,14 @@
- struct servent **__restrict __result);
- libc_hidden_proto(getservent_r)
-
--extern int getservbyname_r (__const char *__restrict __name,
-- __const char *__restrict __proto,
-+extern int getservbyname_r (const char *__restrict __name,
-+ const char *__restrict __proto,
- struct servent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct servent **__restrict __result);
- libc_hidden_proto(getservbyname_r)
-
--extern int getservbyport_r (int __port, __const char *__restrict __proto,
-+extern int getservbyport_r (int __port, const char *__restrict __proto,
- struct servent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct servent **__restrict __result);
-@@ -393,7 +399,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct protoent *getprotobyname (__const char *__name);
-+extern struct protoent *getprotobyname (const char *__name);
-
- /* Return entry from protocol data base which number is PROTO.
-
-@@ -415,7 +421,7 @@
- struct protoent **__restrict __result);
- libc_hidden_proto(getprotoent_r)
-
--extern int getprotobyname_r (__const char *__restrict __name,
-+extern int getprotobyname_r (const char *__restrict __name,
- struct protoent *__restrict __result_buf,
- char *__restrict __buf, size_t __buflen,
- struct protoent **__restrict __result);
-@@ -435,7 +441,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int setnetgrent (__const char *__netgroup);
-+extern int setnetgrent (const char *__netgroup);
-
- /* Free all space allocated by previous `setnetgrent' call.
-
-@@ -463,8 +469,8 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int innetgr (__const char *__netgroup, __const char *__host,
-- __const char *__user, __const char *domain);
-+extern int innetgr (const char *__netgroup, const char *__host,
-+ const char *__user, const char *__domain);
-
- /* Reentrant version of `getnetgrent' where result is placed in BUFFER.
-
-@@ -479,12 +485,12 @@
- #endif /* UCLIBC_HAS_NETGROUP */
- #endif /* misc */
-
--
-+#ifdef __UCLIBC__
- /* ruserpass - remote password check.
- This function also exists in glibc but is undocumented */
- extern int ruserpass(const char *host, const char **aname, const char **apass);
- libc_hidden_proto(ruserpass)
--
-+#endif
-
- #ifdef __USE_BSD
- /* Call `rshd' at port RPORT on remote machine *AHOST to execute CMD.
-@@ -499,9 +505,9 @@
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
- extern int rcmd (char **__restrict __ahost, unsigned short int __rport,
-- __const char *__restrict __locuser,
-- __const char *__restrict __remuser,
-- __const char *__restrict __cmd, int *__restrict __fd2p);
-+ const char *__restrict __locuser,
-+ const char *__restrict __remuser,
-+ const char *__restrict __cmd, int *__restrict __fd2p);
-
- #if 0
- /* FIXME */
-@@ -513,9 +519,9 @@
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
- extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport,
-- __const char *__restrict __locuser,
-- __const char *__restrict __remuser,
-- __const char *__restrict __cmd, int *__restrict __fd2p,
-+ const char *__restrict __locuser,
-+ const char *__restrict __remuser,
-+ const char *__restrict __cmd, int *__restrict __fd2p,
- sa_family_t __af);
- #endif
-
-@@ -530,9 +536,9 @@
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
- extern int rexec (char **__restrict __ahost, int __rport,
-- __const char *__restrict __name,
-- __const char *__restrict __pass,
-- __const char *__restrict __cmd, int *__restrict __fd2p);
-+ const char *__restrict __name,
-+ const char *__restrict __pass,
-+ const char *__restrict __cmd, int *__restrict __fd2p);
-
- /* This is the equivalent function where the protocol can be selected
- and which therefore can be used for IPv6.
-@@ -542,9 +548,9 @@
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
- extern int rexec_af (char **__restrict __ahost, int __rport,
-- __const char *__restrict __name,
-- __const char *__restrict __pass,
-- __const char *__restrict __cmd, int *__restrict __fd2p,
-+ const char *__restrict __name,
-+ const char *__restrict __pass,
-+ const char *__restrict __cmd, int *__restrict __fd2p,
- sa_family_t __af);
- libc_hidden_proto(rexec_af)
-
-@@ -556,8 +562,8 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int ruserok (__const char *__rhost, int __suser,
-- __const char *__remuser, __const char *__locuser);
-+extern int ruserok (const char *__rhost, int __suser,
-+ const char *__remuser, const char *__locuser);
-
- #if 0
- /* FIXME */
-@@ -568,8 +574,8 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int ruserok_af (__const char *__rhost, int __suser,
-- __const char *__remuser, __const char *__locuser,
-+extern int ruserok_af (const char *__rhost, int __suser,
-+ const char *__remuser, const char *__locuser,
- sa_family_t __af);
- #endif
-
-@@ -638,15 +644,15 @@
- # define EAI_NONAME -2 /* NAME or SERVICE is unknown. */
- # define EAI_AGAIN -3 /* Temporary failure in name resolution. */
- # define EAI_FAIL -4 /* Non-recoverable failure in name res. */
--# define EAI_NODATA -5 /* No address associated with NAME. */
- # define EAI_FAMILY -6 /* `ai_family' not supported. */
- # define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */
- # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */
--# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */
- # define EAI_MEMORY -10 /* Memory allocation failure. */
- # define EAI_SYSTEM -11 /* System error returned in `errno'. */
- # define EAI_OVERFLOW -12 /* Argument buffer overflow. */
- # ifdef __USE_GNU
-+# define EAI_NODATA -5 /* No address associated with NAME. */
-+# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */
- # define EAI_INPROGRESS -100 /* Processing request in progress. */
- # define EAI_CANCELED -101 /* Request canceled. */
- # define EAI_NOTCANCELED -102 /* Request not canceled. */
-@@ -655,8 +661,10 @@
- # define EAI_IDN_ENCODE -105 /* IDN encoding failed. */
- # endif
-
--# define NI_MAXHOST 1025
--# define NI_MAXSERV 32
-+# ifdef __USE_MISC
-+# define NI_MAXHOST 1025
-+# define NI_MAXSERV 32
-+# endif
-
- # define NI_NUMERICHOST 1 /* Don't try to look up hostname. */
- # define NI_NUMERICSERV 2 /* Don't convert port number to name. */
-@@ -676,9 +684,9 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int getaddrinfo (__const char *__restrict __name,
-- __const char *__restrict __service,
-- __const struct addrinfo *__restrict __req,
-+extern int getaddrinfo (const char *__restrict __name,
-+ const char *__restrict __service,
-+ const struct addrinfo *__restrict __req,
- struct addrinfo **__restrict __pai);
- libc_hidden_proto(getaddrinfo)
-
-@@ -687,13 +695,13 @@
- libc_hidden_proto(freeaddrinfo)
-
- /* Convert error return from getaddrinfo() to a string. */
--extern __const char *gai_strerror (int __ecode) __THROW;
-+extern const char *gai_strerror (int __ecode) __THROW;
-
- /* Translate a socket address to a location and service name.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int getnameinfo (__const struct sockaddr *__restrict __sa,
-+extern int getnameinfo (const struct sockaddr *__restrict __sa,
- socklen_t __salen, char *__restrict __host,
- socklen_t __hostlen, char *__restrict __serv,
- socklen_t __servlen, unsigned int __flags);
-diff -Nur uClibc-0.9.33.2/include/neteconet/ec.h uClibc-git/include/neteconet/ec.h
---- uClibc-0.9.33.2/include/neteconet/ec.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/neteconet/ec.h 2014-07-25 20:36:05.041325441 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETECONET_EC_H
- #define _NETECONET_EC_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/ether.h uClibc-git/include/netinet/ether.h
---- uClibc-0.9.33.2/include/netinet/ether.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/ether.h 2014-07-25 20:36:05.057325525 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_ETHER_H
- #define _NETINET_ETHER_H 1
-@@ -34,27 +33,27 @@
- #if defined __UCLIBC_HAS_SOCKET__ || defined __UCLIBC_HAS_IPV4__ || \
- defined __UCLIBC_HAS_IPV6__
- /* Convert 48 bit Ethernet ADDRess to ASCII. */
--extern char *ether_ntoa (__const struct ether_addr *__addr) __THROW;
--extern char *ether_ntoa_r (__const struct ether_addr *__addr, char *__buf)
-+extern char *ether_ntoa (const struct ether_addr *__addr) __THROW;
-+extern char *ether_ntoa_r (const struct ether_addr *__addr, char *__buf)
- __THROW;
- libc_hidden_proto(ether_ntoa_r)
-
- /* Convert ASCII string S to 48 bit Ethernet address. */
--extern struct ether_addr *ether_aton (__const char *__asc) __THROW;
--extern struct ether_addr *ether_aton_r (__const char *__asc,
-+extern struct ether_addr *ether_aton (const char *__asc) __THROW;
-+extern struct ether_addr *ether_aton_r (const char *__asc,
- struct ether_addr *__addr) __THROW;
- libc_hidden_proto(ether_aton_r)
-
- /* Map 48 bit Ethernet number ADDR to HOSTNAME. */
--extern int ether_ntohost (char *__hostname, __const struct ether_addr *__addr)
-+extern int ether_ntohost (char *__hostname, const struct ether_addr *__addr)
- __THROW;
-
- /* Map HOSTNAME to 48 bit Ethernet address. */
--extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
-+extern int ether_hostton (const char *__hostname, struct ether_addr *__addr)
- __THROW;
-
- /* Scan LINE and set ADDR and HOSTNAME. */
--extern int ether_line (__const char *__line, struct ether_addr *__addr,
-+extern int ether_line (const char *__line, struct ether_addr *__addr,
- char *__hostname) __THROW;
- #endif
-
-diff -Nur uClibc-0.9.33.2/include/netinet/icmp6.h uClibc-git/include/netinet/icmp6.h
---- uClibc-0.9.33.2/include/netinet/icmp6.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/icmp6.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_ICMP6_H
- #define _NETINET_ICMP6_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/if_ether.h uClibc-git/include/netinet/if_ether.h
---- uClibc-0.9.33.2/include/netinet/if_ether.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/if_ether.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __NETINET_IF_ETHER_H
-
-diff -Nur uClibc-0.9.33.2/include/netinet/if_fddi.h uClibc-git/include/netinet/if_fddi.h
---- uClibc-0.9.33.2/include/netinet/if_fddi.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/if_fddi.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_IF_FDDI_H
- #define _NETINET_IF_FDDI_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/if_tr.h uClibc-git/include/netinet/if_tr.h
---- uClibc-0.9.33.2/include/netinet/if_tr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/if_tr.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_IF_TR_H
- #define _NETINET_IF_TR_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/igmp.h uClibc-git/include/netinet/igmp.h
---- uClibc-0.9.33.2/include/netinet/igmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/igmp.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_IGMP_H
- #define _NETINET_IGMP_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/in.h uClibc-git/include/netinet/in.h
---- uClibc-0.9.33.2/include/netinet/in.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/in.h 2014-07-25 20:36:05.057325525 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_IN_H
- #define _NETINET_IN_H 1
-@@ -415,43 +414,43 @@
-
- #if defined __UCLIBC_HAS_IPV6__ || !defined __UCLIBC_STRICT_HEADERS__
- #define IN6_IS_ADDR_UNSPECIFIED(a) \
-- (((__const uint32_t *) (a))[0] == 0 \
-- && ((__const uint32_t *) (a))[1] == 0 \
-- && ((__const uint32_t *) (a))[2] == 0 \
-- && ((__const uint32_t *) (a))[3] == 0)
-+ (((const uint32_t *) (a))[0] == 0 \
-+ && ((const uint32_t *) (a))[1] == 0 \
-+ && ((const uint32_t *) (a))[2] == 0 \
-+ && ((const uint32_t *) (a))[3] == 0)
-
- #define IN6_IS_ADDR_LOOPBACK(a) \
-- (((__const uint32_t *) (a))[0] == 0 \
-- && ((__const uint32_t *) (a))[1] == 0 \
-- && ((__const uint32_t *) (a))[2] == 0 \
-- && ((__const uint32_t *) (a))[3] == htonl (1))
-+ (((const uint32_t *) (a))[0] == 0 \
-+ && ((const uint32_t *) (a))[1] == 0 \
-+ && ((const uint32_t *) (a))[2] == 0 \
-+ && ((const uint32_t *) (a))[3] == htonl (1))
-
--#define IN6_IS_ADDR_MULTICAST(a) (((__const uint8_t *) (a))[0] == 0xff)
-+#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)
-
- #define IN6_IS_ADDR_LINKLOCAL(a) \
-- ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
-+ ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
- == htonl (0xfe800000))
-
- #define IN6_IS_ADDR_SITELOCAL(a) \
-- ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
-+ ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
- == htonl (0xfec00000))
-
- #define IN6_IS_ADDR_V4MAPPED(a) \
-- ((((__const uint32_t *) (a))[0] == 0) \
-- && (((__const uint32_t *) (a))[1] == 0) \
-- && (((__const uint32_t *) (a))[2] == htonl (0xffff)))
-+ ((((const uint32_t *) (a))[0] == 0) \
-+ && (((const uint32_t *) (a))[1] == 0) \
-+ && (((const uint32_t *) (a))[2] == htonl (0xffff)))
-
- #define IN6_IS_ADDR_V4COMPAT(a) \
-- ((((__const uint32_t *) (a))[0] == 0) \
-- && (((__const uint32_t *) (a))[1] == 0) \
-- && (((__const uint32_t *) (a))[2] == 0) \
-- && (ntohl (((__const uint32_t *) (a))[3]) > 1))
-+ ((((const uint32_t *) (a))[0] == 0) \
-+ && (((const uint32_t *) (a))[1] == 0) \
-+ && (((const uint32_t *) (a))[2] == 0) \
-+ && (ntohl (((const uint32_t *) (a))[3]) > 1))
-
- #define IN6_ARE_ADDR_EQUAL(a,b) \
-- ((((__const uint32_t *) (a))[0] == ((__const uint32_t *) (b))[0]) \
-- && (((__const uint32_t *) (a))[1] == ((__const uint32_t *) (b))[1]) \
-- && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \
-- && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3]))
-+ ((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0]) \
-+ && (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1]) \
-+ && (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2]) \
-+ && (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3]))
- #endif
-
- #if defined __USE_MISC || defined __USE_GNU
-@@ -470,23 +469,23 @@
- #if defined __UCLIBC_HAS_IPV6__ || !defined __UCLIBC_STRICT_HEADERS__
- #define IN6_IS_ADDR_MC_NODELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
-- && ((((__const uint8_t *) (a))[1] & 0xf) == 0x1))
-+ && ((((const uint8_t *) (a))[1] & 0xf) == 0x1))
-
- #define IN6_IS_ADDR_MC_LINKLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
-- && ((((__const uint8_t *) (a))[1] & 0xf) == 0x2))
-+ && ((((const uint8_t *) (a))[1] & 0xf) == 0x2))
-
- #define IN6_IS_ADDR_MC_SITELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
-- && ((((__const uint8_t *) (a))[1] & 0xf) == 0x5))
-+ && ((((const uint8_t *) (a))[1] & 0xf) == 0x5))
-
- #define IN6_IS_ADDR_MC_ORGLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
-- && ((((__const uint8_t *) (a))[1] & 0xf) == 0x8))
-+ && ((((const uint8_t *) (a))[1] & 0xf) == 0x8))
-
- #define IN6_IS_ADDR_MC_GLOBAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
-- && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe))
-+ && ((((const uint8_t *) (a))[1] & 0xf) == 0xe))
- #endif
-
-
-@@ -514,15 +513,15 @@
- extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
- int __type) __THROW __attribute_deprecated__;
- extern int inet6_option_append (struct cmsghdr *__cmsg,
-- __const uint8_t *__typep, int __multx,
-+ const uint8_t *__typep, int __multx,
- int __plusy) __THROW __attribute_deprecated__;
- extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
- int __multx, int __plusy)
- __THROW __attribute_deprecated__;
--extern int inet6_option_next (__const struct cmsghdr *__cmsg,
-+extern int inet6_option_next (const struct cmsghdr *__cmsg,
- uint8_t **__tptrp)
- __THROW __attribute_deprecated__;
--extern int inet6_option_find (__const struct cmsghdr *__cmsg,
-+extern int inet6_option_find (const struct cmsghdr *__cmsg,
- uint8_t **__tptrp, int __type)
- __THROW __attribute_deprecated__;
-
-@@ -550,10 +549,10 @@
- extern socklen_t inet6_rth_space (int __type, int __segments) __THROW;
- extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,
- int __segments) __THROW;
--extern int inet6_rth_add (void *__bp, __const struct in6_addr *__addr) __THROW;
--extern int inet6_rth_reverse (__const void *__in, void *__out) __THROW;
--extern int inet6_rth_segments (__const void *__bp) __THROW;
--extern struct in6_addr *inet6_rth_getaddr (__const void *__bp, int __index)
-+extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __THROW;
-+extern int inet6_rth_reverse (const void *__in, void *__out) __THROW;
-+extern int inet6_rth_segments (const void *__bp) __THROW;
-+extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)
- __THROW;
- # endif
- # endif
-@@ -572,23 +571,23 @@
- extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
- struct in_addr __group, uint32_t __fmode,
- uint32_t __numsrc,
-- __const struct in_addr *__slist)
-+ const struct in_addr *__slist)
- __THROW;
-
-
- /* Get source filter. */
- extern int getsourcefilter (int __s, uint32_t __interface_addr,
-- __const struct sockaddr *__group,
-+ const struct sockaddr *__group,
- socklen_t __grouplen, uint32_t *__fmode,
- uint32_t *__numsrc,
- struct sockaddr_storage *__slist) __THROW;
-
- /* Set source filter. */
- extern int setsourcefilter (int __s, uint32_t __interface_addr,
-- __const struct sockaddr *__group,
-+ const struct sockaddr *__group,
- socklen_t __grouplen, uint32_t __fmode,
- uint32_t __numsrc,
-- __const struct sockaddr_storage *__slist) __THROW;
-+ const struct sockaddr_storage *__slist) __THROW;
- # endif
- #endif /* use GNU */
-
-diff -Nur uClibc-0.9.33.2/include/netinet/in_systm.h uClibc-git/include/netinet/in_systm.h
---- uClibc-0.9.33.2/include/netinet/in_systm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/in_systm.h 2014-07-25 20:36:05.057325525 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_IN_SYSTM_H
- #define _NETINET_IN_SYSTM_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/ip6.h uClibc-git/include/netinet/ip6.h
---- uClibc-0.9.33.2/include/netinet/ip6.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/ip6.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETINET_IP6_H
- #define _NETINET_IP6_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/ip.h uClibc-git/include/netinet/ip.h
---- uClibc-0.9.33.2/include/netinet/ip.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/ip.h 2014-07-25 20:36:05.057325525 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __NETINET_IP_H
- #define __NETINET_IP_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/ip_icmp.h uClibc-git/include/netinet/ip_icmp.h
---- uClibc-0.9.33.2/include/netinet/ip_icmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/ip_icmp.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __NETINET_IP_ICMP_H
- #define __NETINET_IP_ICMP_H 1
-diff -Nur uClibc-0.9.33.2/include/netinet/udp.h uClibc-git/include/netinet/udp.h
---- uClibc-0.9.33.2/include/netinet/udp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netinet/udp.h 2014-07-25 20:36:05.057325525 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Copyright (C) 1982, 1986 Regents of the University of California.
-diff -Nur uClibc-0.9.33.2/include/netipx/ipx.h uClibc-git/include/netipx/ipx.h
---- uClibc-0.9.33.2/include/netipx/ipx.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netipx/ipx.h 2014-07-25 20:36:05.069325588 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __NETIPX_IPX_H
- #define __NETIPX_IPX_H 1
-diff -Nur uClibc-0.9.33.2/include/netpacket/packet.h uClibc-git/include/netpacket/packet.h
---- uClibc-0.9.33.2/include/netpacket/packet.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/netpacket/packet.h 2014-07-25 20:36:05.085325672 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __NETPACKET_PACKET_H
- #define __NETPACKET_PACKET_H 1
-diff -Nur uClibc-0.9.33.2/include/nl_types.h uClibc-git/include/nl_types.h
---- uClibc-0.9.33.2/include/nl_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/nl_types.h 2014-07-25 20:36:05.085325672 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NL_TYPES_H
- #define _NL_TYPES_H 1
-@@ -49,12 +48,12 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern nl_catd catopen (__const char *__cat_name, int __flag) __nonnull ((1));
-+extern nl_catd catopen (const char *__cat_name, int __flag) __nonnull ((1));
-
- /* Return translation with NUMBER in SET of CATALOG; if not found
- return STRING. */
- extern char *catgets (nl_catd __catalog, int __set, int __number,
-- __const char *__string) __THROW __nonnull ((1));
-+ const char *__string) __THROW __nonnull ((1));
-
- /* Close message CATALOG. */
- extern int catclose (nl_catd __catalog) __THROW __nonnull ((1));
-diff -Nur uClibc-0.9.33.2/include/obstack.h uClibc-git/include/obstack.h
---- uClibc-0.9.33.2/include/obstack.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/obstack.h 2014-07-25 20:36:05.085325672 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Summary:
-
-@@ -180,6 +179,7 @@
- /* Declare the external functions we use; they are in obstack.c. */
-
- extern void _obstack_newchunk (struct obstack *, int);
-+libc_hidden_proto(_obstack_newchunk)
- extern int _obstack_begin (struct obstack *, int, int,
- void *(*) (long), void (*) (void *));
- extern int _obstack_begin_1 (struct obstack *, int, int,
-diff -Nur uClibc-0.9.33.2/include/printf.h uClibc-git/include/printf.h
---- uClibc-0.9.33.2/include/printf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/printf.h 2014-07-25 20:36:05.085325672 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* March 11, 2001 Manuel Novoa III
- *
-@@ -143,14 +142,14 @@
-
- #ifdef __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__
- typedef int (*printf_function) (FILE *__stream,
-- __const struct printf_info *__info,
-- __const void *__const *__args);
-+ const struct printf_info *__info,
-+ const void *const *__args);
-
- /* Type of a printf specifier-arginfo function.
- INFO gives information about the format specification.
- N, ARGTYPES, and return value are as for parse_printf_format. */
-
--typedef int printf_arginfo_function (__const struct printf_info *__info,
-+typedef int printf_arginfo_function (const struct printf_info *__info,
- size_t __n, int *__argtypes);
-
-
-@@ -174,7 +173,7 @@
- array it is passed with the types of the arguments it wants, and return
- the number of arguments it wants. */
-
--extern size_t parse_printf_format (__const char *__restrict __fmt, size_t __n,
-+extern size_t parse_printf_format (const char *__restrict __fmt, size_t __n,
- int *__restrict __argtypes) __THROW;
-
-
-@@ -222,11 +221,11 @@
- the format specifier is a uppercase character powers of 1000 are
- used. Otherwise powers of 1024. */
- extern int printf_size (FILE *__restrict __fp,
-- __const struct printf_info *__info,
-- __const void *__const *__restrict __args) __THROW;
-+ const struct printf_info *__info,
-+ const void *const *__restrict __args) __THROW;
-
- /* This is the appropriate argument information function for `printf_size'. */
--extern int printf_size_info (__const struct printf_info *__restrict
-+extern int printf_size_info (const struct printf_info *__restrict
- __info, size_t __n, int *__restrict __argtypes)
- __THROW;
-
-diff -Nur uClibc-0.9.33.2/include/pty.h uClibc-git/include/pty.h
---- uClibc-0.9.33.2/include/pty.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/pty.h 2014-07-25 20:36:05.121325860 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTY_H
- #define _PTY_H 1
-diff -Nur uClibc-0.9.33.2/include/pwd.h uClibc-git/include/pwd.h
---- uClibc-0.9.33.2/include/pwd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/pwd.h 2014-07-25 20:36:05.121325860 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 9.2.2 User Database Access <pwd.h>
-@@ -100,7 +99,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int putpwent (__const struct passwd *__restrict __p,
-+extern int putpwent (const struct passwd *__restrict __p,
- FILE *__restrict __f);
- #endif
-
-@@ -114,7 +113,8 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct passwd *getpwnam (__const char *__name);
-+extern struct passwd *getpwnam (const char *__name);
-+libc_hidden_proto(getpwnam)
-
- #if defined __USE_POSIX || defined __USE_MISC
-
-@@ -149,7 +149,7 @@
- struct passwd **__restrict __result);
- libc_hidden_proto(getpwuid_r)
-
--extern int getpwnam_r (__const char *__restrict __name,
-+extern int getpwnam_r (const char *__restrict __name,
- struct passwd *__restrict __resultbuf,
- char *__restrict __buffer, size_t __buflen,
- struct passwd **__restrict __result);
-diff -Nur uClibc-0.9.33.2/include/regex.h uClibc-git/include/regex.h
---- uClibc-0.9.33.2/include/regex.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/regex.h 2014-07-25 20:36:05.121325860 +0200
-@@ -1,6 +1,6 @@
- /* Definitions for data structures and routines for the regular
- expression library.
-- Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005
-+ Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006,2008
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
-@@ -15,28 +15,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _REGEX_H
- #define _REGEX_H 1
-
--#include <features.h>
--
- #include <sys/types.h>
-
- __BEGIN_DECLS
-
--/* POSIX says that <sys/types.h> must be included (by the caller) before
-- <regex.h>. */
--
--#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
--/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
-- should be there. */
--# include <stddef.h>
--#endif
--
- /* The following two types have to be signed and unsigned integer type
- wide enough to hold a value of a pointer. For most ANSI compilers
- ptrdiff_t and size_t should be likely OK. Still size of these two
-@@ -51,20 +39,21 @@
- add or remove a bit, only one other definition need change. */
- typedef unsigned long int reg_syntax_t;
-
-+#ifdef __USE_GNU
- /* If this bit is not set, then \ inside a bracket expression is literal.
- If set, then such a \ quotes the following character. */
--#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
-+# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
-
- /* If this bit is not set, then + and ? are operators, and \+ and \? are
- literals.
- If set, then \+ and \? are operators and + and ? are literals. */
--#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
-+# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
-
- /* If this bit is set, then character classes are supported. They are:
- [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
- [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
- If not set, then character classes are not supported. */
--#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
-+# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
-
- /* If this bit is set, then ^ and $ are always anchors (outside bracket
- expressions, of course).
-@@ -78,7 +67,7 @@
- POSIX draft 11.2 says that * etc. in leading positions is undefined.
- We already implemented a previous draft which made those constructs
- invalid, though, so we haven't changed the code back. */
--#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
-+# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
-
- /* If this bit is set, then special characters are always special
- regardless of where they are in the pattern.
-@@ -86,71 +75,71 @@
- some contexts; otherwise they are ordinary. Specifically,
- * + ? and intervals are only special when not after the beginning,
- open-group, or alternation operator. */
--#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
-+# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
-
- /* If this bit is set, then *, +, ?, and { cannot be first in an re or
- immediately after an alternation or begin-group operator. */
--#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
-+# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
-
- /* If this bit is set, then . matches newline.
- If not set, then it doesn't. */
--#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
-+# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
-
- /* If this bit is set, then . doesn't match NUL.
- If not set, then it does. */
--#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
-+# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
-
- /* If this bit is set, nonmatching lists [^...] do not match newline.
- If not set, they do. */
--#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
-+# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
-
- /* If this bit is set, either \{...\} or {...} defines an
- interval, depending on RE_NO_BK_BRACES.
- If not set, \{, \}, {, and } are literals. */
--#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-+# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-
- /* If this bit is set, +, ? and | aren't recognized as operators.
- If not set, they are. */
--#define RE_LIMITED_OPS (RE_INTERVALS << 1)
-+# define RE_LIMITED_OPS (RE_INTERVALS << 1)
-
- /* If this bit is set, newline is an alternation operator.
- If not set, newline is literal. */
--#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
-+# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
-
- /* If this bit is set, then `{...}' defines an interval, and \{ and \}
- are literals.
- If not set, then `\{...\}' defines an interval. */
--#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
-+# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
-
- /* If this bit is set, (...) defines a group, and \( and \) are literals.
- If not set, \(...\) defines a group, and ( and ) are literals. */
--#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
-+# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
-
- /* If this bit is set, then \<digit> matches <digit>.
- If not set, then \<digit> is a back-reference. */
--#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
-+# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
-
- /* If this bit is set, then | is an alternation operator, and \| is literal.
- If not set, then \| is an alternation operator, and | is literal. */
--#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
-+# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
-
- /* If this bit is set, then an ending range point collating higher
- than the starting range point, as in [z-a], is invalid.
- If not set, then when ending range point collates higher than the
- starting range point, the range is ignored. */
--#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
-+# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
-
- /* If this bit is set, then an unmatched ) is ordinary.
- If not set, then an unmatched ) is invalid. */
--#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-+# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-
- /* If this bit is set, succeed as soon as we match the whole pattern,
- without further backtracking. */
--#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
-+# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
-
- /* If this bit is set, do not process the GNU regex operators.
- If not set, then the GNU regex operators are recognized. */
--#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
-+# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
-
- /* If this bit is set, turn on internal regex debugging.
- If not set, and debugging was on, turn it off.
-@@ -158,29 +147,30 @@
- We define this bit always, so that all that's needed to turn on
- debugging is to recompile regex.c; the calling code can always have
- this bit set, and it won't affect anything in the normal case. */
--#define RE_DEBUG (RE_NO_GNU_OPS << 1)
-+# define RE_DEBUG (RE_NO_GNU_OPS << 1)
-
- /* If this bit is set, a syntactically invalid interval is treated as
- a string of ordinary characters. For example, the ERE 'a{1' is
- treated as 'a\{1'. */
--#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
-+# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
-
- /* If this bit is set, then ignore case when matching.
- If not set, then case is significant. */
--#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
-+# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
-
- /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only
- for ^, because it is difficult to scan the regex backwards to find
- whether ^ should be special. */
--#define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
-+# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
-
- /* If this bit is set, then \{ cannot be first in an bre or
- immediately after an alternation or begin-group operator. */
--#define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
-+# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
-
- /* If this bit is set, then no_sub will be set to 1 during
- re_compile_pattern. */
--#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
-+# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
-+#endif
-
- /* This global variable defines the particular regexp syntax to use (for
- some interfaces). When a regexp is compiled, the syntax used is
-@@ -188,6 +178,7 @@
- already-compiled regexps. */
- extern reg_syntax_t re_syntax_options;
-
-+#ifdef __USE_GNU
- /* Define combinations of the above bits for the standard possibilities.
- (The [[[ comments delimit what gets put into the Texinfo file, so
- don't delete them!) */
-@@ -262,11 +253,12 @@
- /* Maximum number of duplicates an interval can allow. Some systems
- (erroneously) define this in other header files, but we want our
- value, so remove any previous define. */
--#ifdef RE_DUP_MAX
--# undef RE_DUP_MAX
--#endif
-+# ifdef RE_DUP_MAX
-+# undef RE_DUP_MAX
-+# endif
- /* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
--#define RE_DUP_MAX (0x7fff)
-+# define RE_DUP_MAX (0x7fff)
-+#endif
-
-
- /* POSIX `cflags' bits (i.e., information for `regcomp'). */
-@@ -310,7 +302,7 @@
- `re_error_msg' table in regex.c. */
- typedef enum
- {
--#ifdef _XOPEN_SOURCE
-+#if defined _XOPEN_SOURCE || defined __USE_XOPEN2K
- REG_ENOSYS = -1, /* This will never happen for this implementation. */
- #endif
-
-@@ -345,7 +337,16 @@
- private to the regex routines. */
-
- #ifndef RE_TRANSLATE_TYPE
--# define RE_TRANSLATE_TYPE unsigned char *
-+# define __RE_TRANSLATE_TYPE unsigned char *
-+# ifdef __USE_GNU
-+# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE
-+# endif
-+#endif
-+
-+#ifdef __USE_GNU
-+# define __REPB_PREFIX(name) name
-+#else
-+# define __REPB_PREFIX(name) __##name
- #endif
-
- struct re_pattern_buffer
-@@ -353,27 +354,27 @@
- /* Space that holds the compiled pattern. It is declared as
- `unsigned char *' because its elements are sometimes used as
- array indexes. */
-- unsigned char *buffer;
-+ unsigned char *__REPB_PREFIX(buffer);
-
- /* Number of bytes to which `buffer' points. */
-- unsigned long int allocated;
-+ unsigned long int __REPB_PREFIX(allocated);
-
- /* Number of bytes actually used in `buffer'. */
-- unsigned long int used;
-+ unsigned long int __REPB_PREFIX(used);
-
- /* Syntax setting with which the pattern was compiled. */
-- reg_syntax_t syntax;
-+ reg_syntax_t __REPB_PREFIX(syntax);
-
- /* Pointer to a fastmap, if any, otherwise zero. re_search uses the
- fastmap, if there is one, to skip over impossible starting points
- for matches. */
-- char *fastmap;
-+ char *__REPB_PREFIX(fastmap);
-
- /* Either a translate table to apply to all characters before
- comparing them, or zero for no translation. The translation is
- applied to a pattern when it is compiled and to a string when it
- is matched. */
-- RE_TRANSLATE_TYPE translate;
-+ __RE_TRANSLATE_TYPE __REPB_PREFIX(translate);
-
- /* Number of subexpressions found by the compiler. */
- size_t re_nsub;
-@@ -382,34 +383,36 @@
- Well, in truth it's used only in `re_search_2', to see whether or
- not we should use the fastmap, so we don't set this absolutely
- perfectly; see `re_compile_fastmap' (the `duplicate' case). */
-- unsigned can_be_null : 1;
-+ unsigned __REPB_PREFIX(can_be_null) : 1;
-
- /* If REGS_UNALLOCATED, allocate space in the `regs' structure
- for `max (RE_NREGS, re_nsub + 1)' groups.
- If REGS_REALLOCATE, reallocate space if necessary.
- If REGS_FIXED, use what's there. */
--#define REGS_UNALLOCATED 0
--#define REGS_REALLOCATE 1
--#define REGS_FIXED 2
-- unsigned regs_allocated : 2;
-+#ifdef __USE_GNU
-+# define REGS_UNALLOCATED 0
-+# define REGS_REALLOCATE 1
-+# define REGS_FIXED 2
-+#endif
-+ unsigned __REPB_PREFIX(regs_allocated) : 2;
-
- /* Set to zero when `regex_compile' compiles a pattern; set to one
- by `re_compile_fastmap' if it updates the fastmap. */
-- unsigned fastmap_accurate : 1;
-+ unsigned __REPB_PREFIX(fastmap_accurate) : 1;
-
- /* If set, `re_match_2' does not return information about
- subexpressions. */
-- unsigned no_sub : 1;
-+ unsigned __REPB_PREFIX(no_sub) : 1;
-
- /* If set, a beginning-of-line anchor doesn't match at the beginning
- of the string. */
-- unsigned not_bol : 1;
-+ unsigned __REPB_PREFIX(not_bol) : 1;
-
- /* Similarly for an end-of-line anchor. */
-- unsigned not_eol : 1;
-+ unsigned __REPB_PREFIX(not_eol) : 1;
-
- /* If true, an anchor at a newline matches. */
-- unsigned newline_anchor : 1;
-+ unsigned __REPB_PREFIX(newline_anchor) : 1;
- };
-
- typedef struct re_pattern_buffer regex_t;
-@@ -418,6 +421,7 @@
- typedef int regoff_t;
-
-
-+#ifdef __USE_GNU
- /* This is the structure we store register match data in. See
- regex.texinfo for a full description of what registers match. */
- struct re_registers
-@@ -431,8 +435,9 @@
- /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
- `re_match_2' returns information about at least this many registers
- the first time a `regs' structure is passed. */
--#ifndef RE_NREGS
--# define RE_NREGS 30
-+# ifndef RE_NREGS
-+# define RE_NREGS 30
-+# endif
- #endif
-
-
-@@ -447,7 +452,7 @@
-
- /* Declarations for routines. */
-
--
-+#ifdef __USE_GNU
- /* Sets the current default syntax to SYNTAX, and return the old syntax.
- You can also simply assign to the `re_syntax_options' variable. */
- extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
-@@ -515,8 +520,9 @@
- struct re_registers *__regs,
- unsigned int __num_regs,
- regoff_t *__starts, regoff_t *__ends);
-+#endif /* Use GNU */
-
--#if defined _REGEX_RE_COMP || defined _LIBC
-+#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD)
- # ifndef _CRAY
- /* 4.2 bsd compatibility. */
- extern char *re_comp (const char *);
-@@ -537,7 +543,8 @@
- #endif
- /* gcc 3.1 and up support the [restrict] syntax. */
- #ifndef __restrict_arr
--# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
-+# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) \
-+ && !defined __GNUG__
- # define __restrict_arr __restrict
- # else
- # define __restrict_arr
-diff -Nur uClibc-0.9.33.2/include/regexp.h uClibc-git/include/regexp.h
---- uClibc-0.9.33.2/include/regexp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/regexp.h 2014-07-25 20:36:05.121325860 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _REGEXP_H
- #define _REGEXP_H 1
-@@ -103,7 +102,7 @@
- on the macros. */
- char *
- compile (char *__restrict instring, char *__restrict expbuf,
-- __const char *__restrict endbuf, int eof)
-+ const char *__restrict endbuf, int eof)
- {
- char *__input_buffer = NULL;
- size_t __input_size = 0;
-@@ -216,14 +215,14 @@
- found in the buffer starting at EXPBUF. `loc1' will return the
- first character matched and `loc2' points to the next unmatched
- character. */
--extern int step (__const char *__restrict __string,
-- __const char *__restrict __expbuf) __THROW;
-+extern int step (const char *__restrict __string,
-+ const char *__restrict __expbuf) __THROW;
-
- /* Match the beginning of STRING with the compiled regular expression
- in EXPBUF. If the match is successful `loc2' will contain the
- position of the first unmatched character. */
--extern int advance (__const char *__restrict __string,
-- __const char *__restrict __expbuf) __THROW;
-+extern int advance (const char *__restrict __string,
-+ const char *__restrict __expbuf) __THROW;
- #endif
-
-
-diff -Nur uClibc-0.9.33.2/include/rpc/auth_des.h uClibc-git/include/rpc/auth_des.h
---- uClibc-0.9.33.2/include/rpc/auth_des.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/auth_des.h 2014-07-25 20:36:05.137325944 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _RPC_AUTH_DES_H
- #define _RPC_AUTH_DES_H 1
-@@ -89,27 +88,26 @@
- #define adv_nickname adv_int_u
-
- /* Map a des credential into a unix cred. */
--extern int authdes_getucred (__const struct authdes_cred * __adc,
-+extern int authdes_getucred (const struct authdes_cred * __adc,
- uid_t * __uid, gid_t * __gid,
- short *__grouplen, gid_t * __groups) __THROW;
-
- /* Get the public key for NAME and place it in KEY. NAME can only be
- up to MAXNETNAMELEN bytes long and the destination buffer KEY should
- have HEXKEYBYTES + 1 bytes long to fit all characters from the key. */
--extern int getpublickey (__const char *__name, char *__key) __THROW;
-+extern int getpublickey (const char *__name, char *__key) __THROW;
-
- /* Get the secret key for NAME and place it in KEY. PASSWD is used to
- decrypt the encrypted key stored in the database. NAME can only be
- up to MAXNETNAMELEN bytes long and the destination buffer KEY
- should have HEXKEYBYTES + 1 bytes long to fit all characters from
- the key. */
--extern int getsecretkey (__const char *__name, char *__key,
-- __const char *__passwd) __THROW;
-+extern int getsecretkey (const char *__name, char *__key,
-+ const char *__passwd) __THROW;
- #endif
-
- extern int rtime (struct sockaddr_in *__addrp, struct rpc_timeval *__timep,
- struct rpc_timeval *__timeout) __THROW;
--libc_hidden_proto(rtime)
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/rpc/auth.h uClibc-git/include/rpc/auth.h
---- uClibc-0.9.33.2/include/rpc/auth.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/auth.h 2014-07-25 20:36:05.137325944 +0200
-@@ -41,17 +41,6 @@
- #ifndef _RPC_AUTH_H
-
- #define _RPC_AUTH_H 1
--#ifdef _LIBC
--/* Some adjustments to make the libc source from glibc
-- * compile more easily with uClibc... */
--#ifndef __FORCE_GLIBC
--#define __FORCE_GLIBC
--#endif
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
--#define _(X) X
--#endif
- #include <features.h>
- #include <rpc/xdr.h>
-
-@@ -107,6 +96,10 @@
- struct opaque_auth ah_cred;
- struct opaque_auth ah_verf;
- union des_block ah_key;
-+ /* not sure whether non-const-ness is a part of the spec... if it is,
-+ * enclose "const" in #ifdef _LIBC / #endif
-+ * to make it effective only for libc compile */
-+ const
- struct auth_ops {
- void (*ah_nextverf) (AUTH *);
- int (*ah_marshal) (AUTH *, XDR *); /* nextverf & serialize */
-@@ -200,11 +193,11 @@
- *
- */
- extern int getnetname (char *) __THROW;
--extern int host2netname (char *, __const char *, __const char *) __THROW;
--extern int user2netname (char *, __const uid_t, __const char *) __THROW;
--extern int netname2user (__const char *, uid_t *, gid_t *, int *, gid_t *)
-+extern int host2netname (char *, const char *, const char *) __THROW;
-+extern int user2netname (char *, const uid_t, const char *) __THROW;
-+extern int netname2user (const char *, uid_t *, gid_t *, int *, gid_t *)
- __THROW;
--extern int netname2host (__const char *, char *, __const int) __THROW;
-+extern int netname2host (const char *, char *, const int) __THROW;
-
- /*
- *
-diff -Nur uClibc-0.9.33.2/include/rpc/clnt.h uClibc-git/include/rpc/clnt.h
---- uClibc-0.9.33.2/include/rpc/clnt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/clnt.h 2014-07-25 20:36:05.137325944 +0200
-@@ -281,7 +281,7 @@
- * u_long prog;
- * u_long vers;
- */
--extern CLIENT *clntraw_create (__const u_long __prog, __const u_long __vers)
-+extern CLIENT *clntraw_create (const u_long __prog, const u_long __vers)
- __THROW;
-
-
-@@ -295,8 +295,8 @@
- * u_ong vers; -- version number
- * char *prot; -- protocol
- */
--extern CLIENT *clnt_create (__const char *__host, __const u_long __prog,
-- __const u_long __vers, __const char *__prot)
-+extern CLIENT *clnt_create (const char *__host, const u_long __prog,
-+ const u_long __vers, const char *__prot)
- __THROW;
-
-
-@@ -365,18 +365,18 @@
- libc_hidden_proto(clntunix_create)
-
-
--extern int callrpc (__const char *__host, __const u_long __prognum,
-- __const u_long __versnum, __const u_long __procnum,
-- __const xdrproc_t __inproc, __const char *__in,
-- __const xdrproc_t __outproc, char *__out) __THROW;
-+extern int callrpc (const char *__host, const u_long __prognum,
-+ const u_long __versnum, const u_long __procnum,
-+ const xdrproc_t __inproc, const char *__in,
-+ const xdrproc_t __outproc, char *__out) __THROW;
- extern int _rpc_dtablesize (void) __THROW;
- libc_hidden_proto(_rpc_dtablesize)
-
- /*
- * Print why creation failed
- */
--extern void clnt_pcreateerror (__const char *__msg); /* stderr */
--extern char *clnt_spcreateerror(__const char *__msg) __THROW; /* string */
-+extern void clnt_pcreateerror (const char *__msg); /* stderr */
-+extern char *clnt_spcreateerror(const char *__msg) __THROW; /* string */
- libc_hidden_proto(clnt_spcreateerror)
-
- /*
-@@ -387,10 +387,10 @@
- /*
- * Print an English error message, given the client error code
- */
--extern void clnt_perror (CLIENT *__clnt, __const char *__msg);
-+extern void clnt_perror (CLIENT *__clnt, const char *__msg);
- /* stderr */
- libc_hidden_proto(clnt_perror)
--extern char *clnt_sperror (CLIENT *__clnt, __const char *__msg) __THROW;
-+extern char *clnt_sperror (CLIENT *__clnt, const char *__msg) __THROW;
- /* string */
- libc_hidden_proto(clnt_sperror)
-
-@@ -416,7 +416,7 @@
- /*
- * get the port number on the host for the rpc program,version and proto
- */
--extern int getrpcport (__const char * __host, u_long __prognum,
-+extern int getrpcport (const char * __host, u_long __prognum,
- u_long __versnum, u_int proto) __THROW;
-
- /*
-diff -Nur uClibc-0.9.33.2/include/rpc/netdb.h uClibc-git/include/rpc/netdb.h
---- uClibc-0.9.33.2/include/rpc/netdb.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/netdb.h 2014-07-25 20:36:05.137325944 +0200
-@@ -54,7 +54,7 @@
- libc_hidden_proto(setrpcent)
- extern void endrpcent (void) __THROW;
- libc_hidden_proto(endrpcent)
--extern struct rpcent *getrpcbyname (__const char *__name) __THROW;
-+extern struct rpcent *getrpcbyname (const char *__name) __THROW;
- libc_hidden_proto(getrpcbyname)
- extern struct rpcent *getrpcbynumber (int __number) __THROW;
- libc_hidden_proto(getrpcbynumber)
-@@ -62,7 +62,7 @@
- libc_hidden_proto(getrpcent)
-
- #if defined __USE_MISC && defined __UCLIBC_HAS_REENTRANT_RPC__
--extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf,
-+extern int getrpcbyname_r (const char *__name, struct rpcent *__result_buf,
- char *__buffer, size_t __buflen,
- struct rpcent **__result) __THROW;
-
-diff -Nur uClibc-0.9.33.2/include/rpc/pmap_clnt.h uClibc-git/include/rpc/pmap_clnt.h
---- uClibc-0.9.33.2/include/rpc/pmap_clnt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/pmap_clnt.h 2014-07-25 20:36:05.137325944 +0200
-@@ -69,30 +69,30 @@
- * address if the responder to the broadcast.
- */
-
--extern bool_t pmap_set (__const u_long __program, __const u_long __vers,
-+extern bool_t pmap_set (const u_long __program, const u_long __vers,
- int __protocol, u_short __port) __THROW;
- libc_hidden_proto(pmap_set)
--extern bool_t pmap_unset (__const u_long __program, __const u_long __vers)
-+extern bool_t pmap_unset (const u_long __program, const u_long __vers)
- __THROW;
- libc_hidden_proto(pmap_unset)
- extern struct pmaplist *pmap_getmaps (struct sockaddr_in *__address) __THROW;
- extern enum clnt_stat pmap_rmtcall (struct sockaddr_in *__addr,
-- __const u_long __prog,
-- __const u_long __vers,
-- __const u_long __proc,
-+ const u_long __prog,
-+ const u_long __vers,
-+ const u_long __proc,
- xdrproc_t __xdrargs,
- caddr_t __argsp, xdrproc_t __xdrres,
- caddr_t __resp, struct timeval __tout,
- u_long *__port_ptr) __THROW;
--extern enum clnt_stat clnt_broadcast (__const u_long __prog,
-- __const u_long __vers,
-- __const u_long __proc, xdrproc_t __xargs,
-+extern enum clnt_stat clnt_broadcast (const u_long __prog,
-+ const u_long __vers,
-+ const u_long __proc, xdrproc_t __xargs,
- caddr_t __argsp, xdrproc_t __xresults,
- caddr_t __resultsp,
- resultproc_t __eachresult) __THROW;
- extern u_short pmap_getport (struct sockaddr_in *__address,
-- __const u_long __program,
-- __const u_long __version, u_int __protocol)
-+ const u_long __program,
-+ const u_long __version, u_int __protocol)
- __THROW;
- libc_hidden_proto(pmap_getport)
-
-diff -Nur uClibc-0.9.33.2/include/rpc/rpc.h uClibc-git/include/rpc/rpc.h
---- uClibc-0.9.33.2/include/rpc/rpc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/rpc.h 2014-07-25 20:36:05.137325944 +0200
-@@ -38,19 +38,6 @@
- #ifndef _RPC_RPC_H
- #define _RPC_RPC_H 1
-
--#ifdef _LIBC
--/* Some adjustments to make the libc source from glibc
-- * compile more easily with uClibc... */
--#ifndef __FORCE_GLIBC
--#define __FORCE_GLIBC
--#endif
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
--#define _(X) X
--#include <features.h>
--#endif
--
- #include <rpc/types.h> /* some typedefs */
- #include <netinet/in.h>
-
-@@ -109,11 +96,6 @@
- libc_hidden_proto(__rpc_thread_svc_max_pollfd)
- #define svc_max_pollfd (*__rpc_thread_svc_max_pollfd ())
-
--extern bool_t xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar);
--libc_hidden_proto(xdr_accepted_reply)
--extern bool_t xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr);
--libc_hidden_proto(xdr_rejected_reply)
--
- __END_DECLS
-
- #endif /* rpc/rpc.h */
-diff -Nur uClibc-0.9.33.2/include/rpc/rpc_msg.h uClibc-git/include/rpc/rpc_msg.h
---- uClibc-0.9.33.2/include/rpc/rpc_msg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/rpc_msg.h 2014-07-25 20:36:05.137325944 +0200
-@@ -201,6 +201,26 @@
- __THROW;
- libc_hidden_proto(_seterr_reply)
-
-+#ifdef __UCLIBC__
-+/*
-+ * XDR routine to handle an accepted rpc reply.
-+ * xdr_accepted_reply(xdrs, rej)
-+ * XDR *xdrs;
-+ * struct accepted_reply *rej;
-+ */
-+extern bool_t xdr_accepted_reply(XDR *__xdrs, struct accepted_reply *__ar);
-+libc_hidden_proto(xdr_accepted_reply)
-+
-+/*
-+ * XDR routine to handle a rejected rpc reply.
-+ * xdr_rejected_reply(xdrs, rej)
-+ * XDR *xdrs;
-+ * struct rejected_reply *rej;
-+ */
-+extern bool_t xdr_rejected_reply(XDR *__xdrs, struct rejected_reply *__rr);
-+libc_hidden_proto(xdr_rejected_reply)
-+#endif
-+
- __END_DECLS
-
- #endif /* rpc/rpc_msg.h */
-diff -Nur uClibc-0.9.33.2/include/rpc/types.h uClibc-git/include/rpc/types.h
---- uClibc-0.9.33.2/include/rpc/types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/types.h 2014-07-25 20:36:05.141325965 +0200
-@@ -33,19 +33,6 @@
- #ifndef _RPC_TYPES_H
- #define _RPC_TYPES_H 1
-
--#ifdef _LIBC
--/* Some adjustments to make the libc source from glibc
-- * compile more easily with uClibc... */
--#ifndef __FORCE_GLIBC
--#define __FORCE_GLIBC
--#endif
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
--#define _(X) X
--#endif
--#include <features.h>
--
- typedef int bool_t;
- typedef int enum_t;
- /* This needs to be changed to uint32_t in the future */
-diff -Nur uClibc-0.9.33.2/include/rpc/xdr.h uClibc-git/include/rpc/xdr.h
---- uClibc-0.9.33.2/include/rpc/xdr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/rpc/xdr.h 2014-07-25 20:36:05.141325965 +0200
-@@ -36,14 +36,6 @@
- #ifndef _RPC_XDR_H
- #define _RPC_XDR_H 1
-
--#ifdef _LIBC
--/* Some adjustments to make the libc source from glibc
-- * compile more easily with uClibc... */
--# ifndef __FORCE_GLIBC
--# define __FORCE_GLIBC
--# endif
--# define _(X) X
--#endif
- #include <features.h>
- #include <sys/types.h>
- #include <rpc/types.h>
-@@ -120,17 +112,21 @@
- struct XDR
- {
- enum xdr_op x_op; /* operation; fast additional param */
-+ /* not sure whether non-const-ness is a part of the spec... if it is,
-+ * enclose "const" in #ifdef _LIBC / #endif
-+ * to make it effective only for libc compile */
-+ const
- struct xdr_ops
- {
- bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
- /* get a long from underlying stream */
-- bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-+ bool_t (*x_putlong) (XDR *__xdrs, const long *__lp);
- /* put a long to " */
- bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
- /* get some bytes from " */
-- bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-+ bool_t (*x_putbytes) (XDR *__xdrs, const char *__addr, u_int __len);
- /* put some bytes to " */
-- u_int (*x_getpostn) (__const XDR *__xdrs);
-+ u_int (*x_getpostn) (const XDR *__xdrs);
- /* returns bytes off from beginning */
- bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
- /* lets you reposition the stream */
-@@ -140,7 +136,7 @@
- /* free privates of this xdr_stream */
- bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
- /* get a int from underlying stream */
-- bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-+ bool_t (*x_putint32) (XDR *__xdrs, const int32_t *__ip);
- /* put a int to " */
- }
- *x_ops;
-@@ -320,6 +316,8 @@
- extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
- extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
- extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-+extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-+extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
- extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
- libc_hidden_proto(xdr_bool)
- extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-@@ -336,7 +334,7 @@
- extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
- libc_hidden_proto(xdr_string)
- extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-- __const struct xdr_discrim *__choices,
-+ const struct xdr_discrim *__choices,
- xdrproc_t dfault) __THROW;
- libc_hidden_proto(xdr_union)
- extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-@@ -372,7 +370,7 @@
- */
-
- /* XDR using memory buffers */
--extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-+extern void xdrmem_create (XDR *__xdrs, const caddr_t __addr,
- u_int __size, enum xdr_op __xop) __THROW;
- libc_hidden_proto(xdrmem_create)
-
-diff -Nur uClibc-0.9.33.2/include/sched.h uClibc-git/include/sched.h
---- uClibc-0.9.33.2/include/sched.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sched.h 2014-07-25 20:36:05.141325965 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SCHED_H
- #define _SCHED_H 1
-@@ -40,7 +39,7 @@
- __BEGIN_DECLS
-
- /* Set scheduling parameters for a process. */
--extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
-+extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
- __THROW;
-
- /* Retrieve scheduling parameters for a particular process. */
-@@ -48,7 +47,7 @@
-
- /* Set scheduling algorithm and/or parameters for a process. */
- extern int sched_setscheduler (__pid_t __pid, int __policy,
-- __const struct sched_param *__param) __THROW;
-+ const struct sched_param *__param) __THROW;
-
- /* Retrieve scheduling algorithm for a particular purpose. */
- extern int sched_getscheduler (__pid_t __pid) __THROW;
-@@ -108,11 +107,19 @@
-
- /* Set the CPU affinity for a task */
- extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
-- __const cpu_set_t *__cpuset) __THROW;
-+ const cpu_set_t *__cpuset) __THROW;
-
- /* Get the CPU affinity for a task */
- extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
- cpu_set_t *__cpuset) __THROW;
-+
-+# ifdef _LIBC
-+extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
-+ int __flags, void *__arg, ...);
-+extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
-+ size_t __child_stack_size, int __flags, void *__arg, ...);
-+# endif
-+
- #endif
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/scsi/scsi.h uClibc-git/include/scsi/scsi.h
---- uClibc-0.9.33.2/include/scsi/scsi.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/scsi/scsi.h 2014-07-25 20:36:05.153326028 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * This header file contains public constants and structures used by
-diff -Nur uClibc-0.9.33.2/include/scsi/scsi_ioctl.h uClibc-git/include/scsi/scsi_ioctl.h
---- uClibc-0.9.33.2/include/scsi/scsi_ioctl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/scsi/scsi_ioctl.h 2014-07-25 20:36:05.153326028 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SCSI_IOCTL_H
- #define _SCSI_IOCTL_H
-diff -Nur uClibc-0.9.33.2/include/scsi/sg.h uClibc-git/include/scsi/sg.h
---- uClibc-0.9.33.2/include/scsi/sg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/scsi/sg.h 2014-07-25 20:36:05.161326070 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- History:
-diff -Nur uClibc-0.9.33.2/include/search.h uClibc-git/include/search.h
---- uClibc-0.9.33.2/include/search.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/search.h 2014-07-25 20:36:05.161326070 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEARCH_H
- #define _SEARCH_H 1
-@@ -52,7 +51,7 @@
- /* For use with hsearch(3). */
- #ifndef __COMPAR_FN_T
- # define __COMPAR_FN_T
--typedef int (*__compar_fn_t) (__const void *, __const void *);
-+typedef int (*__compar_fn_t) (const void *, const void *);
-
- # ifdef __USE_GNU
- typedef __compar_fn_t comparison_fn_t;
-@@ -130,30 +129,30 @@
-
- /* Search for an entry matching the given KEY in the tree pointed to
- by *ROOTP and insert a new element if not found. */
--extern void *tsearch (__const void *__key, void **__rootp,
-+extern void *tsearch (const void *__key, void **__rootp,
- __compar_fn_t __compar);
- libc_hidden_proto(tsearch)
-
- /* Search for an entry matching the given KEY in the tree pointed to
- by *ROOTP. If no matching entry is available return NULL. */
--extern void *tfind (__const void *__key, void *__const *__rootp,
-+extern void *tfind (const void *__key, void *const *__rootp,
- __compar_fn_t __compar);
- libc_hidden_proto(tfind)
-
- /* Remove the element matching KEY from the tree pointed to by *ROOTP. */
--extern void *tdelete (__const void *__restrict __key,
-+extern void *tdelete (const void *__restrict __key,
- void **__restrict __rootp,
- __compar_fn_t __compar);
-
- #ifndef __ACTION_FN_T
- # define __ACTION_FN_T
--typedef void (*__action_fn_t) (__const void *__nodep, VISIT __value,
-+typedef void (*__action_fn_t) (const void *__nodep, VISIT __value,
- int __level);
- #endif
-
- /* Walk through the whole tree and call the ACTION callback for every node
- or leaf. */
--extern void twalk (__const void *__root, __action_fn_t __action);
-+extern void twalk (const void *__root, __action_fn_t __action);
-
- #ifdef __USE_GNU
- /* Callback type for function to free a tree node. If the keys are atomic
-@@ -168,13 +167,13 @@
-
- /* Perform linear search for KEY by comparing by COMPAR in an array
- [BASE,BASE+NMEMB*SIZE). */
--extern void *lfind (__const void *__key, __const void *__base,
-+extern void *lfind (const void *__key, const void *__base,
- size_t *__nmemb, size_t __size, __compar_fn_t __compar);
- libc_hidden_proto(lfind)
-
- /* Perform linear search for KEY by comparing by COMPAR function in
- array [BASE,BASE+NMEMB*SIZE) and insert entry if not found. */
--extern void *lsearch (__const void *__key, void *__base,
-+extern void *lsearch (const void *__key, void *__base,
- size_t *__nmemb, size_t __size, __compar_fn_t __compar);
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/setjmp.h uClibc-git/include/setjmp.h
---- uClibc-0.9.33.2/include/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/setjmp.h 2014-07-25 20:36:05.161326070 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-1999, 2001 Free Software Foundation, Inc.
-+/* Copyright (C) 1991-1999,2001,2002,2007,2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.13 Nonlocal jumps <setjmp.h>
-@@ -30,8 +29,9 @@
- #include <bits/setjmp.h> /* Get `__jmp_buf'. */
- #include <bits/sigset.h> /* Get `__sigset_t'. */
-
-+
- /* Calling environment, plus possibly a saved signal mask. */
--typedef struct __jmp_buf_tag /* C++ doesn't like tagless structs. */
-+struct __jmp_buf_tag
- {
- /* NOTE: The machine-dependent definitions of `__sigsetjmp'
- assume that a `jmp_buf' begins with a `__jmp_buf' and that
-@@ -40,23 +40,29 @@
- __jmp_buf __jmpbuf; /* Calling environment. */
- int __mask_was_saved; /* Saved the signal mask? */
- __sigset_t __saved_mask; /* Saved signal mask. */
-- } jmp_buf[1];
-+ };
-+
-
-+__BEGIN_NAMESPACE_STD
-+
-+typedef struct __jmp_buf_tag jmp_buf[1];
-
- /* Store the calling environment in ENV, also saving the signal mask.
- Return 0. */
- extern int setjmp (jmp_buf __env) __THROW;
-
--/* Store the calling environment in ENV, not saving the signal mask.
-- Return 0. */
--extern int _setjmp (jmp_buf __env) __THROW;
-+__END_NAMESPACE_STD
-
- /* Store the calling environment in ENV, also saving the
- signal mask if SAVEMASK is nonzero. Return 0.
- This is the internal name for `sigsetjmp'. */
--extern int __sigsetjmp (jmp_buf __env, int __savemask) __THROW;
-+extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROW;
-
- #ifndef __FAVOR_BSD
-+/* Store the calling environment in ENV, not saving the signal mask.
-+ Return 0. */
-+extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROW;
-+
- /* Do not save the signal mask. This is equivalent to the `_setjmp'
- BSD function. */
- # define setjmp(env) _setjmp (env)
-@@ -68,15 +74,20 @@
- #endif /* Favor BSD. */
-
-
-+__BEGIN_NAMESPACE_STD
-+
- /* Jump to the environment saved in ENV, making the
- `setjmp' call there return VAL, or 1 if VAL is 0. */
--extern void longjmp (jmp_buf __env, int __val)
-+extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
- __THROW __attribute__ ((__noreturn__));
-+
-+__END_NAMESPACE_STD
-+
- #if defined __USE_BSD || defined __USE_XOPEN
- /* Same. Usually `_longjmp' is used with `_setjmp', which does not save
- the signal mask. But it is how ENV was saved that determines whether
- `longjmp' restores the mask; `_longjmp' is just an alias. */
--extern void _longjmp (jmp_buf __env, int __val)
-+extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
- __THROW __attribute__ ((__noreturn__));
- #endif
-
-@@ -85,7 +96,7 @@
- /* Use the same type for `jmp_buf' and `sigjmp_buf'.
- The `__mask_was_saved' flag determines whether
- or not `longjmp' will restore the signal mask. */
--typedef jmp_buf sigjmp_buf;
-+typedef struct __jmp_buf_tag sigjmp_buf[1];
-
- /* Store the calling environment in ENV, also saving the
- signal mask if SAVEMASK is nonzero. Return 0. */
-@@ -101,4 +112,16 @@
-
- __END_DECLS
-
-+#ifdef _LIBC
-+extern void __longjmp(__jmp_buf __env, int __val) attribute_noreturn;
-+libc_hidden_proto(__longjmp)
-+extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
-+extern __typeof(siglongjmp) __libc_siglongjmp attribute_noreturn;
-+extern void _longjmp_unwind(jmp_buf __env, int __val);
-+libc_hidden_proto(_longjmp_unwind)
-+extern int __sigjmp_save(sigjmp_buf __env, int __savemask) attribute_hidden;
-+/* We use the normal longjmp for unwinding */
-+# define __libc_unwind_longjmp(buf, val) __libc_longjmp(buf, val)
-+#endif
-+
- #endif /* setjmp.h */
-diff -Nur uClibc-0.9.33.2/include/sgtty.h uClibc-git/include/sgtty.h
---- uClibc-0.9.33.2/include/sgtty.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sgtty.h 2014-07-25 20:36:05.161326070 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SGTTY_H
- #define _SGTTY_H 1
-@@ -38,7 +37,7 @@
- extern int gtty (int __fd, struct sgttyb *__params) __THROW;
-
- /* Set the terminal parameters associated with FD to *PARAMS. */
--extern int stty (int __fd, __const struct sgttyb *__params) __THROW;
-+extern int stty (int __fd, const struct sgttyb *__params) __THROW;
- #endif
-
-
-diff -Nur uClibc-0.9.33.2/include/shadow.h uClibc-git/include/shadow.h
---- uClibc-0.9.33.2/include/shadow.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/shadow.h 2014-07-25 20:36:05.161326070 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Declaration of types and functions for shadow password suite. */
-
-@@ -84,7 +83,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern struct spwd *getspnam (__const char *__name);
-+extern struct spwd *getspnam (const char *__name);
-
- /* Read shadow entry from STRING.
-
-@@ -92,7 +91,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern struct spwd *sgetspent (__const char *__string);
-+extern struct spwd *sgetspent (const char *__string);
-
- /* Read next shadow entry from STREAM.
-
-@@ -108,7 +107,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int putspent (__const struct spwd *__p, FILE *__stream);
-+extern int putspent (const struct spwd *__p, FILE *__stream);
-
-
- #ifdef __USE_MISC
-@@ -122,12 +121,12 @@
- size_t __buflen, struct spwd **__result);
- libc_hidden_proto(getspent_r)
-
--extern int getspnam_r (__const char *__name, struct spwd *__result_buf,
-+extern int getspnam_r (const char *__name, struct spwd *__result_buf,
- char *__buffer, size_t __buflen,
- struct spwd **__result);
- libc_hidden_proto(getspnam_r)
-
--extern int sgetspent_r (__const char *__string, struct spwd *__result_buf,
-+extern int sgetspent_r (const char *__string, struct spwd *__result_buf,
- char *__buffer, size_t __buflen,
- struct spwd **__result);
- libc_hidden_proto(sgetspent_r)
-diff -Nur uClibc-0.9.33.2/include/signal.h uClibc-git/include/signal.h
---- uClibc-0.9.33.2/include/signal.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/signal.h 2014-07-25 20:36:05.165326090 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-2003, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1991-2003, 2004, 2007, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.14 Signal handling <signal.h>
-@@ -87,15 +86,27 @@
- typedef __pid_t pid_t;
- # define __pid_t_defined
- # endif
-+#endif
-+#ifdef __USE_XOPEN
- # ifndef __uid_t_defined
- typedef __uid_t uid_t;
- # define __uid_t_defined
- # endif
- #endif /* Unix98 */
-
-+#if defined __USE_POSIX199309 && defined __UCLIBC_HAS_REALTIME__
-+/* We need `struct timespec' later on. */
-+# define __need_timespec
-+# include <time.h>
-+
-+/* Get the `siginfo_t' type plus the needed symbols. */
-+# include <bits/siginfo.h>
-+#endif
-+
-
- /* Type of a signal handler. */
- typedef void (*__sighandler_t) (int);
-+
- #if defined __UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL__
- /* The X/Open definition of `signal' specifies the SVID semantic. Use
- the additional function `sysv_signal' when X/Open compatibility is
-@@ -156,17 +167,23 @@
- libc_hidden_proto(raise)
- __END_NAMESPACE_STD
-
--#ifdef __USE_SVID
-+#if 0 /*def __USE_SVID*/
- /* SVID names for the same things. */
- extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
- __THROW;
- extern int gsignal (int __sig) __THROW;
- #endif /* Use SVID. */
-
--#ifdef __USE_MISC
-+/* glibc guards the next two wrong with __USE_XOPEN2K */
-+#if defined __USE_MISC || defined __USE_XOPEN2K8
- /* Print a message describing the meaning of the given signal number. */
--extern void psignal (int __sig, __const char *__s);
--#endif /* Use misc. */
-+extern void psignal (int __sig, const char *__s);
-+#endif /* Use misc or POSIX 2008. */
-+
-+#if 0 /*def __USE_XOPEN2K8*/
-+/* Print a message describing the meaning of the given signal information. */
-+extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
-+#endif /* POSIX 2008. */
-
- #ifdef __UCLIBC_SUSV4_LEGACY__
- /* The `sigpause' function has two different interfaces. The original
-@@ -177,23 +194,25 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int __sigpause (int __sig_or_mask, int __is_sig);
--libc_hidden_proto(__sigpause)
-+/*extern int __sigpause (int __sig_or_mask, int __is_sig);*/
-
- #ifdef __FAVOR_BSD
- /* Set the mask of blocked signals to MASK,
- wait for a signal to arrive, and then restore the mask. */
--extern int sigpause (int __mask) __THROW __attribute_deprecated__;
--# define sigpause(mask) __sigpause ((mask), 0)
-+/*extern int sigpause (int __mask) __THROW __attribute_deprecated__;
-+# define sigpause(mask) __sigpause ((mask), 0)*/
-+/* uClibc note: BSD sigpause is available as __bsd_sigpause.
-+ * It is intentionally not prototyped */
- #else
- # ifdef __USE_XOPEN
- /* Remove a signal from the signal mask and suspend the process. */
--# define sigpause(sig) __sigpause ((sig), 1)
-+extern int sigpause(int __sig);
-+/*# define sigpause(sig) __sigpause ((sig), 1)*/
- # endif
- #endif
- #endif /* __UCLIBC_SUSV4_LEGACY__ */
-
--#ifdef __USE_BSD
-+#if 0 /*def __USE_BSD*/
- /* None of the following functions should be used anymore. They are here
- only for compatibility. A single word (`int') is not guaranteed to be
- enough to hold a complete signal mask and therefore these functions
-@@ -203,14 +222,10 @@
- # define sigmask(sig) __sigmask(sig)
-
- /* Block signals in MASK, returning the old mask. */
--extern int sigblock (int __mask) __THROW;
--/* collides with libc_hidden_proto: __attribute_deprecated__; */
--libc_hidden_proto(sigblock)
-+extern int sigblock (int __mask) __THROW __attribute_deprecated__;
-
- /* Set the mask of blocked signals to MASK, returning the old mask. */
--extern int sigsetmask (int __mask) __THROW;
--/* collides with libc_hidden_proto: __attribute_deprecated__; */
--libc_hidden_proto(sigsetmask)
-+extern int sigsetmask (int __mask) __THROW __attribute_deprecated__;
-
- /* Return currently selected signal mask. */
- extern int siggetmask (void) __THROW __attribute_deprecated__;
-@@ -228,22 +243,11 @@
-
- #ifdef __USE_POSIX
-
--# ifdef __USE_POSIX199309
--/* We need `struct timespec' later on. */
--# define __need_timespec
--# include <time.h>
--
--/* Get the `siginfo_t' type plus the needed symbols. */
--# include <bits/siginfo.h>
--# endif
--
- /* Clear all signals from SET. */
- extern int sigemptyset (sigset_t *__set) __THROW __nonnull ((1));
--libc_hidden_proto(sigemptyset)
-
- /* Set all signals in SET. */
- extern int sigfillset (sigset_t *__set) __THROW __nonnull ((1));
--libc_hidden_proto(sigfillset)
-
- /* Add SIGNO to SET. */
- extern int sigaddset (sigset_t *__set, int __signo) __THROW __nonnull ((1));
-@@ -254,20 +258,20 @@
- libc_hidden_proto(sigdelset)
-
- /* Return 1 if SIGNO is in SET, 0 if not. */
--extern int sigismember (__const sigset_t *__set, int __signo)
-+extern int sigismember (const sigset_t *__set, int __signo)
- __THROW __nonnull ((1));
-
- # ifdef __USE_GNU
- /* Return non-empty value is SET is not empty. */
--extern int sigisemptyset (__const sigset_t *__set) __THROW __nonnull ((1));
-+extern int sigisemptyset (const sigset_t *__set) __THROW __nonnull ((1));
-
- /* Build new signal set by combining the two inputs set using logical AND. */
--extern int sigandset (sigset_t *__set, __const sigset_t *__left,
-- __const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
-+extern int sigandset (sigset_t *__set, const sigset_t *__left,
-+ const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
-
- /* Build new signal set by combining the two inputs set using logical OR. */
--extern int sigorset (sigset_t *__set, __const sigset_t *__left,
-- __const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
-+extern int sigorset (sigset_t *__set, const sigset_t *__left,
-+ const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
- # endif /* GNU */
-
- /* Get the system-specific definitions of `struct sigaction'
-@@ -275,7 +279,7 @@
- # include <bits/sigaction.h>
-
- /* Get and/or change the set of blocked signals. */
--extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
-+extern int sigprocmask (int __how, const sigset_t *__restrict __set,
- sigset_t *__restrict __oset) __THROW;
- libc_hidden_proto(sigprocmask)
-
-@@ -284,14 +288,50 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int sigsuspend (__const sigset_t *__set) __nonnull ((1));
-+extern int sigsuspend (const sigset_t *__set) __nonnull ((1));
-+#ifdef _LIBC
-+extern __typeof(sigsuspend) __sigsuspend_nocancel attribute_hidden;
- libc_hidden_proto(sigsuspend)
-+#endif
-
- /* Get and/or set the action for signal SIG. */
--extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
-+extern int sigaction (int __sig, const struct sigaction *__restrict __act,
- struct sigaction *__restrict __oact) __THROW;
-+#ifdef _LIBC
-+# if 0 /* this is in headers */
-+/* In uclibc, userspace struct sigaction is identical to
-+ * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
-+ * See sigaction.h
-+ */
-+struct old_kernel_sigaction;
-+extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
-+ struct old_kernel_sigaction *) attribute_hidden;
-+# else /* this is how the function is built */
-+extern __typeof(sigaction) __syscall_sigaction attribute_hidden;
-+# endif
-+# define __need_size_t
-+# include <stddef.h>
-+/* candidate for attribute_hidden, if NPTL would behave */
-+extern int __syscall_rt_sigaction(int, const struct sigaction *,
-+ struct sigaction *, size_t)
-+# ifndef __UCLIBC_HAS_THREADS_NATIVE__
-+ attribute_hidden
-+# endif
-+ ;
-+extern __typeof(sigaction) __libc_sigaction;
- libc_hidden_proto(sigaction)
-
-+# ifdef __mips__
-+# define _KERNEL_NSIG_WORDS (_NSIG / _MIPS_SZLONG)
-+typedef struct {
-+ unsigned long sig[_KERNEL_NSIG_WORDS];
-+} kernel_sigset_t;
-+# define __SYSCALL_SIGSET_T_SIZE (sizeof(kernel_sigset_t))
-+# else
-+# define __SYSCALL_SIGSET_T_SIZE (_NSIG / 8)
-+# endif
-+#endif
-+
- /* Put in SET all signals that are blocked and waiting to be delivered. */
- extern int sigpending (sigset_t *__set) __THROW __nonnull ((1));
-
-@@ -300,7 +340,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
-+extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
- __nonnull ((1, 2));
-
- # if defined __USE_POSIX199309 && defined __UCLIBC_HAS_REALTIME__
-@@ -308,30 +348,29 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int sigwaitinfo (__const sigset_t *__restrict __set,
-+extern int sigwaitinfo (const sigset_t *__restrict __set,
- siginfo_t *__restrict __info) __nonnull ((1));
- #ifdef _LIBC
- extern __typeof(sigwaitinfo) __sigwaitinfo attribute_hidden;
- #endif
--libc_hidden_proto(sigwaitinfo)
-
- /* Select any of pending signals from SET and place information in INFO.
- Wait the time specified by TIMEOUT if no signal is pending.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int sigtimedwait (__const sigset_t *__restrict __set,
-+extern int sigtimedwait (const sigset_t *__restrict __set,
- siginfo_t *__restrict __info,
-- __const struct timespec *__restrict __timeout)
-+ const struct timespec *__restrict __timeout)
- __nonnull ((1));
- #ifdef _LIBC
--extern __typeof(sigtimedwait) __sigtimedwait attribute_hidden;
--#endif
-+extern __typeof(sigtimedwait) __sigtimedwait_nocancel attribute_hidden;
- libc_hidden_proto(sigtimedwait)
-+#endif
-
- /* Send signal SIG to the process PID. Associate data in VAL with the
- signal. */
--extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
-+extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
- __THROW;
- # endif /* Use POSIX 199306. */
-
-@@ -343,9 +382,10 @@
- /* Names of the signals. This variable exists only for compatibility.
- Use `strsignal' instead (see <string.h>). */
- # define _sys_siglist sys_siglist
--extern __const char *__const sys_siglist[_NSIG];
-+extern const char *const sys_siglist[_NSIG];
- # endif
-
-+#ifndef __UCLIBC_STRICT_HEADERS__
- /* Structure passed to `sigvec'. */
- struct sigvec
- {
-@@ -360,27 +400,34 @@
- # define SV_ONSTACK (1 << 0)/* Take the signal on the signal stack. */
- # define SV_INTERRUPT (1 << 1)/* Do not restart system calls. */
- # define SV_RESETHAND (1 << 2)/* Reset handler to SIG_DFL on receipt. */
-+#endif
-
-
-+#if 0
- /* If VEC is non-NULL, set the handler for SIG to the `sv_handler' member
- of VEC. The signals in `sv_mask' will be blocked while the handler runs.
- If the SV_RESETHAND bit is set in `sv_flags', the handler for SIG will be
- reset to SIG_DFL before `sv_handler' is entered. If OVEC is non-NULL,
- it is filled in with the old information for SIG. */
--extern int sigvec (int __sig, __const struct sigvec *__vec,
-+extern int sigvec (int __sig, const struct sigvec *__vec,
- struct sigvec *__ovec) __THROW;
-+#endif
-
-
- /* Get machine-dependent `struct sigcontext' and signal subcodes. */
- # include <bits/sigcontext.h>
-
-+#if 0
- /* Restore the state saved in SCP. */
- extern int sigreturn (struct sigcontext *__scp) __THROW;
-+#endif
-
- #endif /* use BSD. */
-
-
- #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-+# define __need_size_t
-+# include <stddef.h>
-
- # ifdef __UCLIBC_SUSV4_LEGACY__
- /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
-@@ -406,7 +453,7 @@
-
- /* Alternate signal handler stack interface.
- This interface should always be preferred over `sigstack'. */
--extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
-+extern int sigaltstack (const struct sigaltstack *__restrict __ss,
- struct sigaltstack *__restrict __oss) __THROW;
-
- #endif /* use BSD or X/Open Unix. */
-@@ -442,6 +489,13 @@
- /* Return number of available real-time signal with lowest priority. */
- extern int __libc_current_sigrtmax (void) __THROW;
-
-+#ifdef _LIBC
-+extern sigset_t _sigintr attribute_hidden;
-+/* simplified version without parameter checking */
-+# include <string.h>
-+# undef __sigemptyset
-+# define __sigemptyset(ss) (memset(ss, '\0', sizeof(sigset_t)), 0)
-+#endif
- #endif /* signal.h */
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/spawn.h uClibc-git/include/spawn.h
---- uClibc-0.9.33.2/include/spawn.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/include/spawn.h 2014-07-25 20:36:05.165326090 +0200
-@@ -0,0 +1,289 @@
-+/* Definitions for POSIX spawn interface.
-+ Copyright (C) 2000,2003,2004,2009,2011,2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SPAWN_H
-+#define _SPAWN_H 1
-+
-+#include <features.h>
-+#include <sched.h>
-+#define __need_sigset_t
-+#include <signal.h>
-+#include <sys/types.h>
-+
-+/* For the tiny inlines (errno/free/memset). */
-+#include <errno.h>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+
-+/* Data structure to contain attributes for thread creation. */
-+typedef struct
-+{
-+ short int __flags;
-+ pid_t __pgrp;
-+ sigset_t __sd;
-+ sigset_t __ss;
-+ struct sched_param __sp;
-+ int __policy;
-+ int __pad[16];
-+} posix_spawnattr_t;
-+
-+
-+/* Data structure to contain information about the actions to be
-+ performed in the new process with respect to file descriptors. */
-+typedef struct
-+{
-+ int __allocated;
-+ int __used;
-+ struct __spawn_action *__actions;
-+ int __pad[16];
-+} posix_spawn_file_actions_t;
-+
-+
-+/* Flags to be set in the `posix_spawnattr_t'. */
-+#define POSIX_SPAWN_RESETIDS 0x01
-+#define POSIX_SPAWN_SETPGROUP 0x02
-+#define POSIX_SPAWN_SETSIGDEF 0x04
-+#define POSIX_SPAWN_SETSIGMASK 0x08
-+#define POSIX_SPAWN_SETSCHEDPARAM 0x10
-+#define POSIX_SPAWN_SETSCHEDULER 0x20
-+#ifdef __USE_GNU
-+# define POSIX_SPAWN_USEVFORK 0x40
-+#endif
-+
-+
-+#define __POSIX_SPAWN_MASK (POSIX_SPAWN_RESETIDS \
-+ | POSIX_SPAWN_SETPGROUP \
-+ | POSIX_SPAWN_SETSIGDEF \
-+ | POSIX_SPAWN_SETSIGMASK \
-+ | POSIX_SPAWN_SETSCHEDPARAM \
-+ | POSIX_SPAWN_SETSCHEDULER \
-+ | POSIX_SPAWN_USEVFORK)
-+
-+__BEGIN_DECLS
-+
-+/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
-+ Before running the process perform the actions described in FILE-ACTIONS.
-+
-+ This function is a possible cancellation point and therefore not
-+ marked with __THROW. */
-+extern int posix_spawn (pid_t *__restrict __pid,
-+ const char *__restrict __path,
-+ const posix_spawn_file_actions_t *__restrict
-+ __file_actions,
-+ const posix_spawnattr_t *__restrict __attrp,
-+ char *const __argv[__restrict_arr],
-+ char *const __envp[__restrict_arr]);
-+
-+/* Similar to `posix_spawn' but search for FILE in the PATH.
-+
-+ This function is a possible cancellation point and therefore not
-+ marked with __THROW. */
-+extern int posix_spawnp (pid_t *__pid, const char *__file,
-+ const posix_spawn_file_actions_t *__file_actions,
-+ const posix_spawnattr_t *__attrp,
-+ char *const __argv[], char *const __envp[]);
-+
-+
-+/* Initialize data structure with attributes for `spawn' to default values. */
-+static inline
-+int posix_spawnattr_init (posix_spawnattr_t *__attr)
-+{
-+ memset (__attr, 0, sizeof (*__attr));
-+ return 0;
-+}
-+
-+/* Free resources associated with ATTR. */
-+static inline
-+int posix_spawnattr_destroy (posix_spawnattr_t *__attr)
-+{
-+ return 0;
-+}
-+
-+/* Store signal mask for signals with default handling from ATTR in
-+ SIGDEFAULT. */
-+static inline
-+int posix_spawnattr_getsigdefault (const posix_spawnattr_t *
-+ __restrict __attr,
-+ sigset_t *__restrict __sigdefault)
-+{
-+ memcpy (__sigdefault, &__attr->__sd, sizeof (sigset_t));
-+ return 0;
-+}
-+
-+/* Set signal mask for signals with default handling in ATTR to SIGDEFAULT. */
-+static inline
-+int posix_spawnattr_setsigdefault (posix_spawnattr_t *__restrict __attr,
-+ const sigset_t *__restrict
-+ __sigdefault)
-+{
-+ memcpy (&__attr->__sd, __sigdefault, sizeof (sigset_t));
-+ return 0;
-+}
-+
-+/* Store signal mask for the new process from ATTR in SIGMASK. */
-+static inline
-+int posix_spawnattr_getsigmask (const posix_spawnattr_t *__restrict
-+ __attr,
-+ sigset_t *__restrict __sigmask)
-+{
-+ memcpy (__sigmask, &__attr->__ss, sizeof (sigset_t));
-+ return 0;
-+}
-+
-+/* Set signal mask for the new process in ATTR to SIGMASK. */
-+static inline
-+int posix_spawnattr_setsigmask (posix_spawnattr_t *__restrict __attr,
-+ const sigset_t *__restrict __sigmask)
-+{
-+ memcpy (&__attr->__ss, __sigmask, sizeof (sigset_t));
-+ return 0;
-+}
-+
-+/* Get flag word from the attribute structure. */
-+static inline
-+int posix_spawnattr_getflags (const posix_spawnattr_t *__restrict
-+ __attr,
-+ short int *__restrict __flags)
-+{
-+ *__flags = __attr->__flags;
-+ return 0;
-+}
-+
-+/* Store flags in the attribute structure. */
-+static inline
-+int posix_spawnattr_setflags (posix_spawnattr_t *_attr,
-+ short int __flags)
-+{
-+ /* Check no invalid bits are set. */
-+ if (__flags & ~__POSIX_SPAWN_MASK)
-+ return EINVAL;
-+
-+ _attr->__flags = __flags;
-+ return 0;
-+}
-+
-+/* Get process group ID from the attribute structure. */
-+static inline
-+int posix_spawnattr_getpgroup (const posix_spawnattr_t *__restrict
-+ __attr, pid_t *__restrict __pgroup)
-+{
-+ *__pgroup = __attr->__pgrp;
-+ return 0;
-+}
-+
-+/* Store process group ID in the attribute structure. */
-+static inline
-+int posix_spawnattr_setpgroup (posix_spawnattr_t *__attr,
-+ pid_t __pgroup)
-+{
-+ __attr->__pgrp = __pgroup;
-+ return 0;
-+}
-+
-+/* Get scheduling policy from the attribute structure. */
-+static inline
-+int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *
-+ __restrict __attr,
-+ int *__restrict __schedpolicy)
-+{
-+ *__schedpolicy = __attr->__policy;
-+ return 0;
-+}
-+
-+/* Store scheduling policy in the attribute structure. */
-+static inline
-+int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
-+ int __schedpolicy)
-+{
-+ switch (__schedpolicy) {
-+ case SCHED_OTHER:
-+ case SCHED_FIFO:
-+ case SCHED_RR:
-+ break;
-+ default:
-+ return EINVAL;
-+ }
-+
-+ __attr->__policy = __schedpolicy;
-+ return 0;
-+}
-+
-+/* Get scheduling parameters from the attribute structure. */
-+static inline
-+int posix_spawnattr_getschedparam (const posix_spawnattr_t *
-+ __restrict __attr,
-+ struct sched_param *__restrict
-+ __schedparam)
-+{
-+ memcpy (__schedparam, &__attr->__sp, sizeof (__attr->__sp));
-+ return 0;
-+}
-+
-+/* Store scheduling parameters in the attribute structure. */
-+static inline
-+int posix_spawnattr_setschedparam (posix_spawnattr_t *__restrict __attr,
-+ const struct sched_param *
-+ __restrict __schedparam)
-+{
-+ __attr->__sp = *__schedparam;
-+ return 0;
-+}
-+
-+/* Initialize data structure for file attribute for `spawn' call. */
-+static inline
-+int posix_spawn_file_actions_init (posix_spawn_file_actions_t *
-+ __file_actions)
-+{
-+ memset (__file_actions, 0, sizeof (*__file_actions));
-+ return 0;
-+}
-+
-+/* Free resources associated with FILE-ACTIONS. */
-+static inline
-+int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *
-+ __file_actions)
-+{
-+ free (__file_actions->__actions);
-+ return 0;
-+}
-+
-+/* Add an action to FILE-ACTIONS which tells the implementation to call
-+ `open' for the given file during the `spawn' call. */
-+extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *
-+ __restrict __file_actions,
-+ int __fd,
-+ const char *__restrict __path,
-+ int __oflag, mode_t __mode)
-+ __THROW;
-+
-+/* Add an action to FILE-ACTIONS which tells the implementation to call
-+ `close' for the given file descriptor during the `spawn' call. */
-+extern int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *
-+ __file_actions, int __fd)
-+ __THROW;
-+
-+/* Add an action to FILE-ACTIONS which tells the implementation to call
-+ `dup2' for the given file descriptors during the `spawn' call. */
-+extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
-+ __file_actions,
-+ int __fd, int __newfd) __THROW;
-+
-+__END_DECLS
-+
-+#endif /* spawn.h */
-diff -Nur uClibc-0.9.33.2/include/stdint.h uClibc-git/include/stdint.h
---- uClibc-0.9.33.2/include/stdint.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/stdint.h 2014-07-25 20:36:05.165326090 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99: 7.18 Integer types <stdint.h>
-diff -Nur uClibc-0.9.33.2/include/stdio_ext.h uClibc-git/include/stdio_ext.h
---- uClibc-0.9.33.2/include/stdio_ext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/stdio_ext.h 2014-07-25 20:36:05.165326090 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This header contains the same definitions as the header of the same name
- on Sun's Solaris OS. */
-diff -Nur uClibc-0.9.33.2/include/stdio.h uClibc-git/include/stdio.h
---- uClibc-0.9.33.2/include/stdio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/stdio.h 2014-07-25 20:36:05.165326090 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.19 Input/output <stdio.h>
-@@ -142,16 +141,17 @@
-
- __BEGIN_NAMESPACE_STD
- /* Remove file FILENAME. */
--extern int remove (__const char *__filename) __THROW;
-+extern int remove (const char *__filename) __THROW;
- libc_hidden_proto(remove)
- /* Rename file OLD to NEW. */
--extern int rename (__const char *__old, __const char *__new) __THROW;
-+extern int rename (const char *__old, const char *__new) __THROW;
- __END_NAMESPACE_STD
-
- #ifdef __USE_ATFILE
- /* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */
--extern int renameat (int __oldfd, __const char *__old, int __newfd,
-- __const char *__new) __THROW;
-+extern int renameat (int __oldfd, const char *__old, int __newfd,
-+ const char *__new) __THROW;
-+libc_hidden_proto(renameat)
- #endif
-
- __BEGIN_NAMESPACE_STD
-@@ -194,7 +194,7 @@
- If not and if DIR is not NULL, that value is checked. If that fails,
- P_tmpdir is tried and finally "/tmp". The storage for the filename
- is allocated by `malloc'. */
--extern char *tempnam (__const char *__dir, __const char *__pfx)
-+extern char *tempnam (const char *__dir, const char *__pfx)
- __THROW __attribute_malloc__ __wur;
- #endif
-
-@@ -242,23 +242,23 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern FILE *fopen (__const char *__restrict __filename,
-- __const char *__restrict __modes) __wur;
-+extern FILE *fopen (const char *__restrict __filename,
-+ const char *__restrict __modes) __wur;
- libc_hidden_proto(fopen)
- /* Open a file, replacing an existing stream with it.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern FILE *freopen (__const char *__restrict __filename,
-- __const char *__restrict __modes,
-+extern FILE *freopen (const char *__restrict __filename,
-+ const char *__restrict __modes,
- FILE *__restrict __stream) __wur;
- #else
- # ifdef __REDIRECT
--extern FILE *__REDIRECT (fopen, (__const char *__restrict __filename,
-- __const char *__restrict __modes), fopen64)
-+extern FILE *__REDIRECT (fopen, (const char *__restrict __filename,
-+ const char *__restrict __modes), fopen64)
- __wur;
--extern FILE *__REDIRECT (freopen, (__const char *__restrict __filename,
-- __const char *__restrict __modes,
-+extern FILE *__REDIRECT (freopen, (const char *__restrict __filename,
-+ const char *__restrict __modes,
- FILE *__restrict __stream), freopen64)
- __wur;
- # else
-@@ -268,38 +268,39 @@
- #endif
- __END_NAMESPACE_STD
- #ifdef __USE_LARGEFILE64
--extern FILE *fopen64 (__const char *__restrict __filename,
-- __const char *__restrict __modes) __wur;
-+extern FILE *fopen64 (const char *__restrict __filename,
-+ const char *__restrict __modes) __wur;
- libc_hidden_proto(fopen64)
--extern FILE *freopen64 (__const char *__restrict __filename,
-- __const char *__restrict __modes,
-+extern FILE *freopen64 (const char *__restrict __filename,
-+ const char *__restrict __modes,
- FILE *__restrict __stream) __wur;
- #endif
-
- #ifdef __USE_POSIX
- /* Create a new stream that refers to an existing system file descriptor. */
--extern FILE *fdopen (int __fd, __const char *__modes) __THROW __wur;
-+extern FILE *fdopen (int __fd, const char *__modes) __THROW __wur;
- libc_hidden_proto(fdopen)
- #endif
-
--#ifdef __USE_GNU
- #ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
-+#ifdef __USE_GNU
- /* Create a new stream that refers to the given magic cookie,
- and uses the given functions for input and output. */
- extern FILE *fopencookie (void *__restrict __magic_cookie,
-- __const char *__restrict __modes,
-+ const char *__restrict __modes,
- _IO_cookie_io_functions_t __io_funcs) __THROW __wur;
- libc_hidden_proto(fopencookie)
-+#endif
-
-+#ifdef __USE_XOPEN2K8
- /* Create a new stream that refers to a memory buffer. */
--extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
-+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
- __THROW __wur;
-
- /* Open a stream that writes into a malloc'd buffer that is expanded as
- necessary. *BUFLOC and *SIZELOC are updated with the buffer's location
- and the number of characters written on fflush or fclose. */
--extern FILE *open_memstream (char **__restrict __bufloc,
-- size_t *__restrict __sizeloc) __THROW __wur;
-+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW __wur;
- libc_hidden_proto(open_memstream)
- #endif
- #endif
-@@ -334,17 +335,17 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern int fprintf (FILE *__restrict __stream,
-- __const char *__restrict __format, ...);
-+ const char *__restrict __format, ...);
- libc_hidden_proto(fprintf)
- /* Write formatted output to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int printf (__const char *__restrict __format, ...);
-+extern int printf (const char *__restrict __format, ...);
- libc_hidden_proto(printf)
- /* Write formatted output to S. */
- extern int sprintf (char *__restrict __s,
-- __const char *__restrict __format, ...)
-+ const char *__restrict __format, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
- libc_hidden_proto(sprintf)
-
-@@ -352,16 +353,16 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
-+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg);
- libc_hidden_proto(vfprintf)
- /* Write formatted output to stdout from argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
-+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
- /* Write formatted output to S from argument list ARG. */
--extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
-+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg)
- __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
- __END_NAMESPACE_STD
-@@ -370,12 +371,12 @@
- __BEGIN_NAMESPACE_C99
- /* Maximum chars of output to write in MAXLEN. */
- extern int snprintf (char *__restrict __s, size_t __maxlen,
-- __const char *__restrict __format, ...)
-+ const char *__restrict __format, ...)
- __THROW __attribute__ ((__format__ (__printf__, 3, 4)));
- libc_hidden_proto(snprintf)
-
- extern int vsnprintf (char *__restrict __s, size_t __maxlen,
-- __const char *__restrict __format, __gnuc_va_list __arg)
-+ const char *__restrict __format, __gnuc_va_list __arg)
- __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
- libc_hidden_proto(vsnprintf)
- __END_NAMESPACE_C99
-@@ -384,31 +385,33 @@
- #ifdef __USE_GNU
- /* Write formatted output to a string dynamically allocated with `malloc'.
- Store the address of the string in *PTR. */
--extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
-+extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
- __gnuc_va_list __arg)
- __THROW __attribute__ ((__format__ (__printf__, 2, 0))) __wur;
- libc_hidden_proto(vasprintf)
- #if 0 /* uClibc: disabled */
- extern int __asprintf (char **__restrict __ptr,
-- __const char *__restrict __fmt, ...)
-+ const char *__restrict __fmt, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
- #endif
- extern int asprintf (char **__restrict __ptr,
-- __const char *__restrict __fmt, ...)
-+ const char *__restrict __fmt, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
- libc_hidden_proto(asprintf)
-+#endif
-
-+#ifdef __USE_XOPEN2K8
- /* Write formatted output to a file descriptor.
-
- These functions are not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation they are cancellation points and
- therefore not marked with __THROW. */
--extern int vdprintf (int __fd, __const char *__restrict __fmt,
-+extern int vdprintf (int __fd, const char *__restrict __fmt,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__printf__, 2, 0)));
- libc_hidden_proto(vdprintf)
--extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
-+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
- #endif
-
-@@ -419,18 +422,18 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern int fscanf (FILE *__restrict __stream,
-- __const char *__restrict __format, ...)
-+ const char *__restrict __format, ...)
- __attribute__ ((__format__ (__scanf__, 2, 3))) __wur;
- libc_hidden_proto(fscanf)
- /* Read formatted input from stdin.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int scanf (__const char *__restrict __format, ...)
-+extern int scanf (const char *__restrict __format, ...)
- __attribute__ ((__format__ (__scanf__, 1, 2))) __wur;
- /* Read formatted input from S. */
--extern int sscanf (__const char *__restrict __s,
-- __const char *__restrict __format, ...)
-+extern int sscanf (const char *__restrict __s,
-+ const char *__restrict __format, ...)
- __THROW __attribute__ ((__format__ (__scanf__, 2, 3)));
- libc_hidden_proto(sscanf)
- __END_NAMESPACE_STD
-@@ -441,7 +444,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
-+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
- __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 2, 0))) __wur;
- libc_hidden_proto(vfscanf)
-@@ -450,12 +453,12 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
-+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
-
- /* Read formatted input from S into argument list ARG. */
--extern int vsscanf (__const char *__restrict __s,
-- __const char *__restrict __format, __gnuc_va_list __arg)
-+extern int vsscanf (const char *__restrict __s,
-+ const char *__restrict __format, __gnuc_va_list __arg)
- __THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
- libc_hidden_proto(vsscanf)
- __END_NAMESPACE_C99
-@@ -491,9 +494,6 @@
- libc_hidden_proto(getc_unlocked)
- extern int getchar_unlocked (void);
- libc_hidden_proto(getchar_unlocked)
--
--/* SUSv3 allows getc_unlocked to be a macro */
--#define getc_unlocked(_fp) __GETC_UNLOCKED(_fp)
- #endif /* Use POSIX or MISC. */
-
- #ifdef __USE_MISC
-@@ -519,7 +519,6 @@
- extern int fputc (int __c, FILE *__stream);
- libc_hidden_proto(fputc)
- extern int putc (int __c, FILE *__stream);
--libc_hidden_proto(putc)
-
- /* Write a character to stdout.
-
-@@ -540,7 +539,6 @@
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
- extern int fputc_unlocked (int __c, FILE *__stream);
--libc_hidden_proto(fputc_unlocked)
- #endif /* Use MISC. */
-
- #if defined __USE_POSIX || defined __USE_MISC
-@@ -549,11 +547,7 @@
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
- extern int putc_unlocked (int __c, FILE *__stream);
--libc_hidden_proto(putc_unlocked)
- extern int putchar_unlocked (int __c);
--
--/* SUSv3 allows putc_unlocked to be a macro */
--#define putc_unlocked(_ch, _fp) __PUTC_UNLOCKED(_ch, _fp)
- #endif /* Use POSIX or MISC. */
-
-
-@@ -597,7 +591,7 @@
- #endif
-
-
--#ifdef __USE_GNU
-+#ifdef __USE_XOPEN2K8
- /* Read up to (and including) a DELIMITER from STREAM into *LINEPTR
- (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
- NULL), pointing to *N characters of space. It is realloc'd as
-@@ -636,14 +630,14 @@
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
--extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
-+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
- libc_hidden_proto(fputs)
-
- /* Write a string, followed by a newline, to stdout.
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
--extern int puts (__const char *__s);
-+extern int puts (const char *__s);
-
-
- /* Push a character back onto the input buffer of STREAM.
-@@ -665,7 +659,7 @@
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
--extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
-+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __s) __wur;
- libc_hidden_proto(fwrite)
- __END_NAMESPACE_STD
-@@ -677,7 +671,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int fputs_unlocked (__const char *__restrict __s,
-+extern int fputs_unlocked (const char *__restrict __s,
- FILE *__restrict __stream);
- libc_hidden_proto(fputs_unlocked)
- #endif
-@@ -692,7 +686,7 @@
- extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) __wur;
- libc_hidden_proto(fread_unlocked)
--extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
-+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
- size_t __n, FILE *__restrict __stream) __wur;
- libc_hidden_proto(fwrite_unlocked)
- #endif
-@@ -760,13 +754,13 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
-+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
- #else
- # ifdef __REDIRECT
- extern int __REDIRECT (fgetpos, (FILE *__restrict __stream,
- fpos_t *__restrict __pos), fgetpos64);
- extern int __REDIRECT (fsetpos,
-- (FILE *__stream, __const fpos_t *__pos), fsetpos64);
-+ (FILE *__stream, const fpos_t *__pos), fsetpos64);
- # else
- # define fgetpos fgetpos64
- # define fsetpos fsetpos64
-@@ -780,7 +774,7 @@
- extern __off64_t ftello64 (FILE *__stream) __wur;
- libc_hidden_proto(ftello64)
- extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
--extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
-+extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
- #endif
-
- __BEGIN_NAMESPACE_STD
-@@ -805,7 +799,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern void perror (__const char *__s);
-+extern void perror (const char *__s);
- libc_hidden_proto(perror)
- __END_NAMESPACE_STD
-
-@@ -814,7 +808,7 @@
- function provides all the needed functionality. */
- #ifdef __USE_BSD
- extern int sys_nerr;
--extern __const char *__const sys_errlist[];
-+extern const char *const sys_errlist[];
- #endif
- #endif /* __UCLIBC_HAS_SYS_ERRLIST__ */
-
-@@ -838,7 +832,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern FILE *popen (__const char *__command, __const char *__modes) __wur;
-+extern FILE *popen (const char *__command, const char *__modes) __wur;
-
- /* Close a stream opened by popen and return the status of its child.
-
-@@ -860,18 +854,19 @@
- #endif /* Use X/Open, but not issue 6. */
-
-
--#if 0 /* def __USE_GNU uClibc note: not supported */
-+#if defined __USE_GNU && defined __UCLIBC_HAS_OBSTACK__
- struct obstack; /* See <obstack.h>. */
-
- /* Write formatted output to an obstack. */
- extern int obstack_printf (struct obstack *__restrict __obstack,
-- __const char *__restrict __format, ...)
-+ const char *__restrict __format, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
- extern int obstack_vprintf (struct obstack *__restrict __obstack,
-- __const char *__restrict __format,
-+ const char *__restrict __format,
- __gnuc_va_list __args)
- __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
--#endif /* Use GNU. */
-+libc_hidden_proto(obstack_vprintf)
-+#endif /* USE_GNU && UCLIBC_HAS_OBSTACK. */
-
-
- #if defined __USE_POSIX || defined __USE_MISC
-@@ -893,27 +888,31 @@
- declared here which do not belong into this header. But we have to
- follow. In GNU mode we don't do this nonsense. */
- # define __need_getopt
-+/* keep this on uClibc in bits/, we need it when GNU_GETOPT is disabled */
- # include <bits/getopt.h>
- #endif /* X/Open, but not issue 6 and not for GNU. */
-
- /* If we are compiling with optimizing read this file. It contains
- several optimizing inline functions and macros. */
-+
-+#ifdef __UCLIBC__
-+
- #define fgetc(_fp) __FGETC(_fp)
- #define fputc(_ch, _fp) __FPUTC(_ch, _fp)
-
-+#if defined __USE_POSIX || defined __USE_MISC
-+/* SUSv3 allows getc_unlocked to be a macro */
-+#define getc_unlocked(_fp) __GETC_UNLOCKED(_fp)
-+/* SUSv3 allows putc_unlocked to be a macro */
-+#define putc_unlocked(_ch, _fp) __PUTC_UNLOCKED(_ch, _fp)
-+#endif
-+
- #ifdef __USE_MISC
- #define fgetc_unlocked(_fp) __FGETC_UNLOCKED(_fp)
- #define fputc_unlocked(_ch, _fp) __FPUTC_UNLOCKED(_ch, _fp)
- #endif
-
--#ifndef __STDIO_GETC_MACRO
--#define __stdin stdin
--#endif
- #define getchar() __GETC(__stdin)
--
--#ifndef __STDIO_PUTC_MACRO
--#define __stdout stdout
--#endif
- #define putchar(_ch) __PUTC((_ch), __stdout)
-
- #if defined __USE_POSIX || defined __USE_MISC
-@@ -932,6 +931,8 @@
- #define ferror_unlocked(_fp) __FERROR_UNLOCKED(_fp)
- #endif
-
-+#endif
-+
- __END_DECLS
-
- #endif /* <stdio.h> included. */
-diff -Nur uClibc-0.9.33.2/include/stdlib.h uClibc-git/include/stdlib.h
---- uClibc-0.9.33.2/include/stdlib.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/stdlib.h 2014-07-25 20:36:05.165326090 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.20 General utilities <stdlib.h>
-@@ -155,22 +154,22 @@
- __BEGIN_NAMESPACE_STD
- #ifdef __UCLIBC_HAS_FLOATS__
- /* Convert a string to a floating-point number. */
--extern double atof (__const char *__nptr)
-+extern double atof (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
- #endif /* __UCLIBC_HAS_FLOATS__ */
- /* Convert a string to an integer. */
--extern int atoi (__const char *__nptr)
-+extern int atoi (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
- libc_hidden_proto(atoi)
- /* Convert a string to a long integer. */
--extern long int atol (__const char *__nptr)
-+extern long int atol (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
- __END_NAMESPACE_STD
-
- #if defined __USE_ISOC99 || defined __USE_MISC
- __BEGIN_NAMESPACE_C99
- /* Convert a string to a long long integer. */
--__extension__ extern long long int atoll (__const char *__nptr)
-+__extension__ extern long long int atoll (const char *__nptr)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
- __END_NAMESPACE_C99
- #endif
-@@ -178,7 +177,7 @@
- #ifdef __UCLIBC_HAS_FLOATS__
- __BEGIN_NAMESPACE_STD
- /* Convert a string to a floating-point number. */
--extern double strtod (__const char *__restrict __nptr,
-+extern double strtod (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(strtod)
-@@ -187,10 +186,10 @@
- #ifdef __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Likewise for `float' and `long double' sizes of floating-point numbers. */
--extern float strtof (__const char *__restrict __nptr,
-+extern float strtof (const char *__restrict __nptr,
- char **__restrict __endptr) __THROW __nonnull ((1)) __wur;
-
--extern long double strtold (__const char *__restrict __nptr,
-+extern long double strtold (const char *__restrict __nptr,
- char **__restrict __endptr)
- __THROW __nonnull ((1)) __wur;
- __END_NAMESPACE_C99
-@@ -199,12 +198,12 @@
-
- __BEGIN_NAMESPACE_STD
- /* Convert a string to a long integer. */
--extern long int strtol (__const char *__restrict __nptr,
-+extern long int strtol (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(strtol)
- /* Convert a string to an unsigned long integer. */
--extern unsigned long int strtoul (__const char *__restrict __nptr,
-+extern unsigned long int strtoul (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(strtoul)
-@@ -215,12 +214,12 @@
-
- /* Convert a string to a quadword integer. */
- __extension__
--extern quad_t strtoq (__const char *__restrict __nptr,
-+extern quad_t strtoq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1)) __wur;
- /* Convert a string to an unsigned quadword integer. */
- __extension__
--extern u_quad_t strtouq (__const char *__restrict __nptr,
-+extern u_quad_t strtouq (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1)) __wur;
- #endif /* GCC and use BSD. */
-@@ -229,13 +228,13 @@
- __BEGIN_NAMESPACE_C99
- /* Convert a string to a quadword integer. */
- __extension__
--extern long long int strtoll (__const char *__restrict __nptr,
-+extern long long int strtoll (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(strtoll)
- /* Convert a string to an unsigned quadword integer. */
- __extension__
--extern unsigned long long int strtoull (__const char *__restrict __nptr,
-+extern unsigned long long int strtoull (const char *__restrict __nptr,
- char **__restrict __endptr, int __base)
- __THROW __nonnull ((1)) __wur;
- __END_NAMESPACE_C99
-@@ -260,39 +259,39 @@
-
- /* Special versions of the functions above which take the locale to
- use as an additional parameter. */
--extern long int strtol_l (__const char *__restrict __nptr,
-+extern long int strtol_l (const char *__restrict __nptr,
- char **__restrict __endptr, int __base,
- __locale_t __loc) __THROW __nonnull ((1, 4)) __wur;
- libc_hidden_proto(strtol_l)
-
--extern unsigned long int strtoul_l (__const char *__restrict __nptr,
-+extern unsigned long int strtoul_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- int __base, __locale_t __loc)
- __THROW __nonnull ((1, 4)) __wur;
- libc_hidden_proto(strtoul_l)
-
- __extension__
--extern long long int strtoll_l (__const char *__restrict __nptr,
-+extern long long int strtoll_l (const char *__restrict __nptr,
- char **__restrict __endptr, int __base,
- __locale_t __loc)
- __THROW __nonnull ((1, 4)) __wur;
-
- __extension__
--extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
-+extern unsigned long long int strtoull_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- int __base, __locale_t __loc)
- __THROW __nonnull ((1, 4)) __wur;
-
- #ifdef __UCLIBC_HAS_FLOATS__
--extern double strtod_l (__const char *__restrict __nptr,
-+extern double strtod_l (const char *__restrict __nptr,
- char **__restrict __endptr, __locale_t __loc)
- __THROW __nonnull ((1, 3)) __wur;
-
--extern float strtof_l (__const char *__restrict __nptr,
-+extern float strtof_l (const char *__restrict __nptr,
- char **__restrict __endptr, __locale_t __loc)
- __THROW __nonnull ((1, 3)) __wur;
-
--extern long double strtold_l (__const char *__restrict __nptr,
-+extern long double strtold_l (const char *__restrict __nptr,
- char **__restrict __endptr,
- __locale_t __loc)
- __THROW __nonnull ((1, 3)) __wur;
-@@ -307,7 +306,7 @@
- extern char *l64a (long int __n) __THROW __wur;
-
- /* Read a number from a string S in base 64 as above. */
--extern long int a64l (__const char *__s)
-+extern long int a64l (const char *__s)
- __THROW __attribute_pure__ __nonnull ((1)) __wur;
-
- #endif /* Use SVID || extended X/Open. */
-@@ -564,14 +563,14 @@
-
- __BEGIN_NAMESPACE_STD
- /* Return the value of envariable NAME, or NULL if it doesn't exist. */
--extern char *getenv (__const char *__name) __THROW __nonnull ((1)) __wur;
-+extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(getenv)
- __END_NAMESPACE_STD
-
- #if 0
- /* This function is similar to the above but returns NULL if the
- programs is running with SUID or SGID enabled. */
--extern char *__secure_getenv (__const char *__name)
-+extern char *__secure_getenv (const char *__name)
- __THROW __nonnull ((1)) __wur;
- #endif
-
-@@ -585,12 +584,12 @@
- #if defined __USE_BSD || defined __USE_XOPEN2K
- /* Set NAME to VALUE in the environment.
- If REPLACE is nonzero, overwrite an existing value. */
--extern int setenv (__const char *__name, __const char *__value, int __replace)
-+extern int setenv (const char *__name, const char *__value, int __replace)
- __THROW __nonnull ((2));
- libc_hidden_proto(setenv)
-
- /* Remove the variable NAME from the environment. */
--extern int unsetenv (__const char *__name) __THROW;
-+extern int unsetenv (const char *__name) __THROW;
- libc_hidden_proto(unsetenv)
- #endif
-
-@@ -652,20 +651,43 @@
- extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur;
- #endif
-
-+#ifdef __USE_GNU
-+/* Generate a unique temporary file name from TEMPLATE similar to
-+ mkstemp. But allow the caller to pass additional flags which are
-+ used in the open call to create the file..
-+
-+ This function is a possible cancellation point and therefore not
-+ marked with __THROW. */
-+# ifndef __USE_FILE_OFFSET64
-+extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur;
-+# else
-+# ifdef __REDIRECT
-+extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64)
-+ __nonnull ((1)) __wur;
-+# else
-+# define mkostemp mkostemp64
-+# endif
-+# endif
-+# ifdef __USE_LARGEFILE64
-+extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur;
-+# endif
-+
-+#endif
-+
-
- __BEGIN_NAMESPACE_STD
- /* Execute the given line as a shell command.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int system (__const char *__command) __wur;
-+extern int system (const char *__command) __wur;
- __END_NAMESPACE_STD
-
-
- #ifdef __USE_GNU
- /* Return a malloc'd string containing the canonical absolute name of the
- existing named file. */
--extern char *canonicalize_file_name (__const char *__name)
-+extern char *canonicalize_file_name (const char *__name)
- __THROW __nonnull ((1)) __wur;
- #endif
-
-@@ -675,7 +697,7 @@
- PATH_MAX chars or more, returns null with `errno' set to
- ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
- returns the name in RESOLVED. */
--extern char *realpath (__const char *__restrict __name,
-+extern char *realpath (const char *__restrict __name,
- char *__restrict __resolved) __THROW __wur;
- libc_hidden_proto(realpath)
- #endif
-@@ -684,20 +706,20 @@
- /* Shorthand for type of comparison functions. */
- #ifndef __COMPAR_FN_T
- # define __COMPAR_FN_T
--typedef int (*__compar_fn_t) (__const void *, __const void *);
-+typedef int (*__compar_fn_t) (const void *, const void *);
-
- # ifdef __USE_GNU
- typedef __compar_fn_t comparison_fn_t;
- # endif
- #endif
- #ifdef __USE_GNU
--typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
-+typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
- #endif
-
- __BEGIN_NAMESPACE_STD
- /* Do a binary search for KEY in BASE, which consists of NMEMB elements
- of SIZE bytes each, using COMPAR to perform the comparisons. */
--extern void *bsearch (__const void *__key, __const void *__base,
-+extern void *bsearch (const void *__key, const void *__base,
- size_t __nmemb, size_t __size, __compar_fn_t __compar)
- __nonnull ((1, 2, 5)) __wur;
-
-@@ -807,11 +829,11 @@
- __BEGIN_NAMESPACE_STD
- /* Return the length of the multibyte character
- in S, which is no longer than N. */
--extern int mblen (__const char *__s, size_t __n) __THROW __wur;
-+extern int mblen (const char *__s, size_t __n) __THROW __wur;
- /* Return the length of the given multibyte character,
- putting its `wchar_t' representation in *PWC. */
- extern int mbtowc (wchar_t *__restrict __pwc,
-- __const char *__restrict __s, size_t __n) __THROW __wur;
-+ const char *__restrict __s, size_t __n) __THROW __wur;
- /* Put the multibyte character represented
- by WCHAR in S, returning its length. */
- extern int wctomb (char *__s, wchar_t __wchar) __THROW __wur;
-@@ -819,21 +841,21 @@
-
- /* Convert a multibyte string to a wide char string. */
- extern size_t mbstowcs (wchar_t *__restrict __pwcs,
-- __const char *__restrict __s, size_t __n) __THROW;
-+ const char *__restrict __s, size_t __n) __THROW;
- /* Convert a wide char string to multibyte string. */
- extern size_t wcstombs (char *__restrict __s,
-- __const wchar_t *__restrict __pwcs, size_t __n)
-+ const wchar_t *__restrict __pwcs, size_t __n)
- __THROW;
- __END_NAMESPACE_STD
- #endif /* __UCLIBC_HAS_WCHAR__ */
-
-
--#if 0 /*def __USE_SVID*/
-+#ifdef __USE_SVID
- /* Determine whether the string value of RESPONSE matches the affirmation
- or negative response expression as specified by the LC_MESSAGES category
- in the program's current locale. Returns 1 if affirmative, 0 if
- negative, and -1 if not matching. */
--extern int rpmatch (__const char *__response) __THROW __nonnull ((1)) __wur;
-+extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur;
- #endif
-
-
-@@ -845,7 +867,7 @@
- suboption. On exit *OPTIONP is set to the beginning of the next
- token or at the terminating NUL character. */
- extern int getsubopt (char **__restrict __optionp,
-- char *__const *__restrict __tokens,
-+ char *const *__restrict __tokens,
- char **__restrict __valuep)
- __THROW __nonnull ((1, 2, 3)) __wur;
- #endif
-@@ -854,7 +876,7 @@
- #ifdef __USE_XOPEN
- # if defined __UCLIBC_HAS_CRYPT__
- /* Setup DES tables according KEY. */
--extern void setkey (__const char *__key) __THROW __nonnull ((1));
-+extern void setkey (const char *__key) __THROW __nonnull ((1));
- # endif /* __UCLIBC_HAS_CRYPT__ */
- #endif
-
-@@ -864,7 +886,6 @@
- #ifdef __USE_XOPEN2K
- /* Return a master pseudo-terminal handle. */
- extern int posix_openpt (int __oflag) __wur;
--libc_hidden_proto(posix_openpt)
- #endif
-
- #ifdef __USE_XOPEN
-@@ -910,8 +931,8 @@
- #endif
-
- #ifdef __UCLIBC_HAS_ARC4RANDOM__
--#include <stdint.h>
--extern uint32_t arc4random(void);
-+# include <sys/types.h>
-+extern u_int32_t arc4random(void);
- extern void arc4random_stir(void);
- extern void arc4random_addrandom(unsigned char *, int);
- #endif
-diff -Nur uClibc-0.9.33.2/include/string.h uClibc-git/include/string.h
---- uClibc-0.9.33.2/include/string.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/string.h 2014-07-25 20:36:05.165326090 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-1993, 1995-2003, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1991-1993,1995-2004,2007,2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.21 String handling <string.h>
-@@ -36,12 +35,12 @@
- __BEGIN_NAMESPACE_STD
- /* Copy N bytes of SRC to DEST. */
- extern void *memcpy (void *__restrict __dest,
-- __const void *__restrict __src, size_t __n)
-+ const void *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(memcpy)
- /* Copy N bytes of SRC to DEST, guaranteeing
- correct behavior for overlapping strings. */
--extern void *memmove (void *__dest, __const void *__src, size_t __n)
-+extern void *memmove (void *__dest, const void *__src, size_t __n)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(memmove)
- __END_NAMESPACE_STD
-@@ -50,7 +49,7 @@
- Return the position in DEST one byte past where C was copied,
- or NULL if C was not found in the first N bytes of SRC. */
- #if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN
--extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
-+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
- int __c, size_t __n)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(memccpy)
-@@ -63,12 +62,12 @@
- libc_hidden_proto(memset)
-
- /* Compare N bytes of S1 and S2. */
--extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
-+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(memcmp)
-
- /* Search N bytes of S for C. */
--extern void *memchr (__const void *__s, int __c, size_t __n)
-+extern void *memchr (const void *__s, int __c, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(memchr)
- __END_NAMESPACE_STD
-@@ -76,12 +75,12 @@
- #ifdef __USE_GNU
- /* Search in S for C. This is similar to `memchr' but there is no
- length limit. */
--extern void *rawmemchr (__const void *__s, int __c)
-+extern void *rawmemchr (const void *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(rawmemchr)
-
- /* Search N bytes of S for the final occurrence of C. */
--extern void *memrchr (__const void *__s, int __c, size_t __n)
-+extern void *memrchr (const void *__s, int __c, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(memrchr)
- #endif
-@@ -89,62 +88,62 @@
-
- __BEGIN_NAMESPACE_STD
- /* Copy SRC to DEST. */
--extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
-+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(strcpy)
- /* Copy no more than N characters of SRC to DEST. */
- extern char *strncpy (char *__restrict __dest,
-- __const char *__restrict __src, size_t __n)
-+ const char *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(strncpy)
-
- /* Append SRC onto DEST. */
--extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
-+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(strcat)
- /* Append no more than N characters from SRC onto DEST. */
--extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
-+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
- size_t __n) __THROW __nonnull ((1, 2));
- libc_hidden_proto(strncat)
-
- /* Compare S1 and S2. */
--extern int strcmp (__const char *__s1, __const char *__s2)
-+extern int strcmp (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strcmp)
- /* Compare N characters of S1 and S2. */
--extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
-+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strncmp)
-
- /* Compare the collated forms of S1 and S2. */
--extern int strcoll (__const char *__s1, __const char *__s2)
-+extern int strcoll (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strcoll)
- /* Put a transformation of SRC into no more than N bytes of DEST. */
- extern size_t strxfrm (char *__restrict __dest,
-- __const char *__restrict __src, size_t __n)
-+ const char *__restrict __src, size_t __n)
- __THROW __nonnull ((2));
- __END_NAMESPACE_STD
-
--#if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
-+#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
- /* The following functions are equivalent to the both above but they
- take the locale they use for the collation as an extra argument.
- This is not standardsized but something like will come. */
- # include <xlocale.h>
-
- /* Compare the collated forms of S1 and S2 using rules from L. */
--extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
-+extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l)
- __THROW __attribute_pure__ __nonnull ((1, 2, 3));
- libc_hidden_proto(strcoll_l)
- /* Put a transformation of SRC into no more than N bytes of DEST. */
--extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
-+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
- __locale_t __l) __THROW __nonnull ((2, 4));
- libc_hidden_proto(strxfrm_l)
- #endif
-
- #if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
- /* Duplicate S, returning an identical malloc'd string. */
--extern char *strdup (__const char *__s)
-+extern char *strdup (const char *__s)
- __THROW __attribute_malloc__ __nonnull ((1));
- libc_hidden_proto(strdup)
- #endif
-@@ -152,8 +151,8 @@
- /* Return a malloc'd copy of at most N bytes of STRING. The
- resultant string is terminated even if no null terminator
- appears before STRING[N]. */
--#if defined __USE_GNU
--extern char *strndup (__const char *__string, size_t __n)
-+#if defined __USE_XOPEN2K8
-+extern char *strndup (const char *__string, size_t __n)
- __THROW __attribute_malloc__ __nonnull ((1));
- libc_hidden_proto(strndup)
- #endif
-@@ -163,7 +162,7 @@
- # define strdupa(s) \
- (__extension__ \
- ({ \
-- __const char *__old = (s); \
-+ const char *__old = (s); \
- size_t __len = strlen (__old) + 1; \
- char *__new = (char *) __builtin_alloca (__len); \
- (char *) memcpy (__new, __old, __len); \
-@@ -173,7 +172,7 @@
- # define strndupa(s, n) \
- (__extension__ \
- ({ \
-- __const char *__old = (s); \
-+ const char *__old = (s); \
- size_t __len = strnlen (__old, (n)); \
- char *__new = (char *) __builtin_alloca (__len + 1); \
- __new[__len] = '\0'; \
-@@ -183,11 +182,11 @@
-
- __BEGIN_NAMESPACE_STD
- /* Find the first occurrence of C in S. */
--extern char *strchr (__const char *__s, int __c)
-+extern char *strchr (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(strchr)
- /* Find the last occurrence of C in S. */
--extern char *strrchr (__const char *__s, int __c)
-+extern char *strrchr (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(strrchr)
- __END_NAMESPACE_STD
-@@ -195,7 +194,7 @@
- #ifdef __USE_GNU
- /* This function is similar to `strchr'. But it returns a pointer to
- the closing NUL byte in case C is not found in S. */
--extern char *strchrnul (__const char *__s, int __c)
-+extern char *strchrnul (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(strchrnul)
- #endif
-@@ -203,26 +202,26 @@
- __BEGIN_NAMESPACE_STD
- /* Return the length of the initial segment of S which
- consists entirely of characters not in REJECT. */
--extern size_t strcspn (__const char *__s, __const char *__reject)
-+extern size_t strcspn (const char *__s, const char *__reject)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strcspn)
- /* Return the length of the initial segment of S which
- consists entirely of characters in ACCEPT. */
--extern size_t strspn (__const char *__s, __const char *__accept)
-+extern size_t strspn (const char *__s, const char *__accept)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strspn)
- /* Find the first occurrence in S of any character in ACCEPT. */
--extern char *strpbrk (__const char *__s, __const char *__accept)
-+extern char *strpbrk (const char *__s, const char *__accept)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strpbrk)
- /* Find the first occurrence of NEEDLE in HAYSTACK. */
--extern char *strstr (__const char *__haystack, __const char *__needle)
-+extern char *strstr (const char *__haystack, const char *__needle)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strstr)
-
-
- /* Divide S into tokens separated by characters in DELIM. */
--extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
-+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
- __THROW __nonnull ((2));
- libc_hidden_proto(strtok)
- __END_NAMESPACE_STD
-@@ -231,12 +230,12 @@
- passed between calls are stored in SAVE_PTR. */
- #if 0 /* uClibc: disabled */
- extern char *__strtok_r (char *__restrict __s,
-- __const char *__restrict __delim,
-+ const char *__restrict __delim,
- char **__restrict __save_ptr)
- __THROW __nonnull ((2, 3));
- #endif
- #if defined __USE_POSIX || defined __USE_MISC
--extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
-+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
- char **__restrict __save_ptr)
- __THROW __nonnull ((2, 3));
- libc_hidden_proto(strtok_r)
-@@ -244,7 +243,7 @@
-
- #ifdef __USE_GNU
- /* Similar to `strstr' but this function ignores the case of both strings. */
--extern char *strcasestr (__const char *__haystack, __const char *__needle)
-+extern char *strcasestr (const char *__haystack, const char *__needle)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strcasestr)
- #endif
-@@ -253,19 +252,19 @@
- /* Find the first occurrence of NEEDLE in HAYSTACK.
- NEEDLE is NEEDLELEN bytes long;
- HAYSTACK is HAYSTACKLEN bytes long. */
--extern void *memmem (__const void *__haystack, size_t __haystacklen,
-- __const void *__needle, size_t __needlelen)
-+extern void *memmem (const void *__haystack, size_t __haystacklen,
-+ const void *__needle, size_t __needlelen)
- __THROW __attribute_pure__ __nonnull ((1, 3));
-
- /* Copy N bytes of SRC to DEST, return pointer to bytes after the
- last written byte. */
- #if 0 /* uClibc: disabled */
- extern void *__mempcpy (void *__restrict __dest,
-- __const void *__restrict __src, size_t __n)
-+ const void *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
- #endif
- extern void *mempcpy (void *__restrict __dest,
-- __const void *__restrict __src, size_t __n)
-+ const void *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(mempcpy)
- #endif
-@@ -273,15 +272,15 @@
-
- __BEGIN_NAMESPACE_STD
- /* Return the length of S. */
--extern size_t strlen (__const char *__s)
-+extern size_t strlen (const char *__s)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(strlen)
- __END_NAMESPACE_STD
-
--#ifdef __USE_GNU
-+#ifdef __USE_XOPEN2K8
- /* Find the length of STRING, but scan at most MAXLEN characters.
- If no '\0' terminator is found in that many characters, return MAXLEN. */
--extern size_t strnlen (__const char *__string, size_t __maxlen)
-+extern size_t strnlen (const char *__string, size_t __maxlen)
- __THROW __attribute_pure__ __nonnull ((1));
- libc_hidden_proto(strnlen)
- #endif
-@@ -329,6 +328,12 @@
- # endif
- #endif
-
-+#if 0 /*defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__*/
-+/* Translate error number to string according to the locale L. */
-+extern char *strerror_l (int __errnum, __locale_t __l) __THROW;
-+#endif
-+
-+
- /* We define this function always since `bzero' is sometimes needed when
- the namespace rules does not allow this. */
- #if 0 /* uClibc: disabled */
-@@ -338,22 +343,22 @@
- #ifdef __USE_BSD
- # ifdef __UCLIBC_SUSV3_LEGACY__
- /* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
--extern void bcopy (__const void *__src, void *__dest, size_t __n)
-+extern void bcopy (const void *__src, void *__dest, size_t __n)
- __THROW __nonnull ((1, 2));
-
- /* Set N bytes of S to 0. */
- extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));
-
- /* Compare N bytes of S1 and S2 (same as memcmp). */
--extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
-+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
- /* Find the first occurrence of C in S (same as strchr). */
--extern char *index (__const char *__s, int __c)
-+extern char *index (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-
- /* Find the last occurrence of C in S (same as strrchr). */
--extern char *rindex (__const char *__s, int __c)
-+extern char *rindex (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
- # else
- # ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
-@@ -385,25 +390,25 @@
- # endif
-
- /* Compare S1 and S2, ignoring case. */
--extern int strcasecmp (__const char *__s1, __const char *__s2)
-+extern int strcasecmp (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strcasecmp)
-
- /* Compare no more than N chars of S1 and S2, ignoring case. */
--extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
-+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
- libc_hidden_proto(strncasecmp)
- #endif /* Use BSD. */
-
--#if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
-+#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
- /* Again versions of a few functions which use the given locale instead
- of the global one. */
--extern int strcasecmp_l (__const char *__s1, __const char *__s2,
-+extern int strcasecmp_l (const char *__s1, const char *__s2,
- __locale_t __loc)
- __THROW __attribute_pure__ __nonnull ((1, 2, 3));
- libc_hidden_proto(strcasecmp_l)
-
--extern int strncasecmp_l (__const char *__s1, __const char *__s2,
-+extern int strncasecmp_l (const char *__s1, const char *__s2,
- size_t __n, __locale_t __loc)
- __THROW __attribute_pure__ __nonnull ((1, 2, 4));
- libc_hidden_proto(strncasecmp_l)
-@@ -413,27 +418,22 @@
- /* Return the next DELIM-delimited token from *STRINGP,
- terminating it with a '\0', and update *STRINGP to point past it. */
- extern char *strsep (char **__restrict __stringp,
-- __const char *__restrict __delim)
-+ const char *__restrict __delim)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(strsep)
- #endif
-
--#ifdef __USE_GNU
--/* Compare S1 and S2 as strings holding name & indices/version numbers. */
--extern int strverscmp (__const char *__s1, __const char *__s2)
-- __THROW __attribute_pure__ __nonnull ((1, 2));
--libc_hidden_proto(strverscmp)
--
-+#ifdef __USE_XOPEN2K8
- /* Return a string describing the meaning of the signal number in SIG. */
- extern char *strsignal (int __sig) __THROW;
- libc_hidden_proto(strsignal)
-
- /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
- # if 0 /* uClibc: disabled */
--extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
-+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
- # endif
--extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
-+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(stpcpy)
-
-@@ -441,12 +441,19 @@
- the last character written into DEST. */
- # if 0 /* uClibc: disabled */
- extern char *__stpncpy (char *__restrict __dest,
-- __const char *__restrict __src, size_t __n)
-+ const char *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
- # endif
- extern char *stpncpy (char *__restrict __dest,
-- __const char *__restrict __src, size_t __n)
-+ const char *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-+#endif
-+
-+#ifdef __USE_GNU
-+/* Compare S1 and S2 as strings holding name & indices/version numbers. */
-+extern int strverscmp (const char *__s1, const char *__s2)
-+ __THROW __attribute_pure__ __nonnull ((1, 2));
-+libc_hidden_proto(strverscmp)
-
- # if 0 /* uClibc does not support strfry or memfrob. */
- /* Sautee STRING briskly. */
-@@ -461,8 +468,7 @@
- declare the function if the `basename' macro is available (defined
- in <libgen.h>) which makes the XPG version of this function
- available. */
--extern char *basename (__const char *__filename) __THROW __nonnull ((1));
--libc_hidden_proto(basename)
-+extern char *basename (const char *__filename) __THROW __nonnull ((1));
- # endif
- #endif /* __USE_GNU */
-
-diff -Nur uClibc-0.9.33.2/include/strings.h uClibc-git/include/strings.h
---- uClibc-0.9.33.2/include/strings.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/strings.h 2014-07-25 20:36:05.165326090 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991,92,96,97,99,2000,2001 Free Software Foundation, Inc.
-+/* Copyright (C) 1991,92,96,97,99,2000,2001,2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _STRINGS_H
- #define _STRINGS_H 1
-@@ -35,22 +34,22 @@
-
- # ifdef __UCLIBC_SUSV3_LEGACY__
- /* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
--extern void bcopy (__const void *__src, void *__dest, size_t __n)
-+extern void bcopy (const void *__src, void *__dest, size_t __n)
- __THROW __nonnull ((1, 2));
-
- /* Set N bytes of S to 0. */
- extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));
-
- /* Compare N bytes of S1 and S2 (same as memcmp). */
--extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
-+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
- /* Find the first occurrence of C in S (same as strchr). */
--extern char *index (__const char *__s, int __c)
-+extern char *index (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
-
- /* Find the last occurrence of C in S (same as strrchr). */
--extern char *rindex (__const char *__s, int __c)
-+extern char *rindex (const char *__s, int __c)
- __THROW __attribute_pure__ __nonnull ((1));
- # else
- # ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
-@@ -69,10 +68,11 @@
- /* Return the position of the first bit set in I, or 0 if none are set.
- The least-significant bit is position 1, the most-significant 32. */
- extern int ffs (int __i) __THROW __attribute__ ((__const__));
-+libc_hidden_proto(ffs)
-
- /* The following two functions are non-standard but necessary for non-32 bit
- platforms. */
--#if 0 /*def __USE_GNU*/
-+# ifdef __USE_GNU
- extern int ffsl (long int __l) __THROW __attribute__ ((__const__));
- # ifdef __GNUC__
- __extension__ extern int ffsll (long long int __ll)
-@@ -81,17 +81,39 @@
- # endif
-
- /* Compare S1 and S2, ignoring case. */
--extern int strcasecmp (__const char *__s1, __const char *__s2)
-+extern int strcasecmp (const char *__s1, const char *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-+libc_hidden_proto(strcasecmp)
-
- /* Compare no more than N chars of S1 and S2, ignoring case. */
--extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
-+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-+libc_hidden_proto(strncasecmp)
-
-+#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
-+/* The following functions are equivalent to the both above but they
-+ take the locale they use for the collation as an extra argument.
-+ This is not standardsized but something like will come. */
-+# include <xlocale.h>
-+
-+/* Again versions of a few functions which use the given locale instead
-+ of the global one. */
-+extern int strcasecmp_l (const char *__s1, const char *__s2,
-+ __locale_t __loc)
-+ __THROW __attribute_pure__ __nonnull ((1, 2, 3));
-+libc_hidden_proto(strcasecmp_l)
-+
-+extern int strncasecmp_l (const char *__s1, const char *__s2,
-+ size_t __n, __locale_t __loc)
-+ __THROW __attribute_pure__ __nonnull ((1, 2, 4));
-+libc_hidden_proto(strncasecmp_l)
-+#endif
- __END_DECLS
-
-
- #ifdef _LIBC
-+/* comment is wrong and will face this, when HAS_GNU option will be added
-+ * header is SuSv standard */
- #error "<strings.h> should not be included from libc."
- #endif
-
-diff -Nur uClibc-0.9.33.2/include/sys/cdefs.h uClibc-git/include/sys/cdefs.h
---- uClibc-0.9.33.2/include/sys/cdefs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/cdefs.h 2014-07-25 20:36:05.177326154 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_CDEFS_H
- #define _SYS_CDEFS_H 1
-@@ -63,10 +62,6 @@
- # define __THROW
- # define __NTH(fct) fct
-
--# define __const const
--# define __signed signed
--# define __volatile volatile
--
- #endif /* GCC. */
-
- /* These two macros are not used in glibc anymore. They are kept here
-diff -Nur uClibc-0.9.33.2/include/sys/dir.h uClibc-git/include/sys/dir.h
---- uClibc-0.9.33.2/include/sys/dir.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/dir.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_DIR_H
- #define _SYS_DIR_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/file.h uClibc-git/include/sys/file.h
---- uClibc-0.9.33.2/include/sys/file.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/file.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_FILE_H
- #define _SYS_FILE_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/fsuid.h uClibc-git/include/sys/fsuid.h
---- uClibc-0.9.33.2/include/sys/fsuid.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/fsuid.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_FSUID_H
- #define _SYS_FSUID_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/ioctl.h uClibc-git/include/sys/ioctl.h
---- uClibc-0.9.33.2/include/sys/ioctl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/ioctl.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IOCTL_H
- #define _SYS_IOCTL_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/ipc.h uClibc-git/include/sys/ipc.h
---- uClibc-0.9.33.2/include/sys/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/ipc.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- #define _SYS_IPC_H 1
-@@ -51,7 +50,7 @@
- __BEGIN_DECLS
-
- /* Generates key for System V style IPC. */
--extern key_t ftok (__const char *__pathname, int __proj_id) __THROW;
-+extern key_t ftok (const char *__pathname, int __proj_id) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/kdaemon.h uClibc-git/include/sys/kdaemon.h
---- uClibc-0.9.33.2/include/sys/kdaemon.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/kdaemon.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Interfaces to control the various kernel daemons. */
-
-diff -Nur uClibc-0.9.33.2/include/sys/kd.h uClibc-git/include/sys/kd.h
---- uClibc-0.9.33.2/include/sys/kd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/kd.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_KD_H
- #define _SYS_KD_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/klog.h uClibc-git/include/sys/klog.h
---- uClibc-0.9.33.2/include/sys/klog.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/klog.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_KLOG_H
-
-diff -Nur uClibc-0.9.33.2/include/sys/mman.h uClibc-git/include/sys/mman.h
---- uClibc-0.9.33.2/include/sys/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/mman.h 2014-07-25 20:36:05.177326154 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- #define _SYS_MMAN_H 1
-@@ -115,10 +114,10 @@
-
- /* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
- be memory resident. */
--extern int mlock (__const void *__addr, size_t __len) __THROW;
-+extern int mlock (const void *__addr, size_t __len) __THROW;
-
- /* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN). */
--extern int munlock (__const void *__addr, size_t __len) __THROW;
-+extern int munlock (const void *__addr, size_t __len) __THROW;
-
- /* Cause all currently mapped pages of the process to be memory resident
- until unlocked by a call to the `munlockall', until the process exits,
-@@ -133,8 +132,8 @@
-
- /* On no-mmu systems, memory cannot be swapped out, so
- * these functions will always succeed. */
--static __inline__ int mlock (__const void *__addr, size_t __len) { return 0; }
--static __inline__ int munlock (__const void *__addr, size_t __len) { return 0; }
-+static __inline__ int mlock (const void *__addr, size_t __len) { return 0; }
-+static __inline__ int munlock (const void *__addr, size_t __len) { return 0; }
- static __inline__ int mlockall (int __flags) { return 0; }
- static __inline__ int munlockall (void) { return 0; }
- #endif
-@@ -170,10 +169,10 @@
-
-
- /* Open shared memory segment. */
--extern int shm_open (__const char *__name, int __oflag, mode_t __mode);
-+extern int shm_open (const char *__name, int __oflag, mode_t __mode);
-
- /* Remove shared memory segment. */
--extern int shm_unlink (__const char *__name);
-+extern int shm_unlink (const char *__name);
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/mount.h uClibc-git/include/sys/mount.h
---- uClibc-0.9.33.2/include/sys/mount.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/mount.h 2014-07-25 20:36:05.177326154 +0200
-@@ -1,5 +1,5 @@
- /* Header file for mounting/unmount Linux filesystems.
-- Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc.
-+ Copyright (C) 1996-2000, 2004, 2010, 2012 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This is taken from /usr/include/linux/fs.h. */
-
-@@ -47,23 +46,46 @@
- #define MS_REMOUNT MS_REMOUNT
- MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
- #define MS_MANDLOCK MS_MANDLOCK
-- S_WRITE = 128, /* Write on file/directory/symlink. */
--#define S_WRITE S_WRITE
-- S_APPEND = 256, /* Append-only file. */
--#define S_APPEND S_APPEND
-- S_IMMUTABLE = 512, /* Immutable file. */
--#define S_IMMUTABLE S_IMMUTABLE
-+ MS_DIRSYNC = 128, /* Directory modifications are synchronous. */
-+#define MS_DIRSYNC MS_DIRSYNC
- MS_NOATIME = 1024, /* Do not update access times. */
- #define MS_NOATIME MS_NOATIME
- MS_NODIRATIME = 2048, /* Do not update directory access times. */
- #define MS_NODIRATIME MS_NODIRATIME
- MS_BIND = 4096, /* Bind directory at different place. */
- #define MS_BIND MS_BIND
-+ MS_MOVE = 8192,
-+#define MS_MOVE MS_MOVE
-+ MS_REC = 16384,
-+#define MS_REC MS_REC
-+ MS_SILENT = 32768,
-+#define MS_SILENT MS_SILENT
-+ MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */
-+#define MS_POSIXACL MS_POSIXACL
-+ MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */
-+#define MS_UNBINDABLE MS_UNBINDABLE
-+ MS_PRIVATE = 1 << 18, /* Change to private. */
-+#define MS_PRIVATE MS_PRIVATE
-+ MS_SLAVE = 1 << 19, /* Change to slave. */
-+#define MS_SLAVE MS_SLAVE
-+ MS_SHARED = 1 << 20, /* Change to shared. */
-+#define MS_SHARED MS_SHARED
-+ MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */
-+#define MS_RELATIME MS_RELATIME
-+ MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */
-+#define MS_KERNMOUNT MS_KERNMOUNT
-+ MS_I_VERSION = 1 << 23, /* Update inode I_version field. */
-+#define MS_I_VERSION MS_I_VERSION
-+ MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */
-+#define MS_STRICTATIME MS_STRICTATIME
-+ MS_ACTIVE = 1 << 30,
-+#define MS_ACTIVE MS_ACTIVE
-+ MS_NOUSER = 1 << 31
-+#define MS_NOUSER MS_NOUSER
- };
-
- /* Flags that can be altered by MS_REMOUNT */
--#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \
-- |MS_NODIRATIME)
-+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
-
-
- /* Magic mount flag number. Has to be or-ed to the flag values. */
-@@ -100,23 +122,28 @@
- #define MNT_FORCE MNT_FORCE
- MNT_DETACH = 2, /* Just detach from the tree. */
- #define MNT_DETACH MNT_DETACH
-- MNT_EXPIRE = 4 /* Mark for expiry. */
-+ MNT_EXPIRE = 4, /* Mark for expiry. */
- #define MNT_EXPIRE MNT_EXPIRE
-+ UMOUNT_NOFOLLOW = 8 /* Don't follow symlink on umount. */
-+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
- };
-
-
- __BEGIN_DECLS
-
- /* Mount a filesystem. */
--extern int mount (__const char *__special_file, __const char *__dir,
-- __const char *__fstype, unsigned long int __rwflag,
-- __const void *__data) __THROW;
-+extern int mount (const char *__special_file, const char *__dir,
-+ const char *__fstype, unsigned long int __rwflag,
-+ const void *__data) __THROW;
-
- /* Unmount a filesystem. */
--extern int umount (__const char *__special_file) __THROW;
-+extern int umount (const char *__special_file) __THROW;
-
-+#ifdef __UCLIBC_LINUX_SPECIFIC__
- /* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */
--extern int umount2 (__const char *__special_file, int __flags) __THROW;
-+extern int umount2 (const char *__special_file, int __flags) __THROW;
-+libc_hidden_proto(umount2)
-+#endif
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/msg.h uClibc-git/include/sys/msg.h
---- uClibc-0.9.33.2/include/sys/msg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/msg.h 2014-07-25 20:36:05.177326154 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- #define _SYS_MSG_H
-@@ -77,7 +76,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int msgsnd (int __msqid, __const void *__msgp, size_t __msgsz,
-+extern int msgsnd (int __msqid, const void *__msgp, size_t __msgsz,
- int __msgflg);
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/sys/mtio.h uClibc-git/include/sys/mtio.h
---- uClibc-0.9.33.2/include/sys/mtio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/mtio.h 2014-07-25 20:36:05.177326154 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Written by H. Bergman <hennus@cybercomm.nl>. */
-
-diff -Nur uClibc-0.9.33.2/include/sys/param.h uClibc-git/include/sys/param.h
---- uClibc-0.9.33.2/include/sys/param.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/param.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PARAM_H
- #define _SYS_PARAM_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/personality.h uClibc-git/include/sys/personality.h
---- uClibc-0.9.33.2/include/sys/personality.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/personality.h 2014-07-25 20:36:05.177326154 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Taken verbatim from Linux 2.4 (include/linux/personality.h). */
-
-diff -Nur uClibc-0.9.33.2/include/sys/poll.h uClibc-git/include/sys/poll.h
---- uClibc-0.9.33.2/include/sys/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/poll.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- #define _SYS_POLL_H 1
-@@ -66,9 +65,8 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int ppoll (struct pollfd *__fds, nfds_t __nfds,
-- __const struct timespec *__timeout,
-- __const __sigset_t *__ss);
--libc_hidden_proto(ppoll)
-+ const struct timespec *__timeout,
-+ const __sigset_t *__ss);
- #endif
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/sys/quota.h uClibc-git/include/sys/quota.h
---- uClibc-0.9.33.2/include/sys/quota.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/quota.h 2014-07-25 20:36:05.181326174 +0200
-@@ -30,8 +30,6 @@
- * 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.
-- *
-- * Version: $Id: quota.h,v 1.1 2002/01/03 04:00:09 andersen Exp $
- */
-
- #ifndef _SYS_QUOTA_H
-@@ -40,6 +38,19 @@
- #include <features.h>
- #include <sys/types.h>
-
-+#ifdef __UCLIBC__
-+# undef _LINUX_QUOTA_VERSION
-+# define _LINUX_QUOTA_VERSION 1
-+#endif
-+
-+/*
-+ * Select between different incompatible quota versions.
-+ * Default to the version used by Linux kernel version 2.4.22
-+ * or later. */
-+#ifndef _LINUX_QUOTA_VERSION
-+# define _LINUX_QUOTA_VERSION 2
-+#endif
-+
- /*
- * Convert diskblocks to blocks and the other way around.
- * currently only to fool the BSD source. :-)
-@@ -94,21 +105,33 @@
- #define SUBCMDSHIFT 8
- #define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
-
--#define Q_QUOTAON 0x0100 /* enable quotas */
--#define Q_QUOTAOFF 0x0200 /* disable quotas */
--#define Q_GETQUOTA 0x0300 /* get limits and usage */
--#define Q_SETQUOTA 0x0400 /* set limits and usage */
--#define Q_SETUSE 0x0500 /* set usage */
--#define Q_SYNC 0x0600 /* sync disk copy of a filesystems quotas */
--#define Q_SETQLIM 0x0700 /* set limits */
--#define Q_GETSTATS 0x0800 /* get collected stats */
--#define Q_RSQUASH 0x1000 /* set root_squash option */
-+#if _LINUX_QUOTA_VERSION < 2
-+# define Q_QUOTAON 0x0100 /* enable quotas */
-+# define Q_QUOTAOFF 0x0200 /* disable quotas */
-+# define Q_GETQUOTA 0x0300 /* get limits and usage */
-+# define Q_SETQUOTA 0x0400 /* set limits and usage */
-+# define Q_SETUSE 0x0500 /* set usage */
-+# define Q_SYNC 0x0600 /* sync disk copy of a filesystems quotas */
-+# define Q_SETQLIM 0x0700 /* set limits */
-+# define Q_GETSTATS 0x0800 /* get collected stats */
-+# define Q_RSQUASH 0x1000 /* set root_squash option */
-+#else
-+# define Q_SYNC 0x800001 /* sync disk copy of a filesystems quotas */
-+# define Q_QUOTAON 0x800002 /* turn quotas on */
-+# define Q_QUOTAOFF 0x800003 /* turn quotas off */
-+# define Q_GETFMT 0x800004 /* get quota format used on given filesystem */
-+# define Q_GETINFO 0x800005 /* get information about quota files */
-+# define Q_SETINFO 0x800006 /* set information about quota files */
-+# define Q_GETQUOTA 0x800007 /* get user quota structure */
-+# define Q_SETQUOTA 0x800008 /* set user quota structure */
-+#endif
-
- /*
- * The following structure defines the format of the disk quota file
- * (as it appears on disk) - the file is an array of these structures
- * indexed by user or group number.
- */
-+#if _LINUX_QUOTA_VERSION < 2
- struct dqblk
- {
- u_int32_t dqb_bhardlimit; /* absolute limit on disk blks alloc */
-@@ -120,13 +143,45 @@
- time_t dqb_btime; /* time limit for excessive disk use */
- time_t dqb_itime; /* time limit for excessive files */
- };
-+#else
-+
-+/* Flags that indicate which fields in dqblk structure are valid. */
-+#define QIF_BLIMITS 1
-+#define QIF_SPACE 2
-+#define QIF_ILIMITS 4
-+#define QIF_INODES 8
-+#define QIF_BTIME 16
-+#define QIF_ITIME 32
-+#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS)
-+#define QIF_USAGE (QIF_SPACE | QIF_INODES)
-+#define QIF_TIMES (QIF_BTIME | QIF_ITIME)
-+#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES)
-+
-+struct dqblk
-+ {
-+ u_int64_t dqb_bhardlimit; /* absolute limit on disk quota blocks alloc */
-+ u_int64_t dqb_bsoftlimit; /* preferred limit on disk quota blocks */
-+ u_int64_t dqb_curspace; /* current quota block count */
-+ u_int64_t dqb_ihardlimit; /* maximum # allocated inodes */
-+ u_int64_t dqb_isoftlimit; /* preferred inode limit */
-+ u_int64_t dqb_curinodes; /* current # allocated inodes */
-+ u_int64_t dqb_btime; /* time limit for excessive disk use */
-+ u_int64_t dqb_itime; /* time limit for excessive files */
-+ u_int32_t dqb_valid; /* bitmask of QIF_* constants */
-+ };
-+#endif
-
- /*
- * Shorthand notation.
- */
- #define dq_bhardlimit dq_dqb.dqb_bhardlimit
- #define dq_bsoftlimit dq_dqb.dqb_bsoftlimit
--#define dq_curblocks dq_dqb.dqb_curblocks
-+#if _LINUX_QUOTA_VERSION < 2
-+# define dq_curblocks dq_dqb.dqb_curblocks
-+#else
-+# define dq_curspace dq_dqb.dqb_curspace
-+# define dq_valid dq_dqb.dqb_valid
-+#endif
- #define dq_ihardlimit dq_dqb.dqb_ihardlimit
- #define dq_isoftlimit dq_dqb.dqb_isoftlimit
- #define dq_curinodes dq_dqb.dqb_curinodes
-@@ -135,6 +190,7 @@
-
- #define dqoff(UID) ((loff_t)((UID) * sizeof (struct dqblk)))
-
-+#if _LINUX_QUOTA_VERSION < 2
- struct dqstats
- {
- u_int32_t lookups;
-@@ -147,6 +203,22 @@
- u_int32_t free_dquots;
- u_int32_t syncs;
- };
-+#else
-+
-+/* Flags that indicate which fields in dqinfo structure are valid. */
-+# define IIF_BGRACE 1
-+# define IIF_IGRACE 2
-+# define IIF_FLAGS 4
-+# define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
-+
-+struct dqinfo
-+ {
-+ u_int64_t dqi_bgrace;
-+ u_int64_t dqi_igrace;
-+ u_int32_t dqi_flags;
-+ u_int32_t dqi_valid;
-+ };
-+#endif
-
- __BEGIN_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/reboot.h uClibc-git/include/sys/reboot.h
---- uClibc-0.9.33.2/include/sys/reboot.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/reboot.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file should define RB_* macros to be used as flag
- bits in the argument to the `reboot' system call. */
-diff -Nur uClibc-0.9.33.2/include/sys/resource.h uClibc-git/include/sys/resource.h
---- uClibc-0.9.33.2/include/sys/resource.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/resource.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_RESOURCE_H
- #define _SYS_RESOURCE_H 1
-@@ -69,12 +68,12 @@
- Return 0 if successful, -1 if not (and sets errno). */
- #ifndef __USE_FILE_OFFSET64
- extern int setrlimit (__rlimit_resource_t __resource,
-- __const struct rlimit *__rlimits) __THROW;
-+ const struct rlimit *__rlimits) __THROW;
- libc_hidden_proto(setrlimit)
- #else
- # ifdef __REDIRECT_NTH
- extern int __REDIRECT_NTH (setrlimit, (__rlimit_resource_t __resource,
-- __const struct rlimit *__rlimits),
-+ const struct rlimit *__rlimits),
- setrlimit64);
- # else
- # define setrlimit setrlimit64
-@@ -82,7 +81,7 @@
- #endif
- #ifdef __USE_LARGEFILE64
- extern int setrlimit64 (__rlimit_resource_t __resource,
-- __const struct rlimit64 *__rlimits) __THROW;
-+ const struct rlimit64 *__rlimits) __THROW;
- #endif
-
- /* Return resource usage information on process indicated by WHO
-diff -Nur uClibc-0.9.33.2/include/sys/select.h uClibc-git/include/sys/select.h
---- uClibc-0.9.33.2/include/sys/select.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/select.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> */
-
-@@ -110,7 +109,10 @@
- fd_set *__restrict __writefds,
- fd_set *__restrict __exceptfds,
- struct timeval *__restrict __timeout);
-+#ifdef _LIBC
-+extern __typeof(select) __select_nocancel attribute_hidden;
- libc_hidden_proto(select)
-+#endif
-
- #ifdef __USE_XOPEN2K
- /* Same as above only that the TIMEOUT value is given with higher
-diff -Nur uClibc-0.9.33.2/include/sys/sem.h uClibc-git/include/sys/sem.h
---- uClibc-0.9.33.2/include/sys/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/sem.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- #define _SYS_SEM_H 1
-@@ -61,7 +60,7 @@
- #ifdef __USE_GNU
- /* Operate on semaphore with timeout. */
- extern int semtimedop (int __semid, struct sembuf *__sops, size_t __nsops,
-- __const struct timespec *__timeout) __THROW;
-+ const struct timespec *__timeout) __THROW;
- #endif
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/sys/sendfile.h uClibc-git/include/sys/sendfile.h
---- uClibc-0.9.33.2/include/sys/sendfile.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/sendfile.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SENDFILE_H
- #define _SYS_SENDFILE_H 1
-@@ -45,6 +44,7 @@
- #ifdef __USE_LARGEFILE64
- extern ssize_t sendfile64 (int __out_fd, int __in_fd, __off64_t *__offset,
- size_t __count) __THROW;
-+libc_hidden_proto(sendfile64)
- #endif
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/sys/shm.h uClibc-git/include/sys/shm.h
---- uClibc-0.9.33.2/include/sys/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/shm.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- #define _SYS_SHM_H 1
-@@ -54,11 +53,11 @@
- extern int shmget (key_t __key, size_t __size, int __shmflg) __THROW;
-
- /* Attach shared memory segment. */
--extern void *shmat (int __shmid, __const void *__shmaddr, int __shmflg)
-+extern void *shmat (int __shmid, const void *__shmaddr, int __shmflg)
- __THROW;
-
- /* Detach shared memory segment. */
--extern int shmdt (__const void *__shmaddr) __THROW;
-+extern int shmdt (const void *__shmaddr) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/socket.h uClibc-git/include/sys/socket.h
---- uClibc-0.9.33.2/include/sys/socket.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/socket.h 2014-07-25 20:36:05.181326174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SOCKET_H
- #define _SYS_SOCKET_H 1
-@@ -69,7 +68,7 @@
- old-style declaration, too. */
- #if defined __cplusplus || !__GNUC_PREREQ (2, 7) || !defined __USE_GNU
- # define __SOCKADDR_ARG struct sockaddr *__restrict
--# define __CONST_SOCKADDR_ARG __const struct sockaddr *
-+# define __CONST_SOCKADDR_ARG const struct sockaddr *
- #else
- /* Add more `struct sockaddr_AF' types here as necessary.
- These are all the ones I found on NetBSD and Linux. */
-@@ -92,7 +91,7 @@
- typedef union { __SOCKADDR_ALLTYPES
- } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
- # undef __SOCKADDR_ONETYPE
--# define __SOCKADDR_ONETYPE(type) __const struct type *__restrict __##type##__;
-+# define __SOCKADDR_ONETYPE(type) const struct type *__restrict __##type##__;
- typedef union { __SOCKADDR_ALLTYPES
- } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
- # undef __SOCKADDR_ONETYPE
-@@ -142,7 +141,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
-+extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags);
- libc_hidden_proto(send)
-
- /* Read N bytes into BUF from socket FD.
-@@ -158,10 +157,13 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
-+extern ssize_t sendto (int __fd, const void *__buf, size_t __n,
- int __flags, __CONST_SOCKADDR_ARG __addr,
- socklen_t __addr_len);
-+#ifdef _LIBC
-+extern __typeof(sendto) __sendto_nocancel attribute_hidden;
- libc_hidden_proto(sendto)
-+#endif
-
- /* Read N bytes into BUF through socket FD.
- If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of
-@@ -173,7 +175,10 @@
- extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
- int __flags, __SOCKADDR_ARG __addr,
- socklen_t *__restrict __addr_len);
-+#ifdef _LIBC
-+extern __typeof(recvfrom) __recvfrom_nocancel attribute_hidden;
- libc_hidden_proto(recvfrom)
-+#endif
-
-
- /* Send a message described MESSAGE on socket FD.
-@@ -181,7 +186,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
-+extern ssize_t sendmsg (int __fd, const struct msghdr *__message,
- int __flags);
- libc_hidden_proto(sendmsg)
-
-@@ -205,7 +210,7 @@
- to *OPTVAL (which is OPTLEN bytes long).
- Returns 0 on success, -1 for errors. */
- extern int setsockopt (int __fd, int __level, int __optname,
-- __const void *__optval, socklen_t __optlen) __THROW;
-+ const void *__optval, socklen_t __optlen) __THROW;
- libc_hidden_proto(setsockopt)
-
-
-@@ -260,4 +265,8 @@
-
- __END_DECLS
-
-+#ifdef _LIBC
-+extern int __socketcall(int, unsigned long *) attribute_hidden;
-+#endif
-+
- #endif /* sys/socket.h */
-diff -Nur uClibc-0.9.33.2/include/sys/statfs.h uClibc-git/include/sys/statfs.h
---- uClibc-0.9.33.2/include/sys/statfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/statfs.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STATFS_H
- #define _SYS_STATFS_H 1
-@@ -29,19 +28,20 @@
-
- /* Return information about the filesystem on which FILE resides. */
- #ifndef __USE_FILE_OFFSET64
--extern int statfs (__const char *__file, struct statfs *__buf)
-+extern int statfs (const char *__file, struct statfs *__buf)
- __THROW __nonnull ((1, 2));
-+libc_hidden_proto(statfs)
- #else
- # ifdef __REDIRECT_NTH
- extern int __REDIRECT_NTH (statfs,
-- (__const char *__file, struct statfs *__buf),
-+ (const char *__file, struct statfs *__buf),
- statfs64) __nonnull ((1, 2));
- # else
- # define statfs statfs64
- # endif
- #endif
- #ifdef __USE_LARGEFILE64
--extern int statfs64 (__const char *__file, struct statfs64 *__buf)
-+extern int statfs64 (const char *__file, struct statfs64 *__buf)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(statfs64)
- #endif
-diff -Nur uClibc-0.9.33.2/include/sys/stat.h uClibc-git/include/sys/stat.h
---- uClibc-0.9.33.2/include/sys/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/stat.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 5.6 File Characteristics <sys/stat.h>
-@@ -206,7 +205,7 @@
-
- #ifndef __USE_FILE_OFFSET64
- /* Get file attributes for FILE and put them in BUF. */
--extern int stat (__const char *__restrict __file,
-+extern int stat (const char *__restrict __file,
- struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
- libc_hidden_proto(stat)
-
-@@ -216,7 +215,7 @@
- libc_hidden_proto(fstat)
- #else
- # ifdef __REDIRECT_NTH
--extern int __REDIRECT_NTH (stat, (__const char *__restrict __file,
-+extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
- struct stat *__restrict __buf), stat64)
- __nonnull ((1, 2));
- extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf), fstat64)
-@@ -227,7 +226,7 @@
- # endif
- #endif
- #ifdef __USE_LARGEFILE64
--extern int stat64 (__const char *__restrict __file,
-+extern int stat64 (const char *__restrict __file,
- struct stat64 *__restrict __buf) __THROW __nonnull ((1, 2));
- extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
- libc_hidden_proto(stat64)
-@@ -239,12 +238,13 @@
- Relative path names are interpreted relative to FD unless FD is
- AT_FDCWD. */
- # ifndef __USE_FILE_OFFSET64
--extern int fstatat (int __fd, __const char *__restrict __file,
-+extern int fstatat (int __fd, const char *__restrict __file,
- struct stat *__restrict __buf, int __flag)
- __THROW __nonnull ((2, 3));
-+libc_hidden_proto(fstatat)
- # else
- # ifdef __REDIRECT_NTH
--extern int __REDIRECT_NTH (fstatat, (int __fd, __const char *__restrict __file,
-+extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file,
- struct stat *__restrict __buf,
- int __flag),
- fstatat64) __nonnull ((2, 3));
-@@ -254,9 +254,10 @@
- # endif
-
- # ifdef __USE_LARGEFILE64
--extern int fstatat64 (int __fd, __const char *__restrict __file,
-+extern int fstatat64 (int __fd, const char *__restrict __file,
- struct stat64 *__restrict __buf, int __flag)
- __THROW __nonnull ((2, 3));
-+libc_hidden_proto(fstatat64)
- # endif
- #endif
-
-@@ -264,13 +265,13 @@
- # ifndef __USE_FILE_OFFSET64
- /* Get file attributes about FILE and put them in BUF.
- If FILE is a symbolic link, do not follow it. */
--extern int lstat (__const char *__restrict __file,
-+extern int lstat (const char *__restrict __file,
- struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
- libc_hidden_proto(lstat)
- # else
- # ifdef __REDIRECT_NTH
- extern int __REDIRECT_NTH (lstat,
-- (__const char *__restrict __file,
-+ (const char *__restrict __file,
- struct stat *__restrict __buf), lstat64)
- __nonnull ((1, 2));
- # else
-@@ -278,7 +279,7 @@
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
--extern int lstat64 (__const char *__restrict __file,
-+extern int lstat64 (const char *__restrict __file,
- struct stat64 *__restrict __buf)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(lstat64)
-@@ -287,7 +288,7 @@
-
- /* Set file access permissions for FILE to MODE.
- If FILE is a symbolic link, this affects its target instead. */
--extern int chmod (__const char *__file, __mode_t __mode)
-+extern int chmod (const char *__file, __mode_t __mode)
- __THROW __nonnull ((1));
- libc_hidden_proto(chmod)
-
-@@ -295,7 +296,7 @@
- /* Set file access permissions for FILE to MODE.
- If FILE is a symbolic link, this affects the link itself
- rather than its target. */
--extern int lchmod (__const char *__file, __mode_t __mode)
-+extern int lchmod (const char *__file, __mode_t __mode)
- __THROW __nonnull ((1));
- #endif
-
-@@ -307,9 +308,10 @@
- #ifdef __USE_ATFILE
- /* Set file access permissions of FILE relative to
- the directory FD is open on. */
--extern int fchmodat (int __fd, __const char *__file, __mode_t __mode,
-+extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
- int __flag)
- __THROW __nonnull ((2)) __wur;
-+libc_hidden_proto(fchmodat)
- #endif /* Use ATFILE. */
-
-
-@@ -325,7 +327,7 @@
- #endif
-
- /* Create a new directory named PATH, with permission bits MODE. */
--extern int mkdir (__const char *__path, __mode_t __mode)
-+extern int mkdir (const char *__path, __mode_t __mode)
- __THROW __nonnull ((1));
- libc_hidden_proto(mkdir)
-
-@@ -333,15 +335,16 @@
- /* Like mkdir, create a new directory with permission bits MODE. But
- interpret relative PATH names relative to the directory associated
- with FD. */
--extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
-+extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
- __THROW __nonnull ((2));
-+libc_hidden_proto(mkdirat)
- #endif
-
- /* Create a device file named PATH, with permission and special bits MODE
- and device number DEV (which can be constructed from major and minor
- device numbers with the `makedev' macro above). */
- #if defined __USE_MISC || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
--extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
-+extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
- __THROW __nonnull ((1));
- libc_hidden_proto(mknod)
-
-@@ -349,7 +352,7 @@
- /* Like mknod, create a new device file with permission bits MODE and
- device number DEV. But interpret relative PATH names relative to
- the directory associated with FD. */
--extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
-+extern int mknodat (int __fd, const char *__path, __mode_t __mode,
- __dev_t __dev) __THROW __nonnull ((2));
- libc_hidden_proto(mknodat)
- # endif
-@@ -357,22 +360,22 @@
-
-
- /* Create a new FIFO named PATH, with permission bits MODE. */
--extern int mkfifo (__const char *__path, __mode_t __mode)
-+extern int mkfifo (const char *__path, __mode_t __mode)
- __THROW __nonnull ((1));
-
- #ifdef __USE_ATFILE
- /* Like mkfifo, create a new FIFO with permission bits MODE. But
- interpret relative PATH names relative to the directory associated
- with FD. */
--extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
-+extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
- __THROW __nonnull ((2));
- #endif
-
- #ifdef __USE_ATFILE
- /* Set file access and modification times relative to directory file
- descriptor. */
--extern int utimensat (int __fd, __const char *__path,
-- __const struct timespec __times[2],
-+extern int utimensat (int __fd, const char *__path,
-+ const struct timespec __times[2],
- int __flags)
- __THROW __nonnull ((2));
- libc_hidden_proto(utimensat)
-@@ -380,7 +383,7 @@
-
- #ifdef __USE_XOPEN2K8
- /* Set file access and modification times of the file associated with FD. */
--extern int futimens (int __fd, __const struct timespec __times[2]) __THROW;
-+extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
- #endif
-
- /* on uClibc we have unversioned struct stat and mknod.
-diff -Nur uClibc-0.9.33.2/include/sys/statvfs.h uClibc-git/include/sys/statvfs.h
---- uClibc-0.9.33.2/include/sys/statvfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/statvfs.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STATVFS_H
- #define _SYS_STATVFS_H 1
-@@ -49,14 +48,14 @@
-
- /* Return information about the filesystem on which FILE resides. */
- #ifndef __USE_FILE_OFFSET64
--extern int statvfs (__const char *__restrict __file,
-+extern int statvfs (const char *__restrict __file,
- struct statvfs *__restrict __buf)
- __THROW __nonnull ((1, 2));
- libc_hidden_proto(statvfs)
- #else
- # ifdef __REDIRECT_NTH
- extern int __REDIRECT_NTH (statvfs,
-- (__const char *__restrict __file,
-+ (const char *__restrict __file,
- struct statvfs *__restrict __buf), statvfs64)
- __nonnull ((1, 2));
- # else
-@@ -64,7 +63,7 @@
- # endif
- #endif
- #ifdef __USE_LARGEFILE64
--extern int statvfs64 (__const char *__restrict __file,
-+extern int statvfs64 (const char *__restrict __file,
- struct statvfs64 *__restrict __buf)
- __THROW __nonnull ((1, 2));
- #endif
-diff -Nur uClibc-0.9.33.2/include/sys/swap.h uClibc-git/include/sys/swap.h
---- uClibc-0.9.33.2/include/sys/swap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/swap.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SWAP_H
-
-@@ -33,10 +32,10 @@
-
- /* Make the block special device PATH available to the system for swapping.
- This call is restricted to the super-user. */
--extern int swapon (__const char *__path, int __flags) __THROW;
-+extern int swapon (const char *__path, int __flags) __THROW;
-
- /* Stop using block special device PATH for swapping. */
--extern int swapoff (__const char *__path) __THROW;
-+extern int swapoff (const char *__path) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/syscall.h uClibc-git/include/sys/syscall.h
---- uClibc-0.9.33.2/include/sys/syscall.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/syscall.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYSCALL_H
- #define _SYSCALL_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/sysctl.h uClibc-git/include/sys/sysctl.h
---- uClibc-0.9.33.2/include/sys/sysctl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/sysctl.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SYSCTL_H
- #define _SYS_SYSCTL_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/sysinfo.h uClibc-git/include/sys/sysinfo.h
---- uClibc-0.9.33.2/include/sys/sysinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/sysinfo.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SYSINFO_H
- #define _SYS_SYSINFO_H 1
-@@ -24,6 +23,8 @@
- #ifndef _LINUX_KERNEL_H
- /* Include our own copy of struct sysinfo to avoid binary compatability
- * problems with Linux 2.4, which changed things. Grumble, grumble. */
-+#define _LINUX_SYSINFO_H
-+
- #define SI_LOAD_SHIFT 16
- struct sysinfo {
- long uptime; /* Seconds since boot */
-diff -Nur uClibc-0.9.33.2/include/sys/syslog.h uClibc-git/include/sys/syslog.h
---- uClibc-0.9.33.2/include/sys/syslog.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/syslog.h 2014-07-25 20:36:05.181326174 +0200
-@@ -179,14 +179,12 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern void closelog (void);
--libc_hidden_proto(closelog)
-
- /* Open connection to system logger.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern void openlog (__const char *__ident, int __option, int __facility);
--libc_hidden_proto(openlog)
-+extern void openlog (const char *__ident, int __option, int __facility);
-
- /* Set the log mask level. */
- extern int setlogmask (int __mask) __THROW;
-@@ -195,7 +193,7 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern void syslog (int __pri, __const char *__fmt, ...)
-+extern void syslog (int __pri, const char *__fmt, ...)
- __attribute__ ((__format__ (__printf__, 2, 3)));
- libc_hidden_proto(syslog)
-
-@@ -206,9 +204,8 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
-+extern void vsyslog (int __pri, const char *__fmt, __gnuc_va_list __ap)
- __attribute__ ((__format__ (__printf__, 2, 0)));
--libc_hidden_proto(vsyslog)
- #endif
-
- __END_DECLS
-diff -Nur uClibc-0.9.33.2/include/sys/sysmacros.h uClibc-git/include/sys/sysmacros.h
---- uClibc-0.9.33.2/include/sys/sysmacros.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/sysmacros.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SYSMACROS_H
- #define _SYS_SYSMACROS_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/timeb.h uClibc-git/include/sys/timeb.h
---- uClibc-0.9.33.2/include/sys/timeb.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/timeb.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_TIMEB_H
- #define _SYS_TIMEB_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/time.h uClibc-git/include/sys/time.h
---- uClibc-0.9.33.2/include/sys/time.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/time.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_TIME_H
- #define _SYS_TIME_H 1
-@@ -77,8 +76,8 @@
- #ifdef __USE_BSD
- /* Set the current time of day and timezone information.
- This call is restricted to the super-user. */
--extern int settimeofday (__const struct timeval *__tv,
-- __const struct timezone *__tz)
-+extern int settimeofday (const struct timeval *__tv,
-+ const struct timezone *__tz)
- __THROW __nonnull ((1));
- libc_hidden_proto(settimeofday)
-
-@@ -86,7 +85,7 @@
- If OLDDELTA is not NULL, it is filled in with the amount
- of time adjustment remaining to be done from the last `adjtime' call.
- This call is restricted to the super-user. */
--extern int adjtime (__const struct timeval *__delta,
-+extern int adjtime (const struct timeval *__delta,
- struct timeval *__olddelta) __THROW;
- #endif
-
-@@ -133,25 +132,25 @@
- set *OLD to the old value of timer WHICH.
- Returns 0 on success, -1 on errors. */
- extern int setitimer (__itimer_which_t __which,
-- __const struct itimerval *__restrict __new,
-+ const struct itimerval *__restrict __new,
- struct itimerval *__restrict __old) __THROW;
- libc_hidden_proto(setitimer)
-
- /* Change the access time of FILE to TVP[0] and the modification time of
- FILE to TVP[1]. If TVP is a null pointer, use the current time instead.
- Returns 0 on success, -1 on errors. */
--extern int utimes (__const char *__file, __const struct timeval __tvp[2])
-+extern int utimes (const char *__file, const struct timeval __tvp[2])
- __THROW __nonnull ((1));
- libc_hidden_proto(utimes)
-
- #ifdef __USE_BSD
- /* Same as `utimes', but does not follow symbolic links. */
--extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
-+extern int lutimes (const char *__file, const struct timeval __tvp[2])
- __THROW __nonnull ((1));
-
- #if 0
- /* Same as `utimes', but takes an open file descriptor instead of a name. */
--extern int futimes (int __fd, __const struct timeval __tvp[2]) __THROW;
-+extern int futimes (int __fd, const struct timeval __tvp[2]) __THROW;
- #endif
- #endif
-
-@@ -159,8 +158,8 @@
- /* Change the access time of FILE relative to FD to TVP[0] and the
- modification time of FILE to TVP[1]. If TVP is a null pointer, use
- the current time instead. Returns 0 on success, -1 on errors. */
--extern int futimesat (int __fd, __const char *__file,
-- __const struct timeval __tvp[2]) __THROW;
-+extern int futimesat (int __fd, const char *__file,
-+ const struct timeval __tvp[2]) __THROW;
- #endif
-
-
-diff -Nur uClibc-0.9.33.2/include/sys/times.h uClibc-git/include/sys/times.h
---- uClibc-0.9.33.2/include/sys/times.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/times.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 4.5.2 Process Times <sys/times.h>
-diff -Nur uClibc-0.9.33.2/include/sys/timex.h uClibc-git/include/sys/timex.h
---- uClibc-0.9.33.2/include/sys/timex.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/timex.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_TIMEX_H
- #define _SYS_TIMEX_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/types.h uClibc-git/include/sys/types.h
---- uClibc-0.9.33.2/include/sys/types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/types.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-@@ -165,7 +164,7 @@
- typedef int int32_t;
- # if __WORDSIZE == 64
- typedef long int int64_t;
--# elif defined __GNUC__ || defined __ICC
-+# elif defined __GNUC__ || defined __ICC || defined __TenDRA__
- __extension__ typedef long long int int64_t;
- # endif
- # endif
-@@ -176,7 +175,7 @@
- typedef unsigned int u_int32_t;
- # if __WORDSIZE == 64
- typedef unsigned long int u_int64_t;
--# elif defined __GNUC__ || defined __ICC
-+# elif defined __GNUC__ || defined __ICC || defined __TenDRA__
- __extension__ typedef unsigned long long int u_int64_t;
- # endif
-
-diff -Nur uClibc-0.9.33.2/include/sys/uio.h uClibc-git/include/sys/uio.h
---- uClibc-0.9.33.2/include/sys/uio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/uio.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UIO_H
- #define _SYS_UIO_H 1
-@@ -37,7 +36,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count);
-+extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count);
-
- /* Write data pointed by the buffers described by IOVEC, which
- is a vector of COUNT `struct iovec's, to file descriptor FD.
-@@ -47,7 +46,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count);
-+extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count);
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/un.h uClibc-git/include/sys/un.h
---- uClibc-0.9.33.2/include/sys/un.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/un.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UN_H
- #define _SYS_UN_H 1
-diff -Nur uClibc-0.9.33.2/include/sys/ustat.h uClibc-git/include/sys/ustat.h
---- uClibc-0.9.33.2/include/sys/ustat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/ustat.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * This interface is obsolete. Use <sys/statfs.h> instead.
-diff -Nur uClibc-0.9.33.2/include/sys/utsname.h uClibc-git/include/sys/utsname.h
---- uClibc-0.9.33.2/include/sys/utsname.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/utsname.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 4.4 System Identification <sys/utsname.h>
-diff -Nur uClibc-0.9.33.2/include/sys/wait.h uClibc-git/include/sys/wait.h
---- uClibc-0.9.33.2/include/sys/wait.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/wait.h 2014-07-25 20:36:05.181326174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 3.2.1 Wait for Process Termination <sys/wait.h>
-@@ -47,7 +46,7 @@
- (__extension__ (((union { __typeof(status) __in; int __i; }) \
- { .__in = (status) }).__i))
- # else
--# define __WAIT_INT(status) (*(__const int *) &(status))
-+# define __WAIT_INT(status) (*(const int *) &(status))
- # endif
-
- /* This is the type of the argument to `wait'. The funky union
-@@ -137,7 +136,10 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
-+#ifdef _LIBC
-+extern __typeof(waitpid) __waitpid_nocancel attribute_hidden;
- libc_hidden_proto(waitpid)
-+#endif
-
- #if defined __USE_SVID || defined __USE_XOPEN
- # define __need_siginfo_t
-@@ -158,10 +160,6 @@
- #endif
-
- #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
--/* This being here makes the prototypes valid whether or not
-- we have already included <sys/resource.h> to define `struct rusage'. */
--struct rusage;
--
- /* Wait for a child to exit. When one does, put its status in *STAT_LOC and
- return its process ID. For errors return (pid_t) -1. If USAGE is not
- nil, store information about the child's resource usage there. If the
-@@ -175,9 +173,12 @@
- /* PID is like waitpid. Other args are like wait3. */
- extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
- struct rusage *__usage) __THROW;
--libc_hidden_proto(wait4)
- #endif /* Use BSD. */
-
-+#ifdef _LIBC
-+extern __pid_t __wait4_nocancel(__pid_t, __WAIT_STATUS, int, struct rusage *) attribute_hidden;
-+#endif
-+
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/sys/xattr.h uClibc-git/include/sys/xattr.h
---- uClibc-0.9.33.2/include/sys/xattr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/sys/xattr.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_XATTR_H
- #define _SYS_XATTR_H 1
-@@ -37,48 +36,48 @@
-
- /* Set the attribute NAME of the file pointed to by PATH to VALUE (which
- is SIZE bytes long). Return 0 on success, -1 for errors. */
--extern int setxattr (__const char *__path, __const char *__name,
-- __const void *__value, size_t __size, int __flags)
-+extern int setxattr (const char *__path, const char *__name,
-+ const void *__value, size_t __size, int __flags)
- __THROW;
-
- /* Set the attribute NAME of the file pointed to by PATH to VALUE (which is
- SIZE bytes long), not following symlinks for the last pathname component.
- Return 0 on success, -1 for errors. */
--extern int lsetxattr (__const char *__path, __const char *__name,
-- __const void *__value, size_t __size, int __flags)
-+extern int lsetxattr (const char *__path, const char *__name,
-+ const void *__value, size_t __size, int __flags)
- __THROW;
-
- /* Set the attribute NAME of the file descriptor FD to VALUE (which is SIZE
- bytes long). Return 0 on success, -1 for errors. */
--extern int fsetxattr (int __fd, __const char *__name, __const void *__value,
-+extern int fsetxattr (int __fd, const char *__name, const void *__value,
- size_t __size, int __flags) __THROW;
-
- /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
- SIZE bytes long). Return 0 on success, -1 for errors. */
--extern ssize_t getxattr (__const char *__path, __const char *__name,
-+extern ssize_t getxattr (const char *__path, const char *__name,
- void *__value, size_t __size) __THROW;
-
- /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
- SIZE bytes long), not following symlinks for the last pathname component.
- Return 0 on success, -1 for errors. */
--extern ssize_t lgetxattr (__const char *__path, __const char *__name,
-+extern ssize_t lgetxattr (const char *__path, const char *__name,
- void *__value, size_t __size) __THROW;
-
- /* Get the attribute NAME of the file descriptor FD to VALUE (which is SIZE
- bytes long). Return 0 on success, -1 for errors. */
--extern ssize_t fgetxattr (int __fd, __const char *__name, void *__value,
-+extern ssize_t fgetxattr (int __fd, const char *__name, void *__value,
- size_t __size) __THROW;
-
- /* List attributes of the file pointed to by PATH into the user-supplied
- buffer LIST (which is SIZE bytes big). Return 0 on success, -1 for
- errors. */
--extern ssize_t listxattr (__const char *__path, char *__list, size_t __size)
-+extern ssize_t listxattr (const char *__path, char *__list, size_t __size)
- __THROW;
-
- /* List attributes of the file pointed to by PATH into the user-supplied
- buffer LIST (which is SIZE bytes big), not following symlinks for the
- last pathname component. Return 0 on success, -1 for errors. */
--extern ssize_t llistxattr (__const char *__path, char *__list, size_t __size)
-+extern ssize_t llistxattr (const char *__path, char *__list, size_t __size)
- __THROW;
-
- /* List attributes of the file descriptor FD into the user-supplied buffer
-@@ -88,16 +87,16 @@
-
- /* Remove the attribute NAME from the file pointed to by PATH. Return 0
- on success, -1 for errors. */
--extern int removexattr (__const char *__path, __const char *__name) __THROW;
-+extern int removexattr (const char *__path, const char *__name) __THROW;
-
- /* Remove the attribute NAME from the file pointed to by PATH, not
- following symlinks for the last pathname component. Return 0 on
- success, -1 for errors. */
--extern int lremovexattr (__const char *__path, __const char *__name) __THROW;
-+extern int lremovexattr (const char *__path, const char *__name) __THROW;
-
- /* Remove the attribute NAME from the file descriptor FD. Return 0 on
- success, -1 for errors. */
--extern int fremovexattr (int __fd, __const char *__name) __THROW;
-+extern int fremovexattr (int __fd, const char *__name) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/include/tar.h uClibc-git/include/tar.h
---- uClibc-0.9.33.2/include/tar.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/tar.h 2014-07-25 20:36:05.181326174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TAR_H
- #define _TAR_H 1
-diff -Nur uClibc-0.9.33.2/include/termios.h uClibc-git/include/termios.h
---- uClibc-0.9.33.2/include/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/termios.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
-@@ -46,10 +45,10 @@
- #endif
-
- /* Return the output baud rate stored in *TERMIOS_P. */
--extern speed_t cfgetospeed (__const struct termios *__termios_p) __THROW;
-+extern speed_t cfgetospeed (const struct termios *__termios_p) __THROW;
-
- /* Return the input baud rate stored in *TERMIOS_P. */
--extern speed_t cfgetispeed (__const struct termios *__termios_p) __THROW;
-+extern speed_t cfgetispeed (const struct termios *__termios_p) __THROW;
-
- /* Set the output baud rate stored in *TERMIOS_P to SPEED. */
- extern int cfsetospeed (struct termios *__termios_p, speed_t __speed) __THROW;
-@@ -72,7 +71,7 @@
- /* Set the state of FD to *TERMIOS_P.
- Values for OPTIONAL_ACTIONS (TCSA*) are in <bits/termios.h>. */
- extern int tcsetattr (int __fd, int __optional_actions,
-- __const struct termios *__termios_p) __THROW;
-+ const struct termios *__termios_p) __THROW;
- libc_hidden_proto(tcsetattr)
-
-
-diff -Nur uClibc-0.9.33.2/include/tgmath.h uClibc-git/include/tgmath.h
---- uClibc-0.9.33.2/include/tgmath.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/tgmath.h 2014-07-25 20:36:05.181326174 +0200
-@@ -1,4 +1,5 @@
--/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-+/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2007
-+ Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.22 Type-generic math <tgmath.h>
-@@ -47,174 +47,199 @@
-
- /* 1 if 'type' is a floating type, 0 if 'type' is an integer type.
- Allows for _Bool. Expands to an integer constant expression. */
--# define __floating_type(type) (((type) 0.25) && ((type) 0.25 - 1))
-+# if 0 /* __GNUC_PREREQ (3, 1) */
-+# define __floating_type(type) \
-+ (__builtin_classify_type ((type) 0) == 8 \
-+ || (__builtin_classify_type ((type) 0) == 9 \
-+ && __builtin_classify_type (__real__ ((type) 0)) == 8))
-+# else
-+# define __floating_type(type) (((type) 0.25) && ((type) 0.25 - 1))
-+# endif
-
- /* The tgmath real type for T, where E is 0 if T is an integer type and
- 1 for a floating type. */
- # define __tgmath_real_type_sub(T, E) \
-- __typeof__(*(0 ? (__typeof__ (0 ? (double *) 0 : (void *) (E))) 0 \
-- : (__typeof__ (0 ? (T *) 0 : (void *) (!(E)))) 0))
-+ __typeof__ (*(0 ? (__typeof__ (0 ? (double *) 0 : (void *) (E))) 0 \
-+ : (__typeof__ (0 ? (T *) 0 : (void *) (!(E)))) 0))
-
- /* The tgmath real type of EXPR. */
- # define __tgmath_real_type(expr) \
-- __tgmath_real_type_sub(__typeof__(expr), __floating_type(__typeof__(expr)))
-+ __tgmath_real_type_sub (__typeof__ ((__typeof__ (expr)) 0), \
-+ __floating_type (__typeof__ (expr)))
-
-
- /* We have two kinds of generic macros: to support functions which are
- only defined on real valued parameters and those which are defined
- for complex functions as well. */
- # define __TGMATH_UNARY_REAL_ONLY(Val, Fct) \
-- (__extension__ ({ __tgmath_real_type (Val) __tgmres; \
-- if (sizeof (Val) == sizeof (double) \
-- || __builtin_classify_type (Val) != 8) \
-- __tgmres = Fct (Val); \
-- else if (sizeof (Val) == sizeof (float)) \
-- __tgmres = Fct##f (Val); \
-- else \
-- __tgmres = __tgml(Fct) (Val); \
-- __tgmres; }))
-+ (__extension__ ((sizeof (Val) == sizeof (double) \
-+ || __builtin_classify_type (Val) != 8) \
-+ ? (__tgmath_real_type (Val)) Fct (Val) \
-+ : (sizeof (Val) == sizeof (float)) \
-+ ? (__tgmath_real_type (Val)) Fct##f (Val) \
-+ : (__tgmath_real_type (Val)) __tgml(Fct) (Val)))
-+
-+# define __TGMATH_UNARY_REAL_RET_ONLY(Val, RetType, Fct) \
-+ (__extension__ ((sizeof (Val) == sizeof (double) \
-+ || __builtin_classify_type (Val) != 8) \
-+ ? (RetType) Fct (Val) \
-+ : (sizeof (Val) == sizeof (float)) \
-+ ? (RetType) Fct##f (Val) \
-+ : (RetType) __tgml(Fct) (Val)))
-
- # define __TGMATH_BINARY_FIRST_REAL_ONLY(Val1, Val2, Fct) \
-- (__extension__ ({ __tgmath_real_type (Val1) __tgmres; \
-- if (sizeof (Val1) == sizeof (double) \
-- || __builtin_classify_type (Val1) != 8) \
-- __tgmres = Fct (Val1, Val2); \
-- else if (sizeof (Val1) == sizeof (float)) \
-- __tgmres = Fct##f (Val1, Val2); \
-- else \
-- __tgmres = __tgml(Fct) (Val1, Val2); \
-- __tgmres; }))
-+ (__extension__ ((sizeof (Val1) == sizeof (double) \
-+ || __builtin_classify_type (Val1) != 8) \
-+ ? (__tgmath_real_type (Val1)) Fct (Val1, Val2) \
-+ : (sizeof (Val1) == sizeof (float)) \
-+ ? (__tgmath_real_type (Val1)) Fct##f (Val1, Val2) \
-+ : (__tgmath_real_type (Val1)) __tgml(Fct) (Val1, Val2)))
-
- # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
-- (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \
-- if ((sizeof (Val1) > sizeof (double) \
-- || sizeof (Val2) > sizeof (double)) \
-- && __builtin_classify_type ((Val1) + (Val2)) == 8) \
-- __tgmres = __tgml(Fct) (Val1, Val2); \
-- else if (sizeof (Val1) == sizeof (double) \
-- || sizeof (Val2) == sizeof (double) \
-- || __builtin_classify_type (Val1) != 8 \
-- || __builtin_classify_type (Val2) != 8) \
-- __tgmres = Fct (Val1, Val2); \
-- else \
-- __tgmres = Fct##f (Val1, Val2); \
-- __tgmres; }))
-+ (__extension__ (((sizeof (Val1) > sizeof (double) \
-+ || sizeof (Val2) > sizeof (double)) \
-+ && __builtin_classify_type ((Val1) + (Val2)) == 8) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ __tgml(Fct) (Val1, Val2) \
-+ : (sizeof (Val1) == sizeof (double) \
-+ || sizeof (Val2) == sizeof (double) \
-+ || __builtin_classify_type (Val1) != 8 \
-+ || __builtin_classify_type (Val2) != 8) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Fct (Val1, Val2) \
-+ : (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Fct##f (Val1, Val2)))
-
- # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
-- (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \
-- if ((sizeof (Val1) > sizeof (double) \
-- || sizeof (Val2) > sizeof (double)) \
-- && __builtin_classify_type ((Val1) + (Val2)) == 8) \
-- __tgmres = __tgml(Fct) (Val1, Val2, Val3); \
-- else if (sizeof (Val1) == sizeof (double) \
-- || sizeof (Val2) == sizeof (double) \
-- || __builtin_classify_type (Val1) != 8 \
-- || __builtin_classify_type (Val2) != 8) \
-- __tgmres = Fct (Val1, Val2, Val3); \
-- else \
-- __tgmres = Fct##f (Val1, Val2, Val3); \
-- __tgmres; }))
-+ (__extension__ (((sizeof (Val1) > sizeof (double) \
-+ || sizeof (Val2) > sizeof (double)) \
-+ && __builtin_classify_type ((Val1) + (Val2)) == 8) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ __tgml(Fct) (Val1, Val2, Val3) \
-+ : (sizeof (Val1) == sizeof (double) \
-+ || sizeof (Val2) == sizeof (double) \
-+ || __builtin_classify_type (Val1) != 8 \
-+ || __builtin_classify_type (Val2) != 8) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Fct (Val1, Val2, Val3) \
-+ : (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Fct##f (Val1, Val2, Val3)))
-
- # define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
-- (__extension__ ({ __tgmath_real_type ((Val1) + (Val2) + (Val3)) __tgmres;\
-- if ((sizeof (Val1) > sizeof (double) \
-- || sizeof (Val2) > sizeof (double) \
-- || sizeof (Val3) > sizeof (double)) \
-- && __builtin_classify_type ((Val1) + (Val2) \
-- + (Val3)) == 8) \
-- __tgmres = __tgml(Fct) (Val1, Val2, Val3); \
-- else if (sizeof (Val1) == sizeof (double) \
-- || sizeof (Val2) == sizeof (double) \
-- || sizeof (Val3) == sizeof (double) \
-- || __builtin_classify_type (Val1) != 8 \
-- || __builtin_classify_type (Val2) != 8 \
-- || __builtin_classify_type (Val3) != 8) \
-- __tgmres = Fct (Val1, Val2, Val3); \
-- else \
-- __tgmres = Fct##f (Val1, Val2, Val3); \
-- __tgmres; }))
-+ (__extension__ (((sizeof (Val1) > sizeof (double) \
-+ || sizeof (Val2) > sizeof (double) \
-+ || sizeof (Val3) > sizeof (double)) \
-+ && __builtin_classify_type ((Val1) + (Val2) + (Val3)) \
-+ == 8) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0 \
-+ + (__tgmath_real_type (Val3)) 0)) \
-+ __tgml(Fct) (Val1, Val2, Val3) \
-+ : (sizeof (Val1) == sizeof (double) \
-+ || sizeof (Val2) == sizeof (double) \
-+ || sizeof (Val3) == sizeof (double) \
-+ || __builtin_classify_type (Val1) != 8 \
-+ || __builtin_classify_type (Val2) != 8 \
-+ || __builtin_classify_type (Val3) != 8) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0 \
-+ + (__tgmath_real_type (Val3)) 0)) \
-+ Fct (Val1, Val2, Val3) \
-+ : (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0 \
-+ + (__tgmath_real_type (Val3)) 0)) \
-+ Fct##f (Val1, Val2, Val3)))
-
- /* XXX This definition has to be changed as soon as the compiler understands
- the imaginary keyword. */
- # define __TGMATH_UNARY_REAL_IMAG(Val, Fct, Cfct) \
-- (__extension__ ({ __tgmath_real_type (Val) __tgmres; \
-- if (sizeof (__real__ (Val)) > sizeof (double) \
-- && __builtin_classify_type (__real__ (Val)) == 8) \
-- { \
-- if (sizeof (__real__ (Val)) == sizeof (Val)) \
-- __tgmres = __tgml(Fct) (Val); \
-- else \
-- __tgmres = __tgml(Cfct) (Val); \
-- } \
-- else if (sizeof (__real__ (Val)) == sizeof (double) \
-- || __builtin_classify_type (__real__ (Val)) \
-- != 8) \
-- { \
-- if (sizeof (__real__ (Val)) == sizeof (Val)) \
-- __tgmres = Fct (Val); \
-- else \
-- __tgmres = Cfct (Val); \
-- } \
-- else \
-- { \
-- if (sizeof (__real__ (Val)) == sizeof (Val)) \
-- __tgmres = Fct##f (Val); \
-- else \
-- __tgmres = Cfct##f (Val); \
-- } \
-- __tgmres; }))
-+ (__extension__ ((sizeof (__real__ (Val)) == sizeof (double) \
-+ || __builtin_classify_type (__real__ (Val)) != 8) \
-+ ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
-+ ? (__tgmath_real_type (Val)) Fct (Val) \
-+ : (__tgmath_real_type (Val)) Cfct (Val)) \
-+ : (sizeof (__real__ (Val)) == sizeof (float)) \
-+ ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
-+ ? (__tgmath_real_type (Val)) Fct##f (Val) \
-+ : (__tgmath_real_type (Val)) Cfct##f (Val)) \
-+ : ((sizeof (__real__ (Val)) == sizeof (Val)) \
-+ ? (__tgmath_real_type (Val)) __tgml(Fct) (Val) \
-+ : (__tgmath_real_type (Val)) __tgml(Cfct) (Val))))
-+
-+# define __TGMATH_UNARY_IMAG(Val, Cfct) \
-+ (__extension__ ((sizeof (__real__ (Val)) == sizeof (double) \
-+ || __builtin_classify_type (__real__ (Val)) != 8) \
-+ ? (__typeof__ ((__tgmath_real_type (Val)) 0 \
-+ + _Complex_I)) Cfct (Val) \
-+ : (sizeof (__real__ (Val)) == sizeof (float)) \
-+ ? (__typeof__ ((__tgmath_real_type (Val)) 0 \
-+ + _Complex_I)) Cfct##f (Val) \
-+ : (__typeof__ ((__tgmath_real_type (Val)) 0 \
-+ + _Complex_I)) __tgml(Cfct) (Val)))
-
- /* XXX This definition has to be changed as soon as the compiler understands
- the imaginary keyword. */
--# define __TGMATH_UNARY_IMAG_ONLY(Val, Fct) \
-- (__extension__ ({ __tgmath_real_type (Val) __tgmres; \
-- if (sizeof (Val) == sizeof (__complex__ double) \
-- || __builtin_classify_type (__real__ (Val)) != 8) \
-- __tgmres = Fct (Val); \
-- else if (sizeof (Val) == sizeof (__complex__ float)) \
-- __tgmres = Fct##f (Val); \
-- else \
-- __tgmres = __tgml(Fct) (Val); \
-- __tgmres; }))
-+# define __TGMATH_UNARY_REAL_IMAG_RET_REAL(Val, Fct, Cfct) \
-+ (__extension__ ((sizeof (__real__ (Val)) == sizeof (double) \
-+ || __builtin_classify_type (__real__ (Val)) != 8) \
-+ ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
-+ ? (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
-+ Fct (Val) \
-+ : (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
-+ Cfct (Val)) \
-+ : (sizeof (__real__ (Val)) == sizeof (float)) \
-+ ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
-+ ? (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
-+ Fct##f (Val) \
-+ : (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
-+ Cfct##f (Val)) \
-+ : ((sizeof (__real__ (Val)) == sizeof (Val)) \
-+ ? (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
-+ __tgml(Fct) (Val) \
-+ : (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
-+ __tgml(Cfct) (Val))))
-
- /* XXX This definition has to be changed as soon as the compiler understands
- the imaginary keyword. */
- # define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \
-- (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \
-- if ((sizeof (__real__ (Val1)) > sizeof (double) \
-- || sizeof (__real__ (Val2)) > sizeof (double)) \
-- && __builtin_classify_type (__real__ (Val1) \
-- + __real__ (Val2)) \
-- == 8) \
-- { \
-- if (sizeof (__real__ (Val1)) == sizeof (Val1) \
-- && sizeof (__real__ (Val2)) == sizeof (Val2)) \
-- __tgmres = __tgml(Fct) (Val1, Val2); \
-- else \
-- __tgmres = __tgml(Cfct) (Val1, Val2); \
-- } \
-- else if (sizeof (__real__ (Val1)) == sizeof (double) \
-- || sizeof (__real__ (Val2)) == sizeof(double) \
-- || (__builtin_classify_type (__real__ (Val1)) \
-- != 8) \
-- || (__builtin_classify_type (__real__ (Val2)) \
-- != 8)) \
-- { \
-- if (sizeof (__real__ (Val1)) == sizeof (Val1) \
-- && sizeof (__real__ (Val2)) == sizeof (Val2)) \
-- __tgmres = Fct (Val1, Val2); \
-- else \
-- __tgmres = Cfct (Val1, Val2); \
-- } \
-- else \
-- { \
-- if (sizeof (__real__ (Val1)) == sizeof (Val1) \
-- && sizeof (__real__ (Val2)) == sizeof (Val2)) \
-- __tgmres = Fct##f (Val1, Val2); \
-- else \
-- __tgmres = Cfct##f (Val1, Val2); \
-- } \
-- __tgmres; }))
-+ (__extension__ (((sizeof (__real__ (Val1)) > sizeof (double) \
-+ || sizeof (__real__ (Val2)) > sizeof (double)) \
-+ && __builtin_classify_type (__real__ (Val1) \
-+ + __real__ (Val2)) == 8) \
-+ ? ((sizeof (__real__ (Val1)) == sizeof (Val1) \
-+ && sizeof (__real__ (Val2)) == sizeof (Val2)) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ __tgml(Fct) (Val1, Val2) \
-+ : (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ __tgml(Cfct) (Val1, Val2)) \
-+ : (sizeof (__real__ (Val1)) == sizeof (double) \
-+ || sizeof (__real__ (Val2)) == sizeof (double) \
-+ || __builtin_classify_type (__real__ (Val1)) != 8 \
-+ || __builtin_classify_type (__real__ (Val2)) != 8) \
-+ ? ((sizeof (__real__ (Val1)) == sizeof (Val1) \
-+ && sizeof (__real__ (Val2)) == sizeof (Val2)) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Fct (Val1, Val2) \
-+ : (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Cfct (Val1, Val2)) \
-+ : ((sizeof (__real__ (Val1)) == sizeof (Val1) \
-+ && sizeof (__real__ (Val2)) == sizeof (Val2)) \
-+ ? (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Fct##f (Val1, Val2) \
-+ : (__typeof ((__tgmath_real_type (Val1)) 0 \
-+ + (__tgmath_real_type (Val2)) 0)) \
-+ Cfct##f (Val1, Val2))))
- #else
- # error "Unsupported compiler; you cannot use <tgmath.h>"
- #endif
-@@ -317,7 +342,7 @@
- #define ceil(Val) __TGMATH_UNARY_REAL_ONLY (Val, ceil)
-
- /* Absolute value of X. */
--#define fabs(Val) __TGMATH_UNARY_REAL_IMAG (Val, fabs, cabs)
-+#define fabs(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, fabs, cabs)
-
- /* Largest integer not greater than X. */
- #define floor(Val) __TGMATH_UNARY_REAL_ONLY (Val, floor)
-@@ -345,13 +370,13 @@
-
- /* Round X to nearest integral value according to current rounding
- direction. */
--#define lrint(Val) __TGMATH_UNARY_REAL_ONLY (Val, lrint)
--#define llrint(Val) __TGMATH_UNARY_REAL_ONLY (Val, llrint)
-+#define lrint(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long int, lrint)
-+#define llrint(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long long int, llrint)
-
- /* Round X to nearest integral value, rounding halfway cases away from
- zero. */
--#define lround(Val) __TGMATH_UNARY_REAL_ONLY (Val, lround)
--#define llround(Val) __TGMATH_UNARY_REAL_ONLY (Val, llround)
-+#define lround(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long int, lround)
-+#define llround(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long long int, llround)
-
-
- /* Return X with its signed changed to Y's. */
-@@ -376,7 +401,7 @@
- /* Return the remainder of integer divison X / Y with infinite precision. */
- #define remainder(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, remainder)
-
--#if defined __UCLIBC_SUSV3_LEGACY__
-+#ifdef __UCLIBC_SUSV3_LEGACY__
- /* Return X times (2 to the Nth power). */
- #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
- # define scalb(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, scalb)
-@@ -388,10 +413,10 @@
- /* Return X times (2 to the Nth power). */
- #define scalbln(Val1, Val2) \
- __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, scalbln)
--#endif /* UCLIBC_SUSV3_LEGACY */
-+#endif /* __UCLIBC_SUSV3_LEGACY__ */
-
- /* Return the binary exponent of X, which must be nonzero. */
--#define ilogb(Val) __TGMATH_UNARY_REAL_ONLY (Val, ilogb)
-+#define ilogb(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, int, ilogb)
-
-
- /* Return positive difference between X and Y. */
-@@ -412,21 +437,21 @@
- /* Absolute value, conjugates, and projection. */
-
- /* Argument value of Z. */
--#define carg(Val) __TGMATH_UNARY_IMAG_ONLY (Val, carg)
-+#define carg(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, carg, carg)
-
- /* Complex conjugate of Z. */
--#define conj(Val) __TGMATH_UNARY_IMAG_ONLY (Val, conj)
-+#define conj(Val) __TGMATH_UNARY_IMAG (Val, conj)
-
- /* Projection of Z onto the Riemann sphere. */
--#define cproj(Val) __TGMATH_UNARY_IMAG_ONLY (Val, cproj)
-+#define cproj(Val) __TGMATH_UNARY_IMAG (Val, cproj)
-
-
- /* Decomposing complex values. */
-
- /* Imaginary part of Z. */
--#define cimag(Val) __TGMATH_UNARY_IMAG_ONLY (Val, cimag)
-+#define cimag(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, cimag, cimag)
-
- /* Real part of Z. */
--#define creal(Val) __TGMATH_UNARY_IMAG_ONLY (Val, creal)
-+#define creal(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, creal, creal)
-
- #endif /* tgmath.h */
-diff -Nur uClibc-0.9.33.2/include/time.h uClibc-git/include/time.h
---- uClibc-0.9.33.2/include/time.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/time.h 2014-07-25 20:36:05.181326174 +0200
-@@ -1,5 +1,4 @@
--/* Copyright (C) 1991-1999,2000,2001,2002,2003,2006
-- Free Software Foundation, Inc.
-+/* Copyright (C) 1991-2003,2006,2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -13,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.23 Date and time <time.h>
-@@ -146,10 +144,10 @@
- #ifdef __UCLIBC_HAS_TM_EXTENSIONS__
- #ifdef __USE_BSD
- long int tm_gmtoff; /* Seconds east of UTC. */
-- __const char *tm_zone; /* Timezone abbreviation. */
-+ const char *tm_zone; /* Timezone abbreviation. */
- #else
- long int __tm_gmtoff; /* Seconds east of UTC. */
-- __const char *__tm_zone; /* Timezone abbreviation. */
-+ const char *__tm_zone; /* Timezone abbreviation. */
- #endif
- #endif /* __UCLIBC_HAS_TM_EXTENSIONS__ */
- };
-@@ -195,7 +193,9 @@
- __THROW __attribute__ ((__const__));
- #endif /* __UCLIBC_HAS_FLOATS__ */
-
--#define CLOCK_IDFIELD_SIZE 3
-+#ifdef _LIBC
-+# define CLOCK_IDFIELD_SIZE 3
-+#endif
-
- /* Return the `time_t' representation of TP and normalize TP. */
- extern time_t mktime (struct tm *__tp) __THROW;
-@@ -205,32 +205,34 @@
- Write no more than MAXSIZE characters and return the number
- of characters written, or 0 if it would exceed MAXSIZE. */
- extern size_t strftime (char *__restrict __s, size_t __maxsize,
-- __const char *__restrict __format,
-- __const struct tm *__restrict __tp) __THROW;
-+ const char *__restrict __format,
-+ const struct tm *__restrict __tp) __THROW;
- __END_NAMESPACE_STD
-
- # ifdef __USE_XOPEN
- /* Parse S according to FORMAT and store binary time information in TP.
- The return value is a pointer to the first unparsed character in S. */
--extern char *strptime (__const char *__restrict __s,
-- __const char *__restrict __fmt, struct tm *__tp)
-+extern char *strptime (const char *__restrict __s,
-+ const char *__restrict __fmt, struct tm *__tp)
- __THROW;
- # endif
-
- #ifdef __UCLIBC_HAS_XLOCALE__
--# ifdef __USE_GNU
-+# ifdef __USE_XOPEN2K8
- /* Similar to the two functions above but take the information from
- the provided locale and not the global locale. */
- # include <xlocale.h>
-
- extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
-- __const char *__restrict __format,
-- __const struct tm *__restrict __tp,
-+ const char *__restrict __format,
-+ const struct tm *__restrict __tp,
- __locale_t __loc) __THROW;
- libc_hidden_proto(strftime_l)
-+# endif
-
--extern char *strptime_l (__const char *__restrict __s,
-- __const char *__restrict __fmt, struct tm *__tp,
-+# ifdef __USE_GNU
-+extern char *strptime_l (const char *__restrict __s,
-+ const char *__restrict __fmt, struct tm *__tp,
- __locale_t __loc) __THROW;
- libc_hidden_proto(strptime_l)
- # endif
-@@ -240,23 +242,23 @@
- __BEGIN_NAMESPACE_STD
- /* Return the `struct tm' representation of *TIMER
- in Universal Coordinated Time (aka Greenwich Mean Time). */
--extern struct tm *gmtime (__const time_t *__timer) __THROW;
-+extern struct tm *gmtime (const time_t *__timer) __THROW;
-
- /* Return the `struct tm' representation
- of *TIMER in the local timezone. */
--extern struct tm *localtime (__const time_t *__timer) __THROW;
-+extern struct tm *localtime (const time_t *__timer) __THROW;
- libc_hidden_proto(localtime)
- __END_NAMESPACE_STD
-
- # if defined __USE_POSIX || defined __USE_MISC
- /* Return the `struct tm' representation of *TIMER in UTC,
- using *TP to store the result. */
--extern struct tm *gmtime_r (__const time_t *__restrict __timer,
-+extern struct tm *gmtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __THROW;
-
- /* Return the `struct tm' representation of *TIMER in local time,
- using *TP to store the result. */
--extern struct tm *localtime_r (__const time_t *__restrict __timer,
-+extern struct tm *localtime_r (const time_t *__restrict __timer,
- struct tm *__restrict __tp) __THROW;
- libc_hidden_proto(localtime_r)
- # endif /* POSIX or misc */
-@@ -264,11 +266,11 @@
- __BEGIN_NAMESPACE_STD
- /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
- that is the representation of TP in this format. */
--extern char *asctime (__const struct tm *__tp) __THROW;
-+extern char *asctime (const struct tm *__tp) __THROW;
- libc_hidden_proto(asctime)
-
- /* Equivalent to `asctime (localtime (timer))'. */
--extern char *ctime (__const time_t *__timer) __THROW;
-+extern char *ctime (const time_t *__timer) __THROW;
- libc_hidden_proto(ctime)
- __END_NAMESPACE_STD
-
-@@ -277,12 +279,12 @@
-
- /* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
- that is the representation of TP in this format. */
--extern char *asctime_r (__const struct tm *__restrict __tp,
-+extern char *asctime_r (const struct tm *__restrict __tp,
- char *__restrict __buf) __THROW;
- libc_hidden_proto(asctime_r)
-
- /* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
--extern char *ctime_r (__const time_t *__restrict __timer,
-+extern char *ctime_r (const time_t *__restrict __timer,
- char *__restrict __buf) __THROW;
- # endif /* POSIX or misc */
-
-@@ -314,7 +316,8 @@
- # ifdef __USE_SVID
- /* Set the system time to *WHEN.
- This call is restricted to the superuser. */
--extern int stime (__const time_t *__when) __THROW;
-+extern int stime (const time_t *__when) __THROW;
-+libc_hidden_proto(stime)
- # endif
-
-
-@@ -345,7 +348,7 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern int nanosleep (__const struct timespec *__requested_time,
-+extern int nanosleep (const struct timespec *__requested_time,
- struct timespec *__remaining);
- libc_hidden_proto(nanosleep)
-
-@@ -358,23 +361,24 @@
- extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
-
- /* Set clock CLOCK_ID to value TP. */
--extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
-+extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
- __THROW;
- # endif /* __UCLIBC_HAS_REALTIME__ */
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
-+
-+# if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
-+# ifdef __UCLIBC_HAS_THREADS_NATIVE__
- /* High-resolution sleep with the specified clock.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int clock_nanosleep (clockid_t __clock_id, int __flags,
-- __const struct timespec *__req,
-+ const struct timespec *__req,
- struct timespec *__rem);
-
- /* Return clock ID for CPU-time clock. */
- extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
--# endif
--# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
-+# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
-+# endif
-
- # if defined __UCLIBC_HAS_REALTIME__
- /* Create new per-process timer using CLOCK_ID. */
-@@ -387,7 +391,7 @@
-
- /* Set timer TIMERID to VALUE, returning old value in OVLAUE. */
- extern int timer_settime (timer_t __timerid, int __flags,
-- __const struct itimerspec *__restrict __value,
-+ const struct itimerspec *__restrict __value,
- struct itimerspec *__restrict __ovalue) __THROW;
-
- /* Get current value of timer TIMERID and store it in VLAUE. */
-@@ -423,7 +427,7 @@
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
--extern struct tm *getdate (__const char *__string);
-+extern struct tm *getdate (const char *__string);
- # endif
-
- # ifdef __USE_GNU
-@@ -437,7 +441,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int getdate_r (__const char *__restrict __string,
-+extern int getdate_r (const char *__restrict __string,
- struct tm *__restrict __resbufp);
- # endif
- #endif /* __UCLIBC_MJN3_ONLY__ */
-diff -Nur uClibc-0.9.33.2/include/ttyent.h uClibc-git/include/ttyent.h
---- uClibc-0.9.33.2/include/ttyent.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ttyent.h 2014-07-25 20:36:05.181326174 +0200
-@@ -57,7 +57,7 @@
-
- extern struct ttyent *getttyent (void) __THROW;
- libc_hidden_proto(getttyent)
--extern struct ttyent *getttynam (__const char *__tty) __THROW;
-+extern struct ttyent *getttynam (const char *__tty) __THROW;
- extern int setttyent (void) __THROW;
- libc_hidden_proto(setttyent)
- extern int endttyent (void) __THROW;
-diff -Nur uClibc-0.9.33.2/include/ucontext.h uClibc-git/include/ucontext.h
---- uClibc-0.9.33.2/include/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ucontext.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,21 +12,46 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* The System V ABI user-level context switching support functions
-+ are marked obsolescent by SuSv3. */
-
- #ifndef _UCONTEXT_H
- #define _UCONTEXT_H 1
-
- #include <features.h>
-
-+#ifdef __UCLIBC_HAS_CONTEXT_FUNCS__
-+
- /* Get machine dependent definition of data structures. */
- #include <sys/ucontext.h>
-
--/* The System V ABI user-level context switching support functions
-- * are marked obsolescent by SuSv3, and are not implemented by
-- * uClibc. This header is therefore empty. */
-+__BEGIN_DECLS
-+
-+/* Get user context and store it in variable pointed to by UCP. */
-+extern int getcontext (ucontext_t *__ucp) __THROW;
-+
-+/* Set user context from information of variable pointed to by UCP. */
-+extern int setcontext (const ucontext_t *__ucp) __THROW;
-+
-+/* Save current context in context variable pointed to by OUCP and set
-+ context from variable pointed to by UCP. */
-+extern int swapcontext (ucontext_t *__restrict __oucp,
-+ const ucontext_t *__restrict __ucp) __THROW;
-+
-+/* Manipulate user context UCP to continue with calling functions FUNC
-+ and the ARGC-1 parameters following ARGC when the context is used
-+ the next time in `setcontext' or `swapcontext'.
-+
-+ We cannot say anything about the parameters FUNC takes; `void'
-+ is as good as any other choice. */
-+extern void makecontext (ucontext_t *__ucp, void (*__func) (void),
-+ int __argc, ...) __THROW;
-+
-+__END_DECLS
-
-+#endif
-
- #endif /* ucontext.h */
-diff -Nur uClibc-0.9.33.2/include/ulimit.h uClibc-git/include/ulimit.h
---- uClibc-0.9.33.2/include/ulimit.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/ulimit.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ULIMIT_H
- #define _ULIMIT_H 1
-diff -Nur uClibc-0.9.33.2/include/unistd.h uClibc-git/include/unistd.h
---- uClibc-0.9.33.2/include/unistd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/unistd.h 2014-07-25 20:36:05.181326174 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
-+/* Copyright (C) 1991-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 2.10 Symbolic Constants <unistd.h>
-@@ -30,35 +29,67 @@
- /* These may be used to determine what facilities are present at compile time.
- Their values can be obtained at run time from `sysconf'. */
-
-+#ifdef __USE_XOPEN2K8
-+/* POSIX Standard approved as ISO/IEC 9945-1 as of September 2008. */
-+# define _POSIX_VERSION 200809L
-+#elif defined __USE_XOPEN2K
- /* POSIX Standard approved as ISO/IEC 9945-1 as of December 2001. */
--#define _POSIX_VERSION 200112L
-+# define _POSIX_VERSION 200112L
-+#elif defined __USE_POSIX199506
-+/* POSIX Standard approved as ISO/IEC 9945-1 as of June 1995. */
-+# define _POSIX_VERSION 199506L
-+#elif defined __USE_POSIX199309
-+/* POSIX Standard approved as ISO/IEC 9945-1 as of September 1993. */
-+# define _POSIX_VERSION 199309L
-+#else
-+/* POSIX Standard approved as ISO/IEC 9945-1 as of September 1990. */
-+# define _POSIX_VERSION 199009L
-+#endif
-
- /* These are not #ifdef __USE_POSIX2 because they are
- in the theoretically application-owned namespace. */
-
-+#ifdef __USE_XOPEN2K8
-+# define __POSIX2_THIS_VERSION 200809L
-+/* The utilities on GNU systems also correspond to this version. */
-+#elif defined __USE_XOPEN2K
-+/* The utilities on GNU systems also correspond to this version. */
-+# define __POSIX2_THIS_VERSION 200112L
-+#elif defined __USE_POSIX199506
-+/* The utilities on GNU systems also correspond to this version. */
-+# define __POSIX2_THIS_VERSION 199506L
-+#else
-+/* The utilities on GNU systems also correspond to this version. */
-+# define __POSIX2_THIS_VERSION 199209L
-+#endif
-+
- /* The utilities on GNU systems also correspond to this version. */
--#define _POSIX2_VERSION 200112L
-+#define _POSIX2_VERSION __POSIX2_THIS_VERSION
-
- /* If defined, the implementation supports the
- C Language Bindings Option. */
--#define _POSIX2_C_BIND 200112L
-+#define _POSIX2_C_BIND __POSIX2_THIS_VERSION
-
- /* If defined, the implementation supports the
- C Language Development Utilities Option. */
--#define _POSIX2_C_DEV 200112L
-+#define _POSIX2_C_DEV __POSIX2_THIS_VERSION
-
- /* If defined, the implementation supports the
- Software Development Utilities Option. */
--#define _POSIX2_SW_DEV 200112L
-+#define _POSIX2_SW_DEV __POSIX2_THIS_VERSION
-
- #if 0 /* uClibc does not provide the utility */
- /* If defined, the implementation supports the
- creation of locales with the localedef utility. */
--#define _POSIX2_LOCALEDEF 200112L
-+#define _POSIX2_LOCALEDEF __POSIX2_THIS_VERSION
- #endif
-
- /* X/Open version number to which the library conforms. It is selectable. */
--#ifdef __USE_UNIX98
-+#ifdef __USE_XOPEN2K8
-+# define _XOPEN_VERSION 700
-+#elif defined __USE_XOPEN2K
-+# define _XOPEN_VERSION 600
-+#elif defined __USE_UNIX98
- # define _XOPEN_VERSION 500
- #else
- # define _XOPEN_VERSION 4
-@@ -171,6 +202,8 @@
- */
-
- #include <bits/posix_opt.h>
-+/* keep it after posix_opt.h, it overwrites based on uClibc's config options */
-+#include <bits/uClibc_posix_opt.h>
-
- /* Get the environment definitions from Unix98. */
- #ifdef __USE_UNIX98
-@@ -255,16 +288,16 @@
- #define F_OK 0 /* Test for existence. */
-
- /* Test for access to NAME using the real UID and real GID. */
--extern int access (__const char *__name, int __type) __THROW __nonnull ((1));
-+extern int access (const char *__name, int __type) __THROW __nonnull ((1));
-
- #if 0 /*def __USE_GNU*/
- /* Test for access to NAME using the effective UID and GID
- (as normal file operations use). */
--extern int euidaccess (__const char *__name, int __type)
-+extern int euidaccess (const char *__name, int __type)
- __THROW __nonnull ((1));
-
- /* An alias for `euidaccess', used by some other systems. */
--extern int eaccess (__const char *__name, int __type)
-+extern int eaccess (const char *__name, int __type)
- __THROW __nonnull ((1));
- #endif
-
-@@ -272,8 +305,9 @@
- /* Test for access to FILE relative to the directory FD is open on.
- If AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',
- otherwise use real IDs like `access'. */
--extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
-+extern int faccessat (int __fd, const char *__file, int __type, int __flag)
- __THROW __nonnull ((2)) __wur;
-+libc_hidden_proto(faccessat)
- #endif /* Use GNU. */
-
-
-@@ -299,7 +333,10 @@
- Return the new file position. */
- #ifndef __USE_FILE_OFFSET64
- extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW;
-+# ifdef _LIBC
-+extern __typeof(lseek) __lseek_nocancel attribute_hidden;
- libc_hidden_proto(lseek)
-+# endif
- #else
- # ifdef __REDIRECT_NTH
- extern __off64_t __REDIRECT_NTH (lseek,
-@@ -312,7 +349,10 @@
- #ifdef __USE_LARGEFILE64
- extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
- __THROW;
-+# ifdef _LIBC
-+extern __typeof(lseek64) __lseek64_nocancel attribute_hidden;
- libc_hidden_proto(lseek64)
-+# endif
- #endif
-
- /* Close the file descriptor FD.
-@@ -320,7 +360,11 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int close (int __fd);
-+#ifdef _LIBC
-+extern __typeof(close) __close_nocancel attribute_hidden;
-+extern void __close_nocancel_no_status(int) attribute_hidden;
- libc_hidden_proto(close)
-+#endif
-
- /* Read NBYTES into BUF from FD. Return the
- number read, -1 for errors or 0 for EOF.
-@@ -328,14 +372,20 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur;
-+#ifdef _LIBC
-+extern __typeof(read) __read_nocancel attribute_hidden;
- libc_hidden_proto(read)
-+#endif
-
- /* Write N bytes of BUF to FD. Return the number written, or -1.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t write (int __fd, __const void *__buf, size_t __n) __wur;
-+extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur;
-+#ifdef _LIBC
-+extern __typeof(write) __write_nocancel attribute_hidden;
- libc_hidden_proto(write)
-+#endif
-
- #ifdef __USE_UNIX98
- # ifndef __USE_FILE_OFFSET64
-@@ -353,14 +403,14 @@
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
--extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
-+extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
- __off_t __offset) __wur;
- # else
- # ifdef __REDIRECT
- extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes,
- __off64_t __offset),
- pread64) __wur;
--extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf,
-+extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf,
- size_t __nbytes, __off64_t __offset),
- pwrite64) __wur;
- # else
-@@ -377,7 +427,7 @@
- __off64_t __offset) __wur;
- /* Write N bytes of BUF to FD at the given position OFFSET without
- changing the file pointer. Return the number written, or -1. */
--extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
-+extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n,
- __off64_t __offset) __wur;
- # endif
- #endif
-@@ -446,7 +496,7 @@
-
-
- /* Change the owner and group of FILE. */
--extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
-+extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
- __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(chown)
-
-@@ -457,7 +507,7 @@
-
- /* Change owner and group of FILE, if it is a symbolic
- link the ownership of the symbolic link is changed. */
--extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
-+extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
- __THROW __nonnull ((1)) __wur;
-
- #endif /* Use BSD || X/Open Unix. */
-@@ -465,13 +515,14 @@
- #ifdef __USE_ATFILE
- /* Change the owner and group of FILE relative to the directory FD is open
- on. */
--extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
-+extern int fchownat (int __fd, const char *__file, __uid_t __owner,
- __gid_t __group, int __flag)
- __THROW __nonnull ((2)) __wur;
-+libc_hidden_proto(fchownat)
- #endif /* Use GNU. */
-
- /* Change the process's working directory to PATH. */
--extern int chdir (__const char *__path) __THROW __nonnull ((1)) __wur;
-+extern int chdir (const char *__path) __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(chdir)
-
- #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-@@ -513,6 +564,13 @@
- extern int dup2 (int __fd, int __fd2) __THROW;
- libc_hidden_proto(dup2)
-
-+#ifdef __USE_GNU
-+/* Duplicate FD to FD2, closing FD2 and making it open on the same
-+ file while setting flags according to FLAGS. */
-+extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
-+libc_hidden_proto(dup3)
-+#endif
-+
- /* NULL-terminated array of "NAME=VALUE" environment variables. */
- extern char **__environ;
- #ifdef __USE_GNU
-@@ -522,48 +580,56 @@
-
- /* Replace the current process, executing PATH with arguments ARGV and
- environment ENVP. ARGV and ENVP are terminated by NULL pointers. */
--extern int execve (__const char *__path, char *__const __argv[],
-- char *__const __envp[]) __THROW __nonnull ((1));
-+extern int execve (const char *__path, char *const __argv[],
-+ char *const __envp[]) __THROW __nonnull ((1));
- libc_hidden_proto(execve)
-
--#if 0 /*def __USE_GNU*/
-+#if 0 /*def __USE_XOPEN2K8*/
- /* Execute the file FD refers to, overlaying the running program image.
- ARGV and ENVP are passed to the new program, as for `execve'. */
--extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
-+extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
- __THROW;
- #endif
-
-
- /* Execute PATH with arguments ARGV and environment from `environ'. */
--extern int execv (__const char *__path, char *__const __argv[])
-+extern int execv (const char *__path, char *const __argv[])
- __THROW __nonnull ((1));
- libc_hidden_proto(execv)
-
- /* Execute PATH with all arguments after PATH until a NULL pointer,
- and the argument after that for environment. */
--extern int execle (__const char *__path, __const char *__arg, ...)
-+extern int execle (const char *__path, const char *__arg, ...)
- __THROW __nonnull ((1));
- libc_hidden_proto(execle)
-
- /* Execute PATH with all arguments after PATH until
- a NULL pointer and environment from `environ'. */
--extern int execl (__const char *__path, __const char *__arg, ...)
-+extern int execl (const char *__path, const char *__arg, ...)
- __THROW __nonnull ((1));
- libc_hidden_proto(execl)
-
- /* Execute FILE, searching in the `PATH' environment variable if it contains
- no slashes, with arguments ARGV and environment from `environ'. */
--extern int execvp (__const char *__file, char *__const __argv[])
-+extern int execvp (const char *__file, char *const __argv[])
- __THROW __nonnull ((1));
- libc_hidden_proto(execvp)
-
- /* Execute FILE, searching in the `PATH' environment variable if
- it contains no slashes, with all arguments after FILE until a
- NULL pointer and environment from `environ'. */
--extern int execlp (__const char *__file, __const char *__arg, ...)
-+extern int execlp (const char *__file, const char *__arg, ...)
- __THROW __nonnull ((1));
- libc_hidden_proto(execlp)
-
-+#ifdef __USE_GNU
-+/* Execute FILE, searching in the `PATH' environment variable if it contains
-+ no slashes, with arguments ARGV and environment from a pointer */
-+extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[])
-+ __THROW __nonnull ((1));
-+libc_hidden_proto(execvpe)
-+#endif
-+
-
- #if defined __USE_MISC || defined __USE_XOPEN
- /* Add INC to priority of the current process. */
-@@ -582,7 +648,7 @@
- #include <bits/confname.h>
-
- /* Get file-specific configuration information about PATH. */
--extern long int pathconf (__const char *__path, int __name)
-+extern long int pathconf (const char *__path, int __name)
- __THROW __nonnull ((1));
-
- /* Get file-specific configuration about descriptor FD. */
-@@ -767,7 +833,12 @@
- Return -1 for errors, 0 to the new process,
- and the process ID of the new process to the old process. */
- extern __pid_t fork (void) __THROW;
-+# ifdef _LIBC
-+# ifdef __UCLIBC_HAS_THREADS__
-+extern __typeof(fork) __libc_fork;
-+# endif
- libc_hidden_proto(fork)
-+# endif
- #endif
-
- #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-@@ -779,8 +850,10 @@
- libc_hidden_proto(vfork)
- #endif /* Use BSD. */
-
-+#if 0 /* psm: seems unused , exit-thread.S is not compiled */
- /* Special exit function which only terminates the current thread. */
- extern void __exit_thread (int val) __attribute__ ((__noreturn__));
-+#endif
-
- /* Return the pathname of the terminal FD is open on, or NULL on errors.
- The returned storage is good only until the next call to this function. */
-@@ -797,7 +870,6 @@
- extern int isatty (int __fd) __THROW;
- libc_hidden_proto(isatty)
-
--
- #if 0 /*defined __USE_BSD \
- || (defined __USE_XOPEN_EXTENDED && !defined __USE_UNIX98)*/
- /* Return the index into the active-logins file (utmp) for
-@@ -807,26 +879,27 @@
-
-
- /* Make a link to FROM named TO. */
--extern int link (__const char *__from, __const char *__to)
-+extern int link (const char *__from, const char *__to)
- __THROW __nonnull ((1, 2)) __wur;
-
- #ifdef __USE_ATFILE
- /* Like link but relative paths in TO and FROM are interpreted relative
- to FROMFD and TOFD respectively. */
--extern int linkat (int __fromfd, __const char *__from, int __tofd,
-- __const char *__to, int __flags)
-+extern int linkat (int __fromfd, const char *__from, int __tofd,
-+ const char *__to, int __flags)
- __THROW __nonnull ((2, 4)) __wur;
-+libc_hidden_proto(linkat)
- #endif
-
- #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K
- /* Make a symbolic link to FROM named TO. */
--extern int symlink (__const char *__from, __const char *__to)
-+extern int symlink (const char *__from, const char *__to)
- __THROW __nonnull ((1, 2)) __wur;
-
- /* Read the contents of the symbolic link PATH into no more than
- LEN bytes of BUF. The contents are not null-terminated.
- Returns the number of characters read, or -1 for errors. */
--extern ssize_t readlink (__const char *__restrict __path,
-+extern ssize_t readlink (const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __THROW __nonnull ((1, 2)) __wur;
- libc_hidden_proto(readlink)
-@@ -834,27 +907,30 @@
-
- #ifdef __USE_ATFILE
- /* Like symlink but a relative path in TO is interpreted relative to TOFD. */
--extern int symlinkat (__const char *__from, int __tofd,
-- __const char *__to) __THROW __nonnull ((1, 3)) __wur;
-+extern int symlinkat (const char *__from, int __tofd,
-+ const char *__to) __THROW __nonnull ((1, 3)) __wur;
-+libc_hidden_proto(symlinkat)
-
- /* Like readlink but a relative PATH is interpreted relative to FD. */
--extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
-+extern ssize_t readlinkat (int __fd, const char *__restrict __path,
- char *__restrict __buf, size_t __len)
- __THROW __nonnull ((2, 3)) __wur;
-+libc_hidden_proto(readlinkat)
- #endif
-
- /* Remove the link NAME. */
--extern int unlink (__const char *__name) __THROW __nonnull ((1));
-+extern int unlink (const char *__name) __THROW __nonnull ((1));
- libc_hidden_proto(unlink)
-
- #ifdef __USE_ATFILE
- /* Remove the link NAME relative to FD. */
--extern int unlinkat (int __fd, __const char *__name, int __flag)
-+extern int unlinkat (int __fd, const char *__name, int __flag)
- __THROW __nonnull ((2));
-+libc_hidden_proto(unlinkat)
- #endif
-
- /* Remove the directory PATH. */
--extern int rmdir (__const char *__path) __THROW __nonnull ((1));
-+extern int rmdir (const char *__path) __THROW __nonnull ((1));
- libc_hidden_proto(rmdir)
-
-
-@@ -884,7 +960,7 @@
-
- #if 0 /*def __USE_BSD*/
- /* Set the login name returned by `getlogin'. */
--extern int setlogin (__const char *__name) __THROW __nonnull ((1));
-+extern int setlogin (const char *__name) __THROW __nonnull ((1));
- #endif
-
-
-@@ -910,13 +986,14 @@
- #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
- /* Set the name of the current host to NAME, which is LEN bytes long.
- This call is restricted to the super-user. */
--extern int sethostname (__const char *__name, size_t __len)
-+extern int sethostname (const char *__name, size_t __len)
- __THROW __nonnull ((1)) __wur;
-
- /* Set the current machine's Internet number to ID.
- This call is restricted to the super-user. */
- extern int sethostid (long int __id) __THROW __wur;
-
-+
- #if defined __UCLIBC_BSD_SPECIFIC__ || defined _LIBC
- /* Get and set the NIS (aka YP) domain name, if any.
- Called just like `gethostname' and `sethostname'.
-@@ -926,10 +1003,11 @@
- libc_hidden_proto(getdomainname)
- #endif
- #if defined __UCLIBC_BSD_SPECIFIC__
--extern int setdomainname (__const char *__name, size_t __len)
-+extern int setdomainname (const char *__name, size_t __len)
- __THROW __nonnull ((1)) __wur;
- #endif
-
-+
- #if defined __UCLIBC_LINUX_SPECIFIC__
- /* Revoke access permissions to all processes currently communicating
- with the control terminal, and then send a SIGHUP signal to the process
-@@ -939,7 +1017,7 @@
-
- #if 0
- /* Revoke the access of all descriptors currently open on FILE. */
--extern int revoke (__const char *__file) __THROW __nonnull ((1)) __wur;
-+extern int revoke (const char *__file) __THROW __nonnull ((1)) __wur;
-
-
- /* Enable statistical profiling, writing samples of the PC into at most
-@@ -956,7 +1034,7 @@
- /* Turn accounting on if NAME is an existing file. The system will then write
- a record for each process as it terminates, to this file. If NAME is NULL,
- turn accounting off. This call is restricted to the super-user. */
--extern int acct (__const char *__name) __THROW;
-+extern int acct (const char *__name) __THROW;
-
-
- /* Successive calls return the shells listed in `/etc/shells'. */
-@@ -977,21 +1055,21 @@
- #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
- /* Make PATH be the root directory (the starting point for absolute paths).
- This call is restricted to the super-user. */
--extern int chroot (__const char *__path) __THROW __nonnull ((1)) __wur;
-+extern int chroot (const char *__path) __THROW __nonnull ((1)) __wur;
-
- /* Prompt with PROMPT and read a string from the terminal without echoing.
- Uses /dev/tty if possible; otherwise stderr and stdin. */
--extern char *getpass (__const char *__prompt) __nonnull ((1));
-+extern char *getpass (const char *__prompt) __nonnull ((1));
- #endif /* Use BSD || X/Open. */
-
-
--#if defined __USE_BSD || defined __USE_XOPEN
-+#if defined __USE_BSD || defined __USE_XOPEN || defined __USE_XOPEN2K
- /* Make all changes done to FD actually appear on disk.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int fsync (int __fd);
--#endif /* Use BSD || X/Open. */
-+#endif /* Use BSD || X/Open || Unix98. */
-
-
- #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-@@ -1017,21 +1095,22 @@
-
- /* Truncate FILE to LENGTH bytes. */
- # ifndef __USE_FILE_OFFSET64
--extern int truncate (__const char *__file, __off_t __length)
-+extern int truncate (const char *__file, __off_t __length)
- __THROW __nonnull ((1)) __wur;
- libc_hidden_proto(truncate)
- # else
- # ifdef __REDIRECT_NTH
- extern int __REDIRECT_NTH (truncate,
-- (__const char *__file, __off64_t __length),
-+ (const char *__file, __off64_t __length),
- truncate64) __nonnull ((1)) __wur;
- # else
- # define truncate truncate64
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
--extern int truncate64 (__const char *__file, __off64_t __length)
-+extern int truncate64 (const char *__file, __off64_t __length)
- __THROW __nonnull ((1)) __wur;
-+libc_hidden_proto(truncate64)
- # endif
-
- #endif /* Use BSD || X/Open Unix. */
-@@ -1120,7 +1199,6 @@
- # endif
- # ifdef __USE_LARGEFILE64
- extern int lockf64 (int __fd, int __cmd, __off64_t __len) __wur;
--libc_hidden_proto(lockf64)
- # endif
- #endif /* Use misc and F_LOCK not already defined. */
-
-@@ -1142,7 +1220,7 @@
- && defined __UCLIBC_HAS_REALTIME__
- /* Synchronize at least the data part of a file with the underlying
- media. */
--extern int fdatasync (int __fildes) __THROW;
-+extern int fdatasync (int __fildes);
- #endif /* Use POSIX199309 */
-
-
-@@ -1151,7 +1229,7 @@
- #ifdef __USE_XOPEN
- # if defined __UCLIBC_HAS_CRYPT__
- /* Encrypt at most 8 characters from KEY using salt to perturb DES. */
--extern char *crypt (__const char *__key, __const char *__salt)
-+extern char *crypt (const char *__key, const char *__salt)
- __THROW __nonnull ((1, 2));
-
- /* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt
-@@ -1164,7 +1242,7 @@
- FROM and copy the result to TO. The value of TO must not be in the
- range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM
- is without partner. */
--extern void swab (__const void *__restrict __from, void *__restrict __to,
-+extern void swab (const void *__restrict __from, void *__restrict __to,
- ssize_t __n) __THROW __nonnull ((1, 2));
- #endif
-
-@@ -1178,7 +1256,7 @@
-
-
- /* Define some macros helping to catch buffer overflows. */
--#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
-+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
- # include <bits/unistd.h>
- #endif
-
-@@ -1191,6 +1269,7 @@
- #endif
- typedef signed smallint_type smallint;
- typedef unsigned smallint_type smalluint;
-+extern size_t __pagesize attribute_hidden;
- #endif
-
-
-diff -Nur uClibc-0.9.33.2/include/utime.h uClibc-git/include/utime.h
---- uClibc-0.9.33.2/include/utime.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/utime.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
-@@ -43,8 +42,8 @@
-
- /* Set the access and modification times of FILE to those given in
- *FILE_TIMES. If FILE_TIMES is NULL, set them to the current time. */
--extern int utime (__const char *__file,
-- __const struct utimbuf *__file_times)
-+extern int utime (const char *__file,
-+ const struct utimbuf *__file_times)
- __THROW __nonnull ((1));
- libc_hidden_proto(utime)
-
-diff -Nur uClibc-0.9.33.2/include/utmp.h uClibc-git/include/utmp.h
---- uClibc-0.9.33.2/include/utmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/utmp.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UTMP_H
- #define _UTMP_H 1
-@@ -44,60 +43,52 @@
-
-
- /* Write the given entry into utmp and wtmp. */
--extern void login (__const struct utmp *__entry) __THROW;
-+extern void login (const struct utmp *__entry) __THROW;
-
- /* Write the utmp entry to say the user on UT_LINE has logged out. */
--extern int logout (__const char *__ut_line) __THROW;
-+extern int logout (const char *__ut_line) __THROW;
-
- /* Append to wtmp an entry for the current time and the given info. */
--extern void logwtmp (__const char *__ut_line, __const char *__ut_name,
-- __const char *__ut_host) __THROW;
-+extern void logwtmp (const char *__ut_line, const char *__ut_name,
-+ const char *__ut_host) __THROW;
- #endif
-
- /* Append entry UTMP to the wtmp-like file WTMP_FILE. */
--extern void updwtmp (__const char *__wtmp_file, __const struct utmp *__utmp)
-+extern void updwtmp (const char *__wtmp_file, const struct utmp *__utmp)
- __THROW;
--libc_hidden_proto(updwtmp)
-
- /* Change name of the utmp file to be examined. */
--extern int utmpname (__const char *__file) __THROW;
--libc_hidden_proto(utmpname)
-+extern int utmpname (const char *__file) __THROW;
-
- /* Read next entry from a utmp-like file. */
- extern struct utmp *getutent (void) __THROW;
--libc_hidden_proto(getutent)
-
- /* Reset the input stream to the beginning of the file. */
- extern void setutent (void) __THROW;
--libc_hidden_proto(setutent)
-
- /* Close the current open file. */
- extern void endutent (void) __THROW;
--libc_hidden_proto(endutent)
-
- /* Search forward from the current point in the utmp file until the
- next entry with a ut_type matching ID->ut_type. */
--extern struct utmp *getutid (__const struct utmp *__id) __THROW;
--libc_hidden_proto(getutid)
-+extern struct utmp *getutid (const struct utmp *__id) __THROW;
-
- /* Search forward from the current point in the utmp file until the
- next entry with a ut_line matching LINE->ut_line. */
--extern struct utmp *getutline (__const struct utmp *__line) __THROW;
--libc_hidden_proto(getutline)
-+extern struct utmp *getutline (const struct utmp *__line) __THROW;
-
- /* Write out entry pointed to by UTMP_PTR into the utmp file. */
--extern struct utmp *pututline (__const struct utmp *__utmp_ptr) __THROW;
--libc_hidden_proto(pututline)
-+extern struct utmp *pututline (const struct utmp *__utmp_ptr) __THROW;
-
-
- #if 0 /* def __USE_MISC */
- /* Reentrant versions of the file for handling utmp files. */
- extern int getutent_r (struct utmp *__buffer, struct utmp **__result) __THROW;
-
--extern int getutid_r (__const struct utmp *__id, struct utmp *__buffer,
-+extern int getutid_r (const struct utmp *__id, struct utmp *__buffer,
- struct utmp **__result) __THROW;
-
--extern int getutline_r (__const struct utmp *__line,
-+extern int getutline_r (const struct utmp *__line,
- struct utmp *__buffer, struct utmp **__result) __THROW;
-
- #endif /* Use misc. */
-diff -Nur uClibc-0.9.33.2/include/utmpx.h uClibc-git/include/utmpx.h
---- uClibc-0.9.33.2/include/utmpx.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/utmpx.h 2014-07-25 20:36:05.181326174 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UTMPX_H
- #define _UTMPX_H 1
-@@ -69,19 +68,19 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct utmpx *getutxid (__const struct utmpx *__id);
-+extern struct utmpx *getutxid (const struct utmpx *__id);
-
- /* Get the user accounting database entry corresponding to LINE.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct utmpx *getutxline (__const struct utmpx *__line);
-+extern struct utmpx *getutxline (const struct utmpx *__line);
-
- /* Write the entry UTMPX into the user accounting database.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern struct utmpx *pututxline (__const struct utmpx *__utmpx);
-+extern struct utmpx *pututxline (const struct utmpx *__utmpx);
-
-
- #ifdef __USE_GNU
-@@ -91,7 +90,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int utmpxname (__const char *__file);
-+extern int utmpxname (const char *__file);
-
- /* Append entry UTMP to the wtmpx-like file WTMPX_FILE.
-
-@@ -99,8 +98,8 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern void updwtmpx (__const char *__wtmpx_file,
-- __const struct utmpx *__utmpx);
-+extern void updwtmpx (const char *__wtmpx_file,
-+ const struct utmpx *__utmpx);
-
-
- /* Copy the information in UTMPX to UTMP.
-@@ -109,7 +108,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern void getutmp (__const struct utmpx *__utmpx,
-+extern void getutmp (const struct utmpx *__utmpx,
- struct utmp *__utmp);
-
- /* Copy the information in UTMP to UTMPX.
-@@ -118,7 +117,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern void getutmpx (__const struct utmp *__utmp,
-+extern void getutmpx (const struct utmp *__utmp,
- struct utmpx *__utmpx);
- #endif
-
-diff -Nur uClibc-0.9.33.2/include/values.h uClibc-git/include/values.h
---- uClibc-0.9.33.2/include/values.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/values.h 2014-07-25 20:36:05.185326195 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This interface is obsolete. New programs should use
- <limits.h> and/or <float.h> instead of <values.h>. */
-diff -Nur uClibc-0.9.33.2/include/wchar.h uClibc-git/include/wchar.h
---- uClibc-0.9.33.2/include/wchar.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/wchar.h 2014-07-25 20:36:05.185326195 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.24
-@@ -133,46 +132,46 @@
- /* This incomplete type is defined in <time.h> but needed here because
- of `wcsftime'. */
- struct tm;
-+__END_NAMESPACE_STD
- /* XXX We have to clean this up at some point. Since tm is in the std
- namespace but wcsftime is in __c99 the type wouldn't be found
- without inserting it in the global namespace. */
- __USING_NAMESPACE_STD(tm)
--__END_NAMESPACE_STD
-
-
- __BEGIN_NAMESPACE_C99
- /* Copy SRC to DEST. */
- extern wchar_t *wcscpy (wchar_t *__restrict __dest,
-- __const wchar_t *__restrict __src) __THROW;
-+ const wchar_t *__restrict __src) __THROW;
- /* Copy no more than N wide-characters of SRC to DEST. */
- extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
-- __const wchar_t *__restrict __src, size_t __n)
-+ const wchar_t *__restrict __src, size_t __n)
- __THROW;
-
- /* Append SRC onto DEST. */
- extern wchar_t *wcscat (wchar_t *__restrict __dest,
-- __const wchar_t *__restrict __src) __THROW;
-+ const wchar_t *__restrict __src) __THROW;
- libc_hidden_proto(wcscat)
- /* Append no more than N wide-characters of SRC onto DEST. */
- extern wchar_t *wcsncat (wchar_t *__restrict __dest,
-- __const wchar_t *__restrict __src, size_t __n)
-+ const wchar_t *__restrict __src, size_t __n)
- __THROW;
-
- /* Compare S1 and S2. */
--extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
-+extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
- __THROW __attribute_pure__;
- libc_hidden_proto(wcscmp)
- /* Compare N wide-characters of S1 and S2. */
--extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
-+extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
- __THROW __attribute_pure__;
- __END_NAMESPACE_C99
-
- #ifdef __USE_GNU
- /* Compare S1 and S2, ignoring case. */
--extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) __THROW;
-+extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) __THROW;
-
- /* Compare no more than N chars of S1 and S2, ignoring case. */
--extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
-+extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
- size_t __n) __THROW;
-
- #ifdef __UCLIBC_HAS_XLOCALE__
-@@ -180,11 +179,11 @@
- the provided locale and not the global locale. */
- # include <xlocale.h>
-
--extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
-+extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
- __locale_t __loc) __THROW;
- libc_hidden_proto(wcscasecmp_l)
-
--extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
-+extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
- size_t __n, __locale_t __loc) __THROW;
- libc_hidden_proto(wcsncasecmp_l)
- #endif /* __UCLIBC_HAS_XLOCALE__ */
-@@ -193,13 +192,13 @@
- __BEGIN_NAMESPACE_C99
- /* Compare S1 and S2, both interpreted as appropriate to the
- LC_COLLATE category of the current locale. */
--extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) __THROW;
-+extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) __THROW;
- libc_hidden_proto(wcscoll)
- /* Transform S2 into array pointed to by S1 such that if wcscmp is
- applied to two transformed strings the result is the as applying
- `wcscoll' to the original strings. */
- extern size_t wcsxfrm (wchar_t *__restrict __s1,
-- __const wchar_t *__restrict __s2, size_t __n) __THROW;
-+ const wchar_t *__restrict __s2, size_t __n) __THROW;
- __END_NAMESPACE_C99
-
- #ifdef __USE_GNU
-@@ -209,76 +208,79 @@
-
- /* Compare S1 and S2, both interpreted as appropriate to the
- LC_COLLATE category of the given locale. */
--extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
-+extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
- __locale_t __loc) __THROW;
- libc_hidden_proto(wcscoll_l)
-
- /* Transform S2 into array pointed to by S1 such that if wcscmp is
- applied to two transformed strings the result is the as applying
- `wcscoll' to the original strings. */
--extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
-+extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
- size_t __n, __locale_t __loc) __THROW;
- libc_hidden_proto(wcsxfrm_l)
-
- #endif /* __UCLIBC_HAS_XLOCALE__ */
-
- /* Duplicate S, returning an identical malloc'd string. */
--extern wchar_t *wcsdup (__const wchar_t *__s) __THROW __attribute_malloc__;
-+extern wchar_t *wcsdup (const wchar_t *__s) __THROW __attribute_malloc__;
- #endif
-
- __BEGIN_NAMESPACE_C99
- /* Find the first occurrence of WC in WCS. */
--extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
-+extern wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
- __THROW __attribute_pure__;
- /* Find the last occurrence of WC in WCS. */
--extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
-+extern wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
- __THROW __attribute_pure__;
- __END_NAMESPACE_C99
-
- #ifdef __USE_GNU
- /* This function is similar to `wcschr'. But it returns a pointer to
- the closing NUL wide character in case C is not found in S. */
--extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
-+extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
- __THROW __attribute_pure__;
- #endif
-
- __BEGIN_NAMESPACE_C99
- /* Return the length of the initial segmet of WCS which
- consists entirely of wide characters not in REJECT. */
--extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
-+extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
- __THROW __attribute_pure__;
- /* Return the length of the initial segmet of WCS which
- consists entirely of wide characters in ACCEPT. */
--extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
-+extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
- __THROW __attribute_pure__;
- libc_hidden_proto(wcsspn)
- /* Find the first occurrence in WCS of any character in ACCEPT. */
--extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
-+extern wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept)
- __THROW __attribute_pure__;
- libc_hidden_proto(wcspbrk)
- /* Find the first occurrence of NEEDLE in HAYSTACK. */
--extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
-+/* SuSv uses restrict keyword, glibc does not */
-+extern wchar_t *wcsstr (const wchar_t *__restrict __haystack, const wchar_t *__restrict __needle)
- __THROW __attribute_pure__;
-
- /* Divide WCS into tokens separated by characters in DELIM. */
- extern wchar_t *wcstok (wchar_t *__restrict __s,
-- __const wchar_t *__restrict __delim,
-+ const wchar_t *__restrict __delim,
- wchar_t **__restrict __ptr) __THROW;
-
- /* Return the number of wide characters in S. */
--extern size_t wcslen (__const wchar_t *__s) __THROW __attribute_pure__;
-+extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;
- libc_hidden_proto(wcslen)
- __END_NAMESPACE_C99
-
- #if defined __USE_XOPEN && defined __UCLIBC_SUSV3_LEGACY__
- /* Another name for `wcsstr' from XPG4. */
--extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
-+/* SuSv3 did not use restrict keyword, probably because it was marked LEGACY
-+ we do to be in sync with wcsstr */
-+extern wchar_t *wcswcs (const wchar_t *__restrict __haystack, const wchar_t *__restrict __needle)
- __THROW __attribute_pure__;
- #endif
-
- #ifdef __USE_GNU
- /* Return the number of wide characters in S, but at most MAXLEN. */
--extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
-+extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
- __THROW __attribute_pure__;
- libc_hidden_proto(wcsnlen)
- #endif
-@@ -286,23 +288,24 @@
-
- __BEGIN_NAMESPACE_C99
- /* Search N wide characters of S for C. */
--extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
-+extern wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
- __THROW __attribute_pure__;
- libc_hidden_proto(wmemchr)
-
- /* Compare N wide characters of S1 and S2. */
--extern int wmemcmp (__const wchar_t *__restrict __s1,
-- __const wchar_t *__restrict __s2, size_t __n)
-+/* SuSv4 does not use restrict keyword for S1 and S2, glibc does */
-+extern int wmemcmp (const wchar_t *__s1,
-+ const wchar_t *__s2, size_t __n)
- __THROW __attribute_pure__;
-
- /* Copy N wide characters of SRC to DEST. */
- extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
-- __const wchar_t *__restrict __s2, size_t __n) __THROW;
-+ const wchar_t *__restrict __s2, size_t __n) __THROW;
- libc_hidden_proto(wmemcpy)
-
- /* Copy N wide characters of SRC to DEST, guaranteeing
- correct behavior for overlapping strings. */
--extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
-+extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
- __THROW;
-
- /* Set N wide characters of S to C. */
-@@ -313,7 +316,7 @@
- /* Copy N wide characters of SRC to DEST and return pointer to following
- wide character. */
- extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
-- __const wchar_t *__restrict __s2, size_t __n)
-+ const wchar_t *__restrict __s2, size_t __n)
- __THROW;
- libc_hidden_proto(wmempcpy)
- #endif
-@@ -331,13 +334,13 @@
-
- /* Determine whether PS points to an object representing the initial
- state. */
--extern int mbsinit (__const mbstate_t *__ps) __THROW __attribute_pure__;
-+extern int mbsinit (const mbstate_t *__ps) __THROW __attribute_pure__;
- libc_hidden_proto(mbsinit)
-
- /* Write wide character representation of multibyte character pointed
- to by S to PWC. */
- extern size_t mbrtowc (wchar_t *__restrict __pwc,
-- __const char *__restrict __s, size_t __n,
-+ const char *__restrict __s, size_t __n,
- mbstate_t *__p) __THROW;
- libc_hidden_proto(mbrtowc)
-
-@@ -348,24 +351,24 @@
-
- /* Return number of bytes in multibyte character pointed to by S. */
- #if 0 /* uClibc: disabled */
--extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
-+extern size_t __mbrlen (const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __ps) __THROW;
- #endif
--extern size_t mbrlen (__const char *__restrict __s, size_t __n,
-+extern size_t mbrlen (const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __ps) __THROW;
- libc_hidden_proto(mbrlen)
-
- /* Write wide character representation of multibyte character string
- SRC to DST. */
- extern size_t mbsrtowcs (wchar_t *__restrict __dst,
-- __const char **__restrict __src, size_t __len,
-+ const char **__restrict __src, size_t __len,
- mbstate_t *__restrict __ps) __THROW;
- libc_hidden_proto(mbsrtowcs)
-
- /* Write multibyte character representation of wide character string
- SRC to DST. */
- extern size_t wcsrtombs (char *__restrict __dst,
-- __const wchar_t **__restrict __src, size_t __len,
-+ const wchar_t **__restrict __src, size_t __len,
- mbstate_t *__restrict __ps) __THROW;
- libc_hidden_proto(wcsrtombs)
- __END_NAMESPACE_C99
-@@ -375,14 +378,14 @@
- /* Write wide character representation of at most NMC bytes of the
- multibyte character string SRC to DST. */
- extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
-- __const char **__restrict __src, size_t __nmc,
-+ const char **__restrict __src, size_t __nmc,
- size_t __len, mbstate_t *__restrict __ps) __THROW;
- libc_hidden_proto(mbsnrtowcs)
-
- /* Write multibyte character representation of at most NWC characters
- from the wide character string SRC to DST. */
- extern size_t wcsnrtombs (char *__restrict __dst,
-- __const wchar_t **__restrict __src,
-+ const wchar_t **__restrict __src,
- size_t __nwc, size_t __len,
- mbstate_t *__restrict __ps) __THROW;
- libc_hidden_proto(wcsnrtombs)
-@@ -396,7 +399,7 @@
-
- /* Determine number of column positions required for first N wide
- characters (or fewer if S ends before this) in S. */
--extern int wcswidth (__const wchar_t *__s, size_t __n) __THROW;
-+extern int wcswidth (const wchar_t *__s, size_t __n) __THROW;
- libc_hidden_proto(wcswidth)
- #endif /* Use X/Open. */
-
-@@ -405,14 +408,14 @@
- #ifdef __UCLIBC_HAS_FLOATS__
- /* Convert initial portion of the wide string NPTR to `double'
- representation. */
--extern double wcstod (__const wchar_t *__restrict __nptr,
-+extern double wcstod (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-
- #ifdef __USE_ISOC99
- /* Likewise for `float' and `long double' sizes of floating-point numbers. */
--extern float wcstof (__const wchar_t *__restrict __nptr,
-+extern float wcstof (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
--extern long double wcstold (__const wchar_t *__restrict __nptr,
-+extern long double wcstold (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
- #endif /* C99 */
- #endif /* __UCLIBC_HAS_FLOATS__ */
-@@ -420,44 +423,44 @@
-
- /* Convert initial portion of wide string NPTR to `long int'
- representation. */
--extern long int wcstol (__const wchar_t *__restrict __nptr,
-+extern long int wcstol (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base) __THROW;
-
- /* Convert initial portion of wide string NPTR to `unsigned long int'
- representation. */
--extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
-+extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base)
- __THROW;
-
- #if defined __USE_ISOC99 || (defined __GNUC__ && defined __USE_GNU)
--/* Convert initial portion of wide string NPTR to `long int'
-+/* Convert initial portion of wide string NPTR to `long long int'
- representation. */
- __extension__
--extern long long int wcstoll (__const wchar_t *__restrict __nptr,
-+extern long long int wcstoll (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base)
- __THROW;
-
- /* Convert initial portion of wide string NPTR to `unsigned long long int'
- representation. */
- __extension__
--extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
-+extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base) __THROW;
- #endif /* ISO C99 or GCC and GNU. */
- __END_NAMESPACE_C99
-
- #if defined __GNUC__ && defined __USE_GNU
--/* Convert initial portion of wide string NPTR to `long int'
-+/* Convert initial portion of wide string NPTR to `long long int'
- representation. */
- __extension__
--extern long long int wcstoq (__const wchar_t *__restrict __nptr,
-+extern long long int wcstoq (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base)
- __THROW;
-
- /* Convert initial portion of wide string NPTR to `unsigned long long int'
- representation. */
- __extension__
--extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
-+extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base) __THROW;
- #endif /* GCC and use GNU. */
-@@ -481,35 +484,35 @@
-
- /* Special versions of the functions above which take the locale to
- use as an additional parameter. */
--extern long int wcstol_l (__const wchar_t *__restrict __nptr,
-+extern long int wcstol_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base,
- __locale_t __loc) __THROW;
-
--extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
-+extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base, __locale_t __loc) __THROW;
-
- __extension__
--extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
-+extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base, __locale_t __loc) __THROW;
-
- __extension__
--extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
-+extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base, __locale_t __loc)
- __THROW;
-
- #ifdef __UCLIBC_HAS_FLOATS__
--extern double wcstod_l (__const wchar_t *__restrict __nptr,
-+extern double wcstod_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, __locale_t __loc)
- __THROW;
-
--extern float wcstof_l (__const wchar_t *__restrict __nptr,
-+extern float wcstof_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, __locale_t __loc)
- __THROW;
-
--extern long double wcstold_l (__const wchar_t *__restrict __nptr,
-+extern long double wcstold_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- __locale_t __loc) __THROW;
- #endif /* __UCLIBC_HAS_FLOATS__ */
-@@ -520,11 +523,11 @@
- #ifdef __USE_GNU
- /* Copy SRC to DEST, returning the address of the terminating L'\0' in
- DEST. */
--extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW;
-+extern wchar_t *wcpcpy (wchar_t *__dest, const wchar_t *__src) __THROW;
-
- /* Copy no more than N characters of SRC to DEST, returning the address of
- the last character written into DEST. */
--extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
-+extern wchar_t *wcpncpy (wchar_t *__dest, const wchar_t *__src, size_t __n)
- __THROW;
- #endif /* use GNU */
-
-@@ -542,17 +545,17 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern int fwprintf (__FILE *__restrict __stream,
-- __const wchar_t *__restrict __format, ...)
-+ const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
- /* Write formatted output to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int wprintf (__const wchar_t *__restrict __format, ...)
-+extern int wprintf (const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wprintf__, 1, 2))) */;
- /* Write formatted output of at most N characters to S. */
- extern int swprintf (wchar_t *__restrict __s, size_t __n,
-- __const wchar_t *__restrict __format, ...)
-+ const wchar_t *__restrict __format, ...)
- __THROW /* __attribute__ ((__format__ (__wprintf__, 3, 4))) */;
-
- /* Write formatted output to S from argument list ARG.
-@@ -560,7 +563,7 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern int vfwprintf (__FILE *__restrict __s,
-- __const wchar_t *__restrict __format,
-+ const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
- libc_hidden_proto(vfwprintf)
-@@ -568,13 +571,13 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int vwprintf (__const wchar_t *__restrict __format,
-+extern int vwprintf (const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wprintf__, 1, 0))) */;
- /* Write formatted output of at most N character to S from argument
- list ARG. */
- extern int vswprintf (wchar_t *__restrict __s, size_t __n,
-- __const wchar_t *__restrict __format,
-+ const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- __THROW /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
- libc_hidden_proto(vswprintf)
-@@ -585,17 +588,17 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern int fwscanf (__FILE *__restrict __stream,
-- __const wchar_t *__restrict __format, ...)
-+ const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
- /* Read formatted input from stdin.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int wscanf (__const wchar_t *__restrict __format, ...)
-+extern int wscanf (const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wscanf__, 1, 2))) */;
- /* Read formatted input from S. */
--extern int swscanf (__const wchar_t *__restrict __s,
-- __const wchar_t *__restrict __format, ...)
-+extern int swscanf (const wchar_t *__restrict __s,
-+ const wchar_t *__restrict __format, ...)
- __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
-
- __END_NAMESPACE_C99
-@@ -609,7 +612,7 @@
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
- extern int vfwscanf (__FILE *__restrict __s,
-- __const wchar_t *__restrict __format,
-+ const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
- libc_hidden_proto(vfwscanf)
-@@ -617,12 +620,12 @@
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
--extern int vwscanf (__const wchar_t *__restrict __format,
-+extern int vwscanf (const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wscanf__, 1, 0))) */;
- /* Read formatted input from S into argument list ARG. */
--extern int vswscanf (__const wchar_t *__restrict __s,
-- __const wchar_t *__restrict __format,
-+extern int vswscanf (const wchar_t *__restrict __s,
-+ const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
- libc_hidden_proto(vswscanf)
-@@ -652,6 +655,7 @@
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
- extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
-+libc_hidden_proto(fputwc)
- extern wint_t putwc (wchar_t __wc, __FILE *__stream);
-
- /* Write a character to stdout.
-@@ -673,7 +677,7 @@
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
--extern int fputws (__const wchar_t *__restrict __ws,
-+extern int fputws (const wchar_t *__restrict __ws,
- __FILE *__restrict __stream);
- libc_hidden_proto(fputws)
-
-@@ -743,7 +747,7 @@
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
--extern int fputws_unlocked (__const wchar_t *__restrict __ws,
-+extern int fputws_unlocked (const wchar_t *__restrict __ws,
- __FILE *__restrict __stream);
- libc_hidden_proto(fputws_unlocked)
- #endif
-@@ -754,8 +758,8 @@
- Write no more than MAXSIZE wide characters and return the number
- of wide characters written, or 0 if it would exceed MAXSIZE. */
- extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
-- __const wchar_t *__restrict __format,
-- __const struct tm *__restrict __tp) __THROW;
-+ const wchar_t *__restrict __format,
-+ const struct tm *__restrict __tp) __THROW;
- __END_NAMESPACE_C99
-
- # if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
-@@ -764,8 +768,8 @@
- /* Similar to `wcsftime' but takes the information from
- the provided locale and not the global locale. */
- extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
-- __const wchar_t *__restrict __format,
-- __const struct tm *__restrict __tp,
-+ const wchar_t *__restrict __format,
-+ const struct tm *__restrict __tp,
- __locale_t __loc) __THROW;
- libc_hidden_proto(wcsftime_l)
- # endif
-diff -Nur uClibc-0.9.33.2/include/wctype.h uClibc-git/include/wctype.h
---- uClibc-0.9.33.2/include/wctype.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/wctype.h 2014-07-25 20:36:05.185326195 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 Standard: 7.25
-@@ -183,7 +182,7 @@
-
- /* Construct value that describes a class of wide characters identified
- by the string argument PROPERTY. */
--extern wctype_t wctype (__const char *__property) __THROW;
-+extern wctype_t wctype (const char *__property) __THROW;
- libc_hidden_proto(wctype)
-
- /* Determine whether the wide-character WC has the property described by
-@@ -200,7 +199,7 @@
- __BEGIN_NAMESPACE_C99
- /* Scalar type that can hold values which represent locale-specific
- character mappings. */
--/* uClibc note: glibc uses - typedef __const __int32_t *wctrans_t; */
-+/* uClibc note: glibc uses - typedef const __int32_t *wctrans_t; */
- typedef unsigned int wctrans_t;
- __END_NAMESPACE_C99
- #ifdef __USE_GNU
-@@ -235,7 +234,7 @@
- __BEGIN_NAMESPACE_C99
- /* Construct value that describes a mapping between wide characters
- identified by the string argument PROPERTY. */
--extern wctrans_t wctrans (__const char *__property) __THROW;
-+extern wctrans_t wctrans (const char *__property) __THROW;
- libc_hidden_proto(wctrans)
-
- /* Map the wide character WC using the mapping described by DESC. */
-@@ -304,7 +303,7 @@
-
- /* Construct value that describes a class of wide characters identified
- by the string argument PROPERTY. */
--extern wctype_t wctype_l (__const char *__property, __locale_t __locale)
-+extern wctype_t wctype_l (const char *__property, __locale_t __locale)
- __THROW;
-
- /* Determine whether the wide-character WC has the property described by
-@@ -328,7 +327,7 @@
-
- /* Construct value that describes a mapping between wide characters
- identified by the string argument PROPERTY. */
--extern wctrans_t wctrans_l (__const char *__property, __locale_t __locale)
-+extern wctrans_t wctrans_l (const char *__property, __locale_t __locale)
- __THROW;
-
- /* Map the wide character WC using the mapping described by DESC. */
-diff -Nur uClibc-0.9.33.2/include/wordexp.h uClibc-git/include/wordexp.h
---- uClibc-0.9.33.2/include/wordexp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/wordexp.h 2014-07-25 20:36:05.185326195 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _WORDEXP_H
- #define _WORDEXP_H 1
-@@ -60,7 +59,7 @@
- };
-
- /* Do word expansion of WORDS into PWORDEXP. */
--extern int wordexp (__const char *__restrict __words,
-+extern int wordexp (const char *__restrict __words,
- wordexp_t *__restrict __pwordexp, int __flags);
-
- /* Free the storage allocated by a `wordexp' call. */
-diff -Nur uClibc-0.9.33.2/include/xlocale.h uClibc-git/include/xlocale.h
---- uClibc-0.9.33.2/include/xlocale.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/include/xlocale.h 2014-07-25 20:36:05.185326195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _XLOCALE_H
- #define _XLOCALE_H 1
-@@ -39,11 +38,11 @@
- /* Note: LC_ALL is not a valid index into this array. */
- const char *__names[13];
- } *__locale_t;
-+#else
-+# include <bits/uClibc_locale.h>
-+#endif
-
- /* POSIX 2008 makes locale_t official. */
- typedef __locale_t locale_t;
--#else
--# include <locale.h>
--#endif
-
- #endif /* xlocale.h */
-diff -Nur uClibc-0.9.33.2/ldso/include/dl-defs.h uClibc-git/ldso/include/dl-defs.h
---- uClibc-0.9.33.2/ldso/include/dl-defs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/dl-defs.h 2014-07-25 20:36:05.209326321 +0200
-@@ -5,8 +5,8 @@
- * GNU Lesser General Public License version 2.1 or later.
- */
-
--#ifndef _LD_DEFS_H
--#define _LD_DEFS_H
-+#ifndef _DL_DEFS_H
-+#define _DL_DEFS_H
-
- #define FLAG_ANY -1
- #define FLAG_TYPE_MASK 0x00ff
-@@ -72,6 +72,11 @@
-
- #endif
-
-+#ifdef _LIBC
-+/* arch specific defines */
-+#include <dl-sysdep.h>
-+#endif
-+
- /* Provide a means for a port to pass additional arguments to the _dl_start
- function. */
- #ifndef DL_START
-@@ -281,4 +286,4 @@
- # define DL_GET_RUN_ADDR(loadaddr, mapaddr) (mapaddr)
- #endif
-
--#endif /* _LD_DEFS_H */
-+#endif /* _DL_DEFS_H */
-diff -Nur uClibc-0.9.33.2/ldso/include/dl-elf.h uClibc-git/ldso/include/dl-elf.h
---- uClibc-0.9.33.2/ldso/include/dl-elf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/dl-elf.h 2014-07-25 20:36:05.209326321 +0200
-@@ -5,19 +5,22 @@
- * GNU Lesser General Public License version 2.1 or later.
- */
-
--#ifndef LINUXELF_H
--#define LINUXELF_H
-+#ifndef _DL_ELF_H
-+#define _DL_ELF_H
-
-+#include <features.h>
-+#include <bits/wordsize.h>
- #include <dl-string.h> /* before elf.h to get ELF_USES_RELOCA right */
- #include <elf.h>
- #include <link.h>
-+#include <dl-defs.h>
-+#include <dlfcn.h>
-
--/* Forward declarations for stuff defined in ld_hash.h */
-+/* Forward declarations for stuff defined in dl-hash.h */
- struct dyn_elf;
- struct elf_resolve;
- struct r_scope_elem;
-
--#include <dl-defs.h>
- #ifdef __LDSO_CACHE_SUPPORT__
- extern int _dl_map_cache(void);
- extern int _dl_unmap_cache(void);
-@@ -29,7 +32,7 @@
- #define DL_RESOLVE_SECURE 0x0001
- #define DL_RESOLVE_NOLOAD 0x0002
-
--/* Function prototypes for non-static stuff in readelflib1.c */
-+/* Function prototypes for non-static stuff in elfinterp.c */
- extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
- unsigned long rel_addr, unsigned long rel_size);
- extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
-@@ -39,8 +42,6 @@
- int trace_loaded_objects);
- extern struct elf_resolve * _dl_load_elf_shared_library(unsigned rflags,
- struct dyn_elf **rpnt, const char *libname);
--extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const char *full_libname,
-- int trace_loaded_objects);
- extern int _dl_linux_resolve(void);
- extern int _dl_fixup(struct dyn_elf *rpnt, struct r_scope_elem *scope, int flag);
- extern void _dl_protect_relro (struct elf_resolve *l);
-@@ -222,11 +223,6 @@
- #ifdef __DSBT__
- /* Get the mapped address of the DSBT base. */
- ADJUST_DYN_INFO(DT_DSBT_BASE_IDX, load_off);
--
-- /* Initialize loadmap dsbt info. */
-- load_off.map->dsbt_table = (void *)dynamic_info[DT_DSBT_BASE_IDX];
-- load_off.map->dsbt_size = dynamic_info[DT_DSBT_SIZE_IDX];
-- load_off.map->dsbt_index = dynamic_info[DT_DSBT_INDEX_IDX];
- #endif
- #undef ADJUST_DYN_INFO
- return rtld_flags;
-@@ -259,4 +255,4 @@
- (((X) & PF_X) ? PROT_EXEC : 0))
-
-
--#endif /* LINUXELF_H */
-+#endif /* _DL_ELF_H */
-diff -Nur uClibc-0.9.33.2/ldso/include/dlfcn.h uClibc-git/ldso/include/dlfcn.h
---- uClibc-0.9.33.2/ldso/include/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/dlfcn.h 2014-07-25 20:36:05.213326342 +0200
-@@ -19,9 +19,9 @@
- `dladdr'. */
- typedef struct
- {
-- __const char *dli_fname; /* File name of defining object. */
-+ const char *dli_fname; /* File name of defining object. */
- void *dli_fbase; /* Load address of that object. */
-- __const char *dli_sname; /* Name of nearest symbol. */
-+ const char *dli_sname; /* Name of nearest symbol. */
- void *dli_saddr; /* Exact value of nearest symbol. */
- } Dl_info;
-
-diff -Nur uClibc-0.9.33.2/ldso/include/dl-hash.h uClibc-git/ldso/include/dl-hash.h
---- uClibc-0.9.33.2/ldso/include/dl-hash.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/dl-hash.h 2014-07-25 20:36:05.209326321 +0200
-@@ -5,8 +5,8 @@
- * GNU Lesser General Public License version 2.1 or later.
- */
-
--#ifndef _LD_HASH_H_
--#define _LD_HASH_H_
-+#ifndef _DL_HASH_H
-+#define _DL_HASH_H
-
- #ifndef RTLD_NEXT
- #define RTLD_NEXT ((void*)-1)
-@@ -139,6 +139,12 @@
- memory when the module is dlclose()d. */
- struct funcdesc_ht *funcdesc_ht;
- #endif
-+#ifdef __DSBT__
-+ /* Information for DSBT */
-+ void **dsbt_table;
-+ unsigned long dsbt_size;
-+ unsigned long dsbt_index;
-+#endif
- };
-
- #define RELOCS_DONE 0x000001
-@@ -160,17 +166,7 @@
- struct elf_resolve *mytpnt, int type_class,
- struct symbol_ref *symbol);
-
--extern int _dl_linux_dynamic_link(void);
--
- extern char * _dl_library_path;
--extern char * _dl_not_lazy;
--
--static __inline__ int _dl_symbol(char * name)
--{
-- if (name[0] != '_' || name[1] != 'd' || name[2] != 'l' || name[3] != '_')
-- return 0;
-- return 1;
--}
-
- #define LD_ERROR_NOFILE 1
- #define LD_ERROR_NOZERO 2
-@@ -184,4 +180,4 @@
- #define LD_BAD_HANDLE 10
- #define LD_NO_SYMBOL 11
-
--#endif /* _LD_HASH_H_ */
-+#endif /* _DL_HASH_H */
-diff -Nur uClibc-0.9.33.2/ldso/include/dl-string.h uClibc-git/ldso/include/dl-string.h
---- uClibc-0.9.33.2/ldso/include/dl-string.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/dl-string.h 2014-07-25 20:36:05.209326321 +0200
-@@ -5,12 +5,16 @@
- * GNU Lesser General Public License version 2.1 or later.
- */
-
--#ifndef _LINUX_STRING_H_
--#define _LINUX_STRING_H_
-+#ifndef _DL_STRING_H
-+#define _DL_STRING_H
-
--#include <dl-sysdep.h> /* for do_rem */
- #include <features.h>
-
-+#define __need_NULL
-+#include <stddef.h>
-+
-+#include <dl-defs.h> /* for do_rem by dl-sysdep.h */
-+
- /* provide some sane defaults */
- #ifndef do_rem
- # define do_rem(result, n, base) ((result) = (n) % (base))
-@@ -19,25 +23,7 @@
- # define do_div_10(result, remain) ((result) /= 10)
- #endif
-
--static size_t _dl_strlen(const char *str);
--static char *_dl_strcat(char *dst, const char *src);
--static char *_dl_strcpy(char *dst, const char *src);
--static int _dl_strcmp(const char *s1, const char *s2);
--static int _dl_strncmp(const char *s1, const char *s2, size_t len);
--static char *_dl_strchr(const char *str, int c);
--static char *_dl_strrchr(const char *str, int c);
--static char *_dl_strstr(const char *s1, const char *s2);
--static void *_dl_memcpy(void *dst, const void *src, size_t len);
--static int _dl_memcmp(const void *s1, const void *s2, size_t len);
--static void *_dl_memset(void *str, int c, size_t len);
--static char *_dl_get_last_path_component(char *path);
--static char *_dl_simple_ltoa(char *local, unsigned long i);
--static char *_dl_simple_ltoahex(char *local, unsigned long i);
--
--#ifndef NULL
--#define NULL ((void *) 0)
--#endif
--
-+#ifdef IS_IN_rtld
- static __always_inline size_t _dl_strlen(const char *str)
- {
- register const char *ptr = (char *) str-1;
-@@ -84,22 +70,6 @@
- return c1 - c2;
- }
-
--static __always_inline int _dl_strncmp(const char *s1, const char *s2, size_t len)
--{
-- register unsigned char c1 = '\0';
-- register unsigned char c2 = '\0';
--
-- s1--;s2--;
-- while (len > 0) {
-- c1 = (unsigned char) *++s1;
-- c2 = (unsigned char) *++s2;
-- if (c1 == '\0' || c1 != c2)
-- return c1 - c2;
-- len--;
-- }
-- return c1 - c2;
--}
--
- static __always_inline char * _dl_strchr(const char *str, int c)
- {
- register char ch;
-@@ -172,7 +142,7 @@
- return 0;
- }
-
--#if defined(powerpc)
-+#if defined(__powerpc__)
- /* Will generate smaller and faster code due to loop unrolling.*/
- static __always_inline void * _dl_memset(void *to, int c, size_t n)
- {
-@@ -228,7 +198,19 @@
- ;/* empty */
- return ptr == path ? ptr : ptr+1;
- }
-+#else /* IS_IN_rtld */
-+# include <string.h>
-+# define _dl_strlen strlen
-+# define _dl_strcat strcat
-+# define _dl_strcpy strcpy
-+# define _dl_strcmp strcmp
-+# define _dl_strrchr strrchr
-+# define _dl_memcpy memcpy
-+# define _dl_memcmp memcmp
-+# define _dl_memset memset
-+#endif /* IS_IN_rtld */
-
-+#if defined IS_IN_rtld || defined __SUPPORT_LD_DEBUG__
- /* Early on, we can't call printf, so use this to print out
- * numbers using the SEND_STDERR() macro. Avoid using mod
- * or using long division */
-@@ -246,7 +228,9 @@
- } while (i > 0);
- return p;
- }
-+#endif
-
-+#ifdef IS_IN_rtld
- static __always_inline char * _dl_simple_ltoahex(char *local, unsigned long i)
- {
- /* 16 digits plus a leading "0x" plus a null terminator,
-@@ -266,9 +250,6 @@
- return p;
- }
-
--
--
--
- /* The following macros may be used in dl-startup.c to debug
- * ldso before ldso has fixed itself up to make function calls */
-
-@@ -285,7 +266,7 @@
- /* On some arches constant strings are referenced through the GOT.
- * This requires that load_addr must already be defined... */
- #if defined(mc68000) || defined(__arm__) || defined(__thumb__) || \
-- defined(__mips__) || defined(__sh__) || defined(__powerpc__) || \
-+ defined(__sh__) || defined(__powerpc__) || \
- defined(__avr32__) || defined(__xtensa__) || defined(__sparc__) || defined(__microblaze__)
- # define CONSTANT_STRING_GOT_FIXUP(X) \
- if ((X) < (const char *) load_addr) (X) += load_addr
-@@ -362,4 +343,6 @@
- # define SEND_ADDRESS_STDERR_DEBUG(X, add_a_newline)
- #endif
-
--#endif
-+#endif /* IS_IN_rtld */
-+
-+#endif /* _DL_STRING_H */
-diff -Nur uClibc-0.9.33.2/ldso/include/dl-syscall.h uClibc-git/ldso/include/dl-syscall.h
---- uClibc-0.9.33.2/ldso/include/dl-syscall.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/dl-syscall.h 2014-07-25 20:36:05.209326321 +0200
-@@ -5,8 +5,8 @@
- * GNU Lesser General Public License version 2.1 or later.
- */
-
--#ifndef _LD_SYSCALL_H_
--#define _LD_SYSCALL_H_
-+#ifndef _DL_SYSCALL_H
-+#define _DL_SYSCALL_H
-
- /* We can't use the real errno in ldso, since it has not yet
- * been dynamicly linked in yet. */
-@@ -20,6 +20,8 @@
- /* For MAP_ANONYMOUS -- differs between platforms */
- #define _SYS_MMAN_H 1
- #include <bits/mman.h>
-+
-+#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- /* Pull in whatever this particular arch's kernel thinks the kernel version of
- * struct stat should look like. It turns out that each arch has a different
- * opinion on the subject, and different kernel revs use different names... */
-@@ -35,6 +37,13 @@
- #define S_ISUID 04000 /* Set user ID on execution. */
- #define S_ISGID 02000 /* Set group ID on execution. */
-
-+#else
-+/* 1. common-generic ABI doesn't need kernel_stat translation
-+ * 3. S_IS?ID already provided by stat.h
-+ */
-+#include <sys/stat.h>
-+#endif
-+
-
- /* Here are the definitions for some syscalls that are used
- by the dynamic linker. The idea is that we want to be able
-@@ -48,9 +57,18 @@
- #define __NR__dl_close __NR_close
- static __always_inline _syscall1(int, _dl_close, int, fd)
-
--#define __NR__dl_open __NR_open
-+#if defined __NR_openat && !defined __NR_open
-+static __always_inline int _dl_open(const char *fn,
-+ int flags, __kernel_mode_t mode)
-+{
-+ return INLINE_SYSCALL(openat, 4, AT_FDCWD, fn, flags, mode);
-+}
-+
-+#elif defined __NR_open
-+# define __NR__dl_open __NR_open
- static __always_inline _syscall3(int, _dl_open, const char *, fn, int, flags,
- __kernel_mode_t, mode)
-+#endif
-
- #define __NR__dl_write __NR_write
- static __always_inline _syscall3(unsigned long, _dl_write, int, fd,
-@@ -64,11 +82,27 @@
- static __always_inline _syscall3(int, _dl_mprotect, const void *, addr,
- unsigned long, len, int, prot)
-
--#define __NR__dl_stat __NR_stat
-+#if defined __NR_fstatat64 && !defined __NR_stat
-+# define __NR__dl_fstatat64 __NR_fstatat64
-+static __always_inline _syscall4(int, _dl_fstatat64, int, fd, const char *,
-+ fn, struct stat *, stat, int, flags)
-+
-+static __always_inline int _dl_stat(const char *file_name,
-+ struct stat *buf)
-+{
-+ return _dl_fstatat64(AT_FDCWD, file_name, buf, 0);
-+}
-+#elif defined __NR_stat
-+# define __NR__dl_stat __NR_stat
- static __always_inline _syscall2(int, _dl_stat, const char *, file_name,
- struct stat *, buf)
-+#endif
-
--#define __NR__dl_fstat __NR_fstat
-+#if defined __NR_fstat64 && !defined __NR_fstat
-+# define __NR__dl_fstat __NR_fstat64
-+#elif defined __NR_fstat
-+# define __NR__dl_fstat __NR_fstat
-+#endif
- static __always_inline _syscall2(int, _dl_fstat, int, fd, struct stat *, buf)
-
- #define __NR__dl_munmap __NR_munmap
-@@ -104,9 +138,15 @@
- #define __NR__dl_getpid __NR_getpid
- static __always_inline _syscall0(gid_t, _dl_getpid)
-
--#define __NR__dl_readlink __NR_readlink
-+#if defined __NR_readlinkat && !defined __NR_readlink
-+# define __NR__dl_readlink __NR_readlinkat
-+static __always_inline _syscall4(int, _dl_readlink, int, id, const char *, path,
-+ char *, buf, size_t, bufsiz)
-+#elif defined __NR_readlink
-+# define __NR__dl_readlink __NR_readlink
- static __always_inline _syscall3(int, _dl_readlink, const char *, path, char *, buf,
- size_t, bufsiz)
-+#endif
-
- #ifdef __NR_pread64
- #define __NR___syscall_pread __NR_pread64
-@@ -187,4 +227,4 @@
- #endif
- }
-
--#endif /* _LD_SYSCALL_H_ */
-+#endif /* _DL_SYSCALL_H */
-diff -Nur uClibc-0.9.33.2/ldso/include/ldsodefs.h uClibc-git/ldso/include/ldsodefs.h
---- uClibc-0.9.33.2/ldso/include/ldsodefs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/ldsodefs.h 2014-07-25 20:36:05.213326342 +0200
-@@ -66,7 +66,7 @@
- /* Taken from glibc/elf/dl-reloc.c */
- #define CHECK_STATIC_TLS(sym_map) \
- do { \
-- if (__builtin_expect ((sym_map)->l_tls_offset == NO_TLS_OFFSET, 0)) \
-+ if (unlikely((sym_map)->l_tls_offset == NO_TLS_OFFSET)) \
- _dl_allocate_static_tls (sym_map); \
- } while (0)
-
-diff -Nur uClibc-0.9.33.2/ldso/include/ldso.h uClibc-git/ldso/include/ldso.h
---- uClibc-0.9.33.2/ldso/include/ldso.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/include/ldso.h 2014-07-25 20:36:05.213326342 +0200
-@@ -5,8 +5,8 @@
- * GNU Lesser General Public License version 2.1 or later.
- */
-
--#ifndef _LDSO_H_
--#define _LDSO_H_
-+#ifndef _LDSO_H
-+#define _LDSO_H
-
- #include <features.h>
-
-@@ -30,6 +30,10 @@
- #include <stddef.h> /* for ptrdiff_t */
- #include <stdbool.h>
- #define _FCNTL_H
-+/* We need this if arch has only new syscalls defined */
-+#ifndef AT_FDCWD
-+#define AT_FDCWD -100
-+#endif /* AT_FDCWD */
- #include <bits/fcntl.h>
- #include <bits/wordsize.h>
- /* Pull in the arch specific type information */
-@@ -42,7 +46,6 @@
- #ifndef __ARCH_HAS_NO_SHARED__
- #include <dl-syscall.h>
- #include <dl-string.h>
--#include <dlfcn.h>
- /* Now the ldso specific headers */
- #include <dl-elf.h>
- #ifdef __UCLIBC_HAS_TLS__
-@@ -84,16 +87,15 @@
- #else
- #define _dl_trace_prelink 0
- #endif
-+#ifdef __DSBT__
-+extern void **_dl_ldso_dsbt;
-+#endif
-
- #if defined(USE_TLS) && USE_TLS
- extern void _dl_add_to_slotinfo (struct link_map *l);
- extern void ** __attribute__ ((const)) _dl_initial_error_catch_tsd (void);
- #endif
-
--#ifdef USE_TLS
--void _dl_add_to_slotinfo (struct link_map *l);
--void ** __attribute__ ((const)) _dl_initial_error_catch_tsd (void);
--#endif
- #ifdef __SUPPORT_LD_DEBUG__
- extern char *_dl_debug;
- extern char *_dl_debug_symbols;
-@@ -110,7 +112,8 @@
- #else
- # define __dl_debug_dprint(fmt, args...) do {} while (0)
- # define _dl_if_debug_dprint(fmt, args...) do {} while (0)
--# define _dl_debug_file 2
-+/* disabled on purpose, _dl_debug_file should be guarded by __SUPPORT_LD_DEBUG__
-+# define _dl_debug_file 2*/
- #endif /* __SUPPORT_LD_DEBUG__ */
-
- #ifdef IS_IN_rtld
-@@ -146,8 +149,19 @@
- extern void _dl_free(void *);
- extern char *_dl_getenv(const char *symbol, char **envp);
- extern void _dl_unsetenv(const char *symbol, char **envp);
-+#ifdef IS_IN_rtld
- extern char *_dl_strdup(const char *string);
- extern void _dl_dprintf(int, const char *, ...);
-+#else
-+# include <string.h>
-+# define _dl_strdup strdup
-+# include <stdio.h>
-+# ifdef __USE_GNU
-+# define _dl_dprintf dprintf
-+# else
-+# define _dl_dprintf(fd, fmt, args...) fprintf(stderr, fmt, ## args)
-+# endif
-+#endif
-
- #ifndef DL_GET_READY_TO_RUN_EXTRA_PARMS
- # define DL_GET_READY_TO_RUN_EXTRA_PARMS
-@@ -168,4 +182,4 @@
- #include <dl-defs.h>
- #endif
-
--#endif /* _LDSO_H_ */
-+#endif /* _LDSO_H */
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-debug.h uClibc-git/ldso/ldso/arc/dl-debug.h
---- uClibc-0.9.33.2/ldso/ldso/arc/dl-debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/arc/dl-debug.h 2014-07-25 20:36:05.245326510 +0200
-@@ -0,0 +1,68 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+static const char *_dl_reltypes_tab[] =
-+{
-+ "R_ARC_NONE", /* 0 */
-+ "R_ARC_8",
-+ "R_ARC_16",
-+ "R_ARC_24",
-+ "R_ARC_32",
-+ "R_ARC_B26", /* 5 */
-+ "R_ARC_B22_PCREL",
-+ "R_ARC_H30",
-+ "R_ARC_N8",
-+ "R_ARC_N16",
-+ "R_ARC_N24", /* 10 */
-+ "R_ARC_N32",
-+ "R_ARC_SDA",
-+ "R_ARC_SECTOFF",
-+ "R_ARC_S21H_PCREL",
-+ "R_ARC_S21W_PCREL", /* 15 */
-+ "R_ARC_S25H_PCREL",
-+ "R_ARC_S25W_PCREL",
-+ "R_ARC_SDA32",
-+ "R_ARC_SDA_LDST",
-+ "R_ARC_SDA_LDST1", /* 20 */
-+ "R_ARC_SDA_LDST2",
-+ "R_ARC_SDA16_LD",
-+ "R_ARC_SDA16_LD1",
-+ "R_ARC_SDA16_LD2",
-+ "R_ARC_S13_PCREL", /* 25 */
-+ "R_ARC_W",
-+ "R_ARC_32_ME",
-+ "R_ARC_N32_ME",
-+ "R_ARC_SECTOFF_ME",
-+ "R_ARC_SDA32_ME", /* 30 */
-+ "R_ARC_W_ME",
-+ "R_ARC_H30_ME",
-+ "R_ARC_SECTOFF_U8",
-+ "R_ARC_SECTOFF_S9",
-+ "R_AC_SECTOFF_U8", /* 35 */
-+ "R_AC_SECTOFF_U8_1",
-+ "R_AC_SECTOFF_U8_2",
-+ "R_AC_SECTOFF_S9",
-+ "R_AC_SECTOFF_S9_1",
-+ "R_AC_SECTOFF_S9_2", /* 40 */
-+ "R_ARC_SECTOFF_ME_1",
-+ "R_ARC_SECTOFF_ME_2",
-+ "R_ARC_SECTOFF_1",
-+ "R_ARC_SECTOFF_2",
-+ "", /* 45 */
-+ "",
-+ "",
-+ "",
-+ "",
-+ "R_ARC_PC32", /* 50 */
-+ "R_ARC_GOTPC32",
-+ "R_ARC_PLT32",
-+ "R_ARC_COPY",
-+ "R_ARC_GLOB_DAT",
-+ "R_ARC_JMP_SLOT", /* 55 */
-+ "R_ARC_RELATIVE",
-+ "R_ARC_GOTOFF",
-+ "R_ARC_GOTPC",
-+ "R_ARC_GOT32",
-+};
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-startup.h uClibc-git/ldso/ldso/arc/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/arc/dl-startup.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/arc/dl-startup.h 2014-07-25 20:36:05.245326510 +0200
-@@ -0,0 +1,89 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/*
-+ * vineetg: Refactoring/cleanup of loader entry point
-+ * Removed 6 useless insns
-+ * Joern Improved it even further:
-+ * -better insn scheduling
-+ * -no need for conditional code for _dl_skip_args
-+ * -use of assembler .&2 expressions vs. @gotpc refs (avoids need for GP)
-+ *
-+ * What this code does:
-+ * -ldso starts execution here when kernel returns from execve()
-+ * -calls into generic ldso entry point _dl_start( )
-+ * -optionally adjusts argc for executable if exec passed as cmd
-+ * -calls into app main with address of finaliser
-+ */
-+__asm__(
-+ ".section .text \n"
-+ ".align 4 \n"
-+ ".global _start \n"
-+ ".hidden _start \n"
-+ ".type _start,@function \n"
-+
-+ "_start: \n"
-+ " ; ldso entry point, returns app entry point \n"
-+ " bl.d _dl_start \n"
-+ " mov_s r0, sp ; pass ptr to aux vector tbl \n"
-+
-+ " ; If ldso ran as cmd with executable file nm as arg \n"
-+ " ; skip the extra args calc by dl_start() \n"
-+ " ld_s r1, [sp] ; orig argc from aux-vec Tbl \n"
-+#ifdef STAR_9000535888_FIXED
-+ " ld r12, [pcl, _dl_skip_args-.+(.&2)] \n"
-+#else
-+ " add r12, pcl, _dl_skip_args-.+(.&2) \n"
-+ " ld r12, [r12] \n"
-+#endif
-+
-+ " add r2, pcl, _dl_fini-.+(.&2) ; finalizer \n"
-+
-+ " add2 sp, sp, r12 ; discard argv entries from stack\n"
-+ " sub_s r1, r1, r12 ; adjusted argc, on stack \n"
-+ " st_s r1, [sp] \n"
-+
-+ " j_s.d [r0] ; app entry point \n"
-+ " mov_s r0, r2 ; ptr to finalizer _dl_fini \n"
-+
-+ ".size _start,.-_start \n"
-+ ".previous \n"
-+);
-+
-+/*
-+ * Get a pointer to the argv array. On many platforms this can be just
-+ * the address if the first argument, on other platforms we need to
-+ * do something a little more subtle here.
-+ */
-+#define GET_ARGV(ARGVP, ARGS) ARGVP = ((unsigned long*) ARGS + 1)
-+
-+/*
-+ * Dynamic loader bootstrapping:
-+ * Since we don't modify text at runtime, these can only be data relos
-+ * (so safe to assume that they are word aligned).
-+ * And also they HAVE to be RELATIVE relos only
-+ * @RELP is the relo entry being processed
-+ * @REL is the pointer to the address we are relocating.
-+ * @SYMBOL is the symbol involved in the relocation
-+ * @LOAD is the load address.
-+ */
-+
-+#define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD,SYMTAB) \
-+do { \
-+ int type = ELF32_R_TYPE((RELP)->r_info); \
-+ if (likely(type == R_ARC_RELATIVE)) \
-+ *REL += (unsigned long) LOAD; \
-+ else \
-+ _dl_exit(1); \
-+}while(0)
-+
-+/*
-+ * This will go away once we have DT_RELACOUNT
-+ */
-+#define ARCH_NEEDS_BOOTSTRAP_RELOCS
-+
-+/* we dont need to spit out argc, argv etc for debugging */
-+#define NO_EARLY_SEND_STDERR 1
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-syscalls.h uClibc-git/ldso/ldso/arc/dl-syscalls.h
---- uClibc-0.9.33.2/ldso/ldso/arc/dl-syscalls.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/arc/dl-syscalls.h 2014-07-25 20:36:05.245326510 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/* stub for arch-specific syscall issues */
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-sysdep.h uClibc-git/ldso/ldso/arc/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/arc/dl-sysdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/arc/dl-sysdep.h 2014-07-25 20:36:05.245326510 +0200
-@@ -0,0 +1,150 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include "elf.h"
-+
-+/*
-+ * Define this if the system uses RELOCA.
-+ */
-+#define ELF_USES_RELOCA
-+
-+/*
-+ * Dynamic Linking ABI for ARCompact ISA
-+ *
-+ * PLT
-+ * --------------------------------
-+ * | ld r11, [pcl, off-to-GOT[1] | 0 (20 bytes)
-+ * | | 4
-+ * plt0 | ld r10, [pcl, off-to-GOT[2] | 8
-+ * | | 12
-+ * | j [r10] | 16
-+ * --------------------------------
-+ * | Base address of GOT | 20
-+ * --------------------------------
-+ * | ld r12, [pcl, off-to-GOT[3] | 24 (12 bytes each)
-+ * plt1 | |
-+ * | j_s.d [r12] | 32
-+ * | mov_s r12, pcl | 34
-+ * --------------------------------
-+ * | | 36
-+ * ~ ~
-+ * ~ ~
-+ * | |
-+ * --------------------------------
-+ *
-+ * GOT
-+ * --------------
-+ * | [0] |
-+ * --------------
-+ * | [1] | Module info - setup by ldso
-+ * --------------
-+ * | [2] | resolver entry point
-+ * --------------
-+ * | [3] |
-+ * | ... | Runtime address for function symbols
-+ * | [f] |
-+ * --------------
-+ * | [f+1] |
-+ * | ... | Runtime address for data symbols
-+ * | [last] |
-+ * --------------
-+ */
-+
-+/*
-+ * Initialization sequence for a GOT.
-+ * Caller elf_resolve() seeds @GOT_BASE from DT_PLTGOT - which essentially is
-+ * pointer to first PLT entry. The actual GOT base is 5th word in PLT
-+ *
-+ */
-+#define INIT_GOT(GOT_BASE,MODULE) \
-+do { \
-+ unsigned long *__plt_base = (unsigned long *)GOT_BASE; \
-+ GOT_BASE = (unsigned long *)(__plt_base[5] + \
-+ (unsigned long)MODULE->loadaddr); \
-+ GOT_BASE[1] = (unsigned long) MODULE; \
-+ GOT_BASE[2] = (unsigned long) _dl_linux_resolve; \
-+} while(0)
-+
-+/* Here we define the magic numbers that this dynamic loader should accept */
-+#define MAGIC1 EM_ARCOMPACT
-+#undef MAGIC2
-+
-+/* Used for error messages */
-+#define ELF_TARGET "ARC"
-+
-+struct elf_resolve;
-+extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt,
-+ unsigned int plt_pc);
-+
-+extern unsigned __udivmodsi4(unsigned, unsigned) attribute_hidden;
-+
-+#define do_rem(result, n, base) ((result) = \
-+ \
-+ __builtin_constant_p (base) ? (n) % (unsigned) (base) : \
-+ __extension__ ({ \
-+ register unsigned r1 __asm__ ("r1") = (base); \
-+ \
-+ __asm__("bl.d @__udivmodsi4` mov r0,%1" \
-+ : "=r" (r1) \
-+ : "r" (n), "r" (r1) \
-+ : "r0", "r2", "r3", "r4", "lp_count", "blink", "cc"); \
-+ \
-+ r1; \
-+ }) \
-+)
-+
-+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
-+ PLT entries should not be allowed to define the value.
-+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
-+ of the main executable's symbols, as for a COPY reloc. */
-+#define elf_machine_type_class(type) \
-+ ((((type) == R_ARC_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
-+ | (((type) == R_ARC_COPY) * ELF_RTYPE_CLASS_COPY))
-+
-+/*
-+ * Get the runtime address of GOT[0]
-+ */
-+static __always_inline Elf32_Addr elf_machine_dynamic(void)
-+{
-+ Elf32_Addr dyn;
-+
-+ __asm__("ld %0,[pcl,_DYNAMIC@gotpc]\n\t" : "=r" (dyn));
-+ return dyn;
-+
-+/*
-+ * Another way would have been to simply return GP, which due to some
-+ * PIC reference would be automatically setup by gcc in caller
-+ * register Elf32_Addr *got __asm__ ("gp"); return *got;
-+ */
-+}
-+
-+/* Return the run-time load address of the shared object. */
-+static __always_inline Elf32_Addr elf_machine_load_address(void)
-+{
-+ /* To find the loadaddr we subtract the runtime addr of any symbol
-+ * say _dl_start from it's build-time addr.
-+ */
-+ Elf32_Addr addr, tmp;
-+ __asm__ (
-+ "ld %1, [pcl, _dl_start@gotpc] ;build addr of _dl_start \n"
-+ "add %0, pcl, _dl_start-.+(.&2) ;runtime addr of _dl_start \n"
-+ "sub %0, %0, %1 ;delta \n"
-+ : "=&r" (addr), "=r"(tmp)
-+ );
-+ return addr;
-+}
-+
-+static __always_inline void
-+elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
-+ Elf32_Word relative_count)
-+{
-+ Elf32_Rel * rpnt = (void *) rel_addr;
-+ --rpnt;
-+ do {
-+ Elf32_Addr *const reloc_addr = (void *) (load_off + (++rpnt)->r_offset);
-+ *reloc_addr += load_off;
-+ } while (--relative_count);
-+}
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/elfinterp.c uClibc-git/ldso/ldso/arc/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/arc/elfinterp.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/arc/elfinterp.c 2014-07-25 20:36:05.245326510 +0200
-@@ -0,0 +1,279 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Lots of code copied from ../i386/elfinterp.c, so:
-+ * Copyright (c) 1994-2000 Eric Youngdale, Peter MacDonald,
-+ * David Engel, Hongjiu Lu and Mitch D'Souza
-+ * Copyright (C) 2001-2002, Erik Andersen
-+ * All rights reserved.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+#include "ldso.h"
-+
-+#define ARC_PLT_SIZE 12
-+
-+unsigned long
-+_dl_linux_resolver(struct elf_resolve *tpnt, unsigned int plt_pc)
-+{
-+ ELF_RELOC *this_reloc, *rel_base;
-+ char *strtab, *symname, *new_addr;
-+ ElfW(Sym) *symtab;
-+ int symtab_index;
-+ unsigned int *got_addr;
-+ unsigned long plt_base;
-+ int plt_idx;
-+
-+ /* start of .rela.plt */
-+ rel_base = (ELF_RELOC *)(tpnt->dynamic_info[DT_JMPREL]);
-+
-+ /* starts of .plt (addr of PLT0) */
-+ plt_base = tpnt->dynamic_info[DT_PLTGOT];
-+
-+ /*
-+ * compute the idx of the yet-unresolved PLT entry in .plt
-+ * Same idx will be used to find the relo entry in .rela.plt
-+ */
-+ plt_idx = (plt_pc - plt_base)/ARC_PLT_SIZE - 2; /* ignoring 2 dummy PLTs */
-+
-+ this_reloc = rel_base + plt_idx;
-+
-+ symtab_index = ELF_R_SYM(this_reloc->r_info);
-+ symtab = (ElfW(Sym) *)(intptr_t) (tpnt->dynamic_info[DT_SYMTAB]);
-+ strtab = (char *) (tpnt->dynamic_info[DT_STRTAB]);
-+ symname= strtab + symtab[symtab_index].st_name;
-+
-+ /* relo-offset to fixup, shd be a .got entry */
-+ got_addr = (unsigned int *)(this_reloc->r_offset + tpnt->loadaddr);
-+
-+ /* Get the address of the GOT entry */
-+ new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt,
-+ ELF_RTYPE_CLASS_PLT, NULL);
-+
-+ if (unlikely(!new_addr)) {
-+ _dl_dprintf(2, "%s: can't resolve symbol '%s'\n", _dl_progname, symname);
-+ _dl_exit(1);
-+ }
-+
-+
-+#if defined __SUPPORT_LD_DEBUG__
-+ if (_dl_debug_bindings) {
-+ _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
-+ if (_dl_debug_detail)
-+ _dl_dprintf(_dl_debug_file, "\n\tpatched %x ==> %pc @ %pl\n",
-+ *got_addr, new_addr, got_addr);
-+ }
-+
-+ if (!_dl_debug_nofixups)
-+ *got_addr = (unsigned int)new_addr;
-+#else
-+ /* Update the .got entry with the runtime address of symbol */
-+ *got_addr = (unsigned int)new_addr;
-+#endif
-+
-+ /*
-+ * Return the new addres, where the asm trampoline will jump to
-+ * after re-setting up the orig args
-+ */
-+ return (unsigned long) new_addr;
-+}
-+
-+
-+static int
-+_dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
-+{
-+ int reloc_type;
-+ int symtab_index;
-+ char *symname;
-+ unsigned long *reloc_addr;
-+ unsigned long symbol_addr;
-+#if defined __SUPPORT_LD_DEBUG__
-+ unsigned long old_val = 0;
-+#endif
-+ struct symbol_ref sym_ref;
-+
-+ reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
-+ reloc_type = ELF_R_TYPE(rpnt->r_info);
-+ symtab_index = ELF_R_SYM(rpnt->r_info);
-+ symbol_addr = 0;
-+
-+ sym_ref.sym = &symtab[symtab_index];
-+ sym_ref.tpnt = NULL;
-+
-+#if defined __SUPPORT_LD_DEBUG__
-+ if (reloc_addr)
-+ old_val = *reloc_addr;
-+#endif
-+
-+ if (symtab_index) {
-+ symname = strtab + symtab[symtab_index].st_name;
-+ symbol_addr = (unsigned long) _dl_find_hash(symname, scope, tpnt,
-+ elf_machine_type_class(reloc_type), &sym_ref);
-+
-+ /*
-+ * We want to allow undefined references to weak symbols,
-+ * this might have been intentional. We should not be linking
-+ * local symbols here, so all bases should be covered.
-+ */
-+
-+ if (unlikely(!symbol_addr
-+ && ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK)) {
-+ /* Non-fatal if called from dlopen, hence different ret code */
-+ return 1;
-+ }
-+ } else if (reloc_type == R_ARC_RELATIVE ) {
-+ *reloc_addr += tpnt->loadaddr;
-+ goto log_entry;
-+ }
-+
-+ switch (reloc_type) {
-+ case R_ARC_32:
-+ *reloc_addr += symbol_addr + rpnt->r_addend;
-+ break;
-+ case R_ARC_PC32:
-+ *reloc_addr += symbol_addr + rpnt->r_addend - (unsigned long) reloc_addr;
-+ break;
-+ case R_ARC_GLOB_DAT:
-+ case R_ARC_JMP_SLOT:
-+ *reloc_addr = symbol_addr;
-+ break;
-+ case R_ARC_COPY:
-+ _dl_memcpy((void *) reloc_addr,(void *) symbol_addr,
-+ symtab[symtab_index].st_size);
-+ break;
-+ default:
-+ return -1;
-+ }
-+
-+log_entry:
-+#if defined __SUPPORT_LD_DEBUG__
-+ if (_dl_debug_detail)
-+ _dl_dprintf(_dl_debug_file,"\tpatched: %lx ==> %lx @ %pl: addend %x ",
-+ old_val, *reloc_addr, reloc_addr, rpnt->r_addend);
-+#endif
-+
-+ return 0;
-+}
-+
-+static int
-+_dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ ELF_RELOC *rpnt)
-+{
-+ int reloc_type;
-+ unsigned long *reloc_addr;
-+#if defined __SUPPORT_LD_DEBUG__
-+ unsigned long old_val;
-+#endif
-+
-+ reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
-+ reloc_type = ELF_R_TYPE(rpnt->r_info);
-+
-+#if defined __SUPPORT_LD_DEBUG__
-+ old_val = *reloc_addr;
-+#endif
-+
-+ switch (reloc_type) {
-+ case R_ARC_JMP_SLOT:
-+ *reloc_addr += tpnt->loadaddr;
-+ break;
-+ default:
-+ return -1;
-+ }
-+
-+#if defined __SUPPORT_LD_DEBUG__
-+ if (_dl_debug_reloc && _dl_debug_detail)
-+ _dl_dprintf(_dl_debug_file, "\tpatched: %lx ==> %lx @ %pl\n",
-+ old_val, *reloc_addr, reloc_addr);
-+#endif
-+
-+ return 0;
-+}
-+
-+#define ___DO_LAZY 1
-+#define ___DO_NOW 2
-+
-+static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ unsigned long rel_addr, unsigned long rel_size, int type)
-+{
-+ unsigned int i;
-+ char *strtab;
-+ ElfW(Sym) *symtab;
-+ ELF_RELOC *rpnt;
-+ int symtab_index;
-+ int res = 0;
-+
-+ /* Now parse the relocation information */
-+ rpnt = (ELF_RELOC *)(intptr_t) (rel_addr);
-+ rel_size = rel_size / sizeof(ELF_RELOC);
-+
-+ symtab = (ElfW(Sym) *)(intptr_t) (tpnt->dynamic_info[DT_SYMTAB]);
-+ strtab = (char *) (tpnt->dynamic_info[DT_STRTAB]);
-+
-+ for (i = 0; i < rel_size; i++, rpnt++) {
-+
-+ symtab_index = ELF_R_SYM(rpnt->r_info);
-+
-+ debug_sym(symtab,strtab,symtab_index);
-+ debug_reloc(symtab,strtab,rpnt);
-+
-+ /* constant propagation subsumes the 'if' */
-+ if (type == ___DO_LAZY)
-+ res = _dl_do_lazy_reloc(tpnt, scope, rpnt);
-+ else
-+ res = _dl_do_reloc(tpnt, scope, rpnt, symtab, strtab);
-+
-+ if (res != 0)
-+ break;
-+ }
-+
-+ if (unlikely(res != 0)) {
-+ if (res < 0) {
-+ int reloc_type = ELF_R_TYPE(rpnt->r_info);
-+#if defined __SUPPORT_LD_DEBUG__
-+ _dl_dprintf(2, "can't handle reloc type %s\n ",
-+ _dl_reltypes(reloc_type));
-+#else
-+ _dl_dprintf(2, "can't handle reloc type %x\n",
-+ reloc_type);
-+#endif
-+ _dl_exit(-res);
-+ } else {
-+ _dl_dprintf(2, "can't resolve symbol\n");
-+ /* Fall thru to return res */
-+ }
-+ }
-+
-+ return res;
-+}
-+
-+void
-+_dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
-+ unsigned long rel_addr,
-+ unsigned long rel_size)
-+{
-+ /* This func is called for processing .rela.plt of loaded module(s)
-+ * The relo entries handled are JMP_SLOT type for fixing up .got slots
-+ * for external function calls.
-+ * This function doesn't resolve the slots: that is done lazily at
-+ * runtime. The build linker (at least thats what happens for ARC) had
-+ * pre-init the .got slots to point to PLT0. All that is done here is
-+ * to fix them up to point to load value of PLT0 (as opposed to the
-+ * build value).
-+ * On ARC, the loadaddr of dyn exec is zero, thus elfaddr == loadaddr
-+ * Thus there is no point in adding "0" to values and un-necessarily
-+ * stir up the caches and TLB.
-+ * For ldso processing busybox binary, this skips over 380 relo entries
-+ */
-+ if (rpnt->dyn->loadaddr != 0)
-+ _dl_parse(rpnt->dyn, NULL, rel_addr, rel_size, ___DO_LAZY);
-+}
-+
-+int
-+_dl_parse_relocation_information(struct dyn_elf *rpnt,
-+ struct r_scope_elem *scope,
-+ unsigned long rel_addr,
-+ unsigned long rel_size)
-+{
-+ return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, ___DO_NOW);
-+}
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/resolve.S uClibc-git/ldso/ldso/arc/resolve.S
---- uClibc-0.9.33.2/ldso/ldso/arc/resolve.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/arc/resolve.S 2014-07-25 20:36:05.245326510 +0200
-@@ -0,0 +1,57 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+#include <sys/syscall.h>
-+
-+; Save the registers which resolver could possibly clobber
-+; r0-r9: args to the function - symbol being resolved
-+; r10-r12 are already clobbered by PLTn, PLT0 thus neednot be saved
-+
-+.macro SAVE_CALLER_SAVED
-+ push_s r0
-+ push_s r1
-+ push_s r2
-+ push_s r3
-+ st.a r4, [sp, -4]
-+ st.a r5, [sp, -4]
-+ st.a r6, [sp, -4]
-+ st.a r7, [sp, -4]
-+ st.a r8, [sp, -4]
-+ st.a r9, [sp, -4]
-+ push_s blink
-+.endm
-+
-+.macro RESTORE_CALLER_SAVED_BUT_R0
-+ ld.ab blink,[sp, 4]
-+ ld.ab r9, [sp, 4]
-+ ld.ab r8, [sp, 4]
-+ ld.ab r7, [sp, 4]
-+ ld.ab r6, [sp, 4]
-+ ld.ab r5, [sp, 4]
-+ ld.ab r4, [sp, 4]
-+ pop_s r3
-+ pop_s r2
-+ pop_s r1
-+.endm
-+
-+; Upon entry, PLTn, which led us here, sets up the following regs
-+; r11 = Module info (tpnt pointer as expected by resolver)
-+; r12 = PC of the PLTn itself - needed by resolver to find
-+; corresponding .rela.plt entry
-+
-+ENTRY(_dl_linux_resolve)
-+ ; args to func being resolved, which resolver might clobber
-+ SAVE_CALLER_SAVED
-+
-+ mov_s r1, r12
-+ bl.d _dl_linux_resolver
-+ mov r0, r11
-+
-+ RESTORE_CALLER_SAVED_BUT_R0
-+ j_s.d [r0] ; r0 has resolved function addr
-+ pop_s r0 ; restore first arg to resolved call
-+END(_dl_linux_resolve)
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/aeabi_read_tp.S uClibc-git/ldso/ldso/arm/aeabi_read_tp.S
---- uClibc-0.9.33.2/ldso/ldso/arm/aeabi_read_tp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/arm/aeabi_read_tp.S 2014-07-25 20:36:05.257326572 +0200
-@@ -29,9 +29,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/dl-startup.h uClibc-git/ldso/ldso/arm/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/arm/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/arm/dl-startup.h 2014-07-25 20:36:05.257326572 +0200
-@@ -7,13 +7,14 @@
- */
-
- #include <features.h>
--#include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- #if !defined(__thumb__)
- __asm__(
- " .text\n"
- " .globl _start\n"
- " .type _start,%function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " @ at start time, all the args are on the stack\n"
- " mov r0, sp\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/dl-sysdep.h uClibc-git/ldso/ldso/arm/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/arm/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/arm/dl-sysdep.h 2014-07-25 20:36:05.257326572 +0200
-@@ -58,11 +58,6 @@
- struct elf_resolve;
- unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
-
--/* 4096 bytes alignment */
--#define PAGE_ALIGN 0xfffff000
--#define ADDR_ALIGN 0xfff
--#define OFFS_ALIGN 0x7ffff000
--
- /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
- TLS variable, so undefined references should not be allowed to
- define the value.
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c uClibc-git/ldso/ldso/arm/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/arm/elfinterp.c 2014-07-25 20:36:05.257326572 +0200
-@@ -77,9 +77,9 @@
- _dl_exit(1);
- }
- #if defined (__SUPPORT_LD_DEBUG__)
--#if !defined __SUPPORT_LD_DEBUG_EARLY__
-+# if !defined __SUPPORT_LD_DEBUG_EARLY__
- if ((unsigned long) got_addr < 0x40000000)
--#endif
-+# endif
- {
- if (_dl_debug_bindings)
- {
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/resolve.S uClibc-git/ldso/ldso/arm/resolve.S
---- uClibc-0.9.33.2/ldso/ldso/arm/resolve.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/arm/resolve.S 2014-07-25 20:36:05.257326572 +0200
-@@ -92,6 +92,7 @@
-
- #include <sys/syscall.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- #include <features.h>
-
-@@ -101,7 +102,7 @@
-
- .text
- .align 4 @ 16 byte boundary and there are 32 bytes below (arm case)
-- #if !defined(__thumb__) || defined(__thumb2__)
-+#if 1 /*(!defined(__thumb__) || defined __THUMB_INTERWORK__) || defined(__thumb2__)*/
- .arm
- .globl _dl_linux_resolve
- .type _dl_linux_resolve,%function
-diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/thumb_atomics.S uClibc-git/ldso/ldso/arm/thumb_atomics.S
---- uClibc-0.9.33.2/ldso/ldso/arm/thumb_atomics.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/arm/thumb_atomics.S 2014-07-25 20:36:05.257326572 +0200
-@@ -29,9 +29,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/ldso/ldso/avr32/dl-startup.h uClibc-git/ldso/ldso/avr32/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/avr32/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/avr32/dl-startup.h 2014-07-25 20:36:05.273326656 +0200
-@@ -12,6 +12,7 @@
- __asm__(" .text\n"
- " .global _start\n"
- " .type _start,@function\n"
-+ " .hidden _start\n"
- "_start:\n"
- /* All arguments are on the stack initially */
- " mov r12, sp\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/avr32/dl-sysdep.h uClibc-git/ldso/ldso/avr32/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/avr32/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/avr32/dl-sysdep.h 2014-07-25 20:36:05.273326656 +0200
-@@ -35,8 +35,6 @@
- GOT_BASE[_i] += (unsigned long)MODULE->loadaddr; \
- } while (0)
-
--#define do_rem(result, n, base) ((result) = (n) % (base))
--
- /* Here we define the magic numbers that this dynamic loader should accept */
- #define MAGIC1 EM_AVR32
- #undef MAGIC2
-diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/dl-startup.h uClibc-git/ldso/ldso/bfin/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/bfin/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/bfin/dl-startup.h 2014-07-25 20:36:05.285326719 +0200
-@@ -14,9 +14,8 @@
- Library General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
--License along with uClibc; see the file COPYING.LIB. If not, write to
--the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
--USA. */
-+License along with uClibc; see the file COPYING.LIB. If not, see
-+<http://www.gnu.org/licenses/>. */
-
- /* Any assembly language/system dependent hacks needed to setup
- * boot1.c so it will work as expected and cope with whatever platform
-@@ -40,10 +39,7 @@
- " .text\n"
- " .global __start\n"
- " .type __start,@function\n"
-- /* Build system expects a "_start" for the entry point;
-- provide it as it's free to do so with aliases. */
-- " .set _start, __start\n"
-- " .global _start\n"
-+ " .hidden __start\n"
- "__start:\n"
- " call .Lcall\n"
- ".Lcall:\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/dl-syscalls.h uClibc-git/ldso/ldso/bfin/dl-syscalls.h
---- uClibc-0.9.33.2/ldso/ldso/bfin/dl-syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/bfin/dl-syscalls.h 2014-07-25 20:36:05.285326719 +0200
-@@ -14,9 +14,8 @@
- Library General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
--License along with uClibc; see the file COPYING.LIB. If not, write to
--the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
--USA. */
-+License along with uClibc; see the file COPYING.LIB. If not, see
-+<http://www.gnu.org/licenses/>. */
-
- #ifdef __NR_sram_alloc
- #define __NR__dl_sram_alloc __NR_sram_alloc
-diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/elfinterp.c uClibc-git/ldso/ldso/bfin/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/bfin/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/bfin/elfinterp.c 2014-07-25 20:36:05.289326740 +0200
-@@ -20,9 +20,8 @@
- Library General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
--License along with uClibc; see the file COPYING.LIB. If not, write to
--the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
--USA. */
-+License along with uClibc; see the file COPYING.LIB. If not, see
-+<http://www.gnu.org/licenses/>. */
-
- #include <sys/cdefs.h> /* __attribute_used__ */
-
-diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/resolve.S uClibc-git/ldso/ldso/bfin/resolve.S
---- uClibc-0.9.33.2/ldso/ldso/bfin/resolve.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/bfin/resolve.S 2014-07-25 20:36:05.289326740 +0200
-@@ -14,9 +14,8 @@
- Library General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
--License along with uClibc; see the file COPYING.LIB. If not, write to
--the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
--USA. */
-+License along with uClibc; see the file COPYING.LIB. If not, see
-+<http://www.gnu.org/licenses/>. */
-
- /* The function below is tail-called by resolver stubs when a
- lazily-bound function is called. It must preserve all
-diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/dl-startup.h uClibc-git/ldso/ldso/c6x/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/c6x/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/c6x/dl-startup.h 2014-07-25 20:36:05.301326802 +0200
-@@ -6,10 +6,9 @@
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
--
- #undef DL_START
- #define DL_START(X) \
--int \
-+static void * __attribute_used__ \
- _dl_start (unsigned placeholder, \
- struct elf32_dsbt_loadmap *dl_boot_progmap, \
- struct elf32_dsbt_loadmap *dl_boot_ldsomap, \
-@@ -34,7 +33,6 @@
- * B4 --> executable loadmap address
- * A6 --> interpreter loadmap address
- * B6 --> dynamic section address
-- * B14 --> our DP setup by kernel
- *
- * NB: DSBT index is always 0 for the executable
- * and 1 for the interpreter
-@@ -42,7 +40,76 @@
-
- __asm__(" .text\n"
- ".globl _start\n"
-+ ".hidden _start\n"
- "_start:\n"
-+ /* Find interpreter DSBT base in dynamic section */
-+ " MV .S2 B6,B2\n"
-+ " || ADD .D1X B6,4,A2\n"
-+ " LDW .D2T2 *B2++[2],B0\n"
-+ " || LDW .D1T1 *A2++[2],A0\n"
-+ " MVKL .S2 " __stringify(DT_C6000_DSBT_BASE) ",B7\n"
-+ " MVKH .S2 " __stringify(DT_C6000_DSBT_BASE) ",B7\n"
-+ " NOP\n"
-+ " NOP\n"
-+ /*
-+ * B0 now holds dynamic tag and A0 holds tag value.
-+ * Loop through looking for DSBT base tag
-+ */
-+ "0:\n"
-+ " [B0] CMPEQ .L2 B0,B7,B1\n"
-+ " || [!B0] MVK .S2 1,B1\n"
-+ " [!B1] BNOP .S1 0b,5\n"
-+ " ||[!B1] LDW .D2T2 *B2++[2],B0\n"
-+ " ||[!B1] LDW .D1T1 *A2++[2],A0\n"
-+ /*
-+ * DSBT base in A0 needs to be relocated.
-+ * Search through our loadmap to find where it got loaded.
-+ *
-+ * struct elf32_dsbt_loadmap {
-+ * Elf32_Half version;
-+ * Elf32_Half nsegs;
-+ * struct {
-+ * Elf32_Addr addr;
-+ * Elf32_Addr p_vaddr;
-+ * Elf32_Word p_memsz;
-+ * } segments[];
-+ * }
-+ *
-+ */
-+ " MV .S1 A6,A1\n"
-+ " [!A1] MV .S1X B4,A1\n"
-+ " ADD .D1 A1,2,A3\n"
-+ " LDHU .D1T2 *A3++[1],B0\n" /* nsegs */
-+ " LDW .D1T1 *A3++[1],A10\n" /* addr */
-+ " LDW .D1T1 *A3++[1],A11\n" /* p_vaddr */
-+ " LDW .D1T1 *A3++[1],A12\n" /* p_memsz */
-+ " NOP\n"
-+ " NOP\n"
-+ /*
-+ * Here we have:
-+ * B0 -> number of segments to search.
-+ * A3 -> pointer to next segment to check
-+ * A10 -> segment load address
-+ * A11 -> ELF segment virt address
-+ * A12 -> ELF segment size
-+ */
-+ "0:\n"
-+ " [!B0] B .S2 0f\n"
-+ " SUB .D2 B0,1,B0\n"
-+ " CMPLTU .L1 A0,A11,A13\n"
-+ " || SUB .S1 A12,1,A12\n"
-+ " ADD .D1 A11,A12,A12\n"
-+ " CMPGTU .L1 A0,A12,A14\n"
-+ " OR .L1 A13,A14,A2\n"
-+ " [A2] B .S2 0b\n"
-+ " || [!A2] SUB .L1 A0,A11,A0\n"
-+ " [B0] LDW .D1T1 *A3++[1],A10\n" /* addr */
-+ " || [!A2] ADD .L1 A0,A10,A0\n"
-+ " [B0] LDW .D1T1 *A3++[1],A11\n" /* p_vaddr */
-+ " [B0] LDW .D1T1 *A3++[1],A12\n" /* p_memsz */
-+ " MV .S2X A0,B14\n"
-+ " NOP\n"
-+ "0:\n"
- " B .S2 _dl_start\n"
- " STW .D2T2 B14, *+B14[1]\n"
- " ADD .D1X B15,8,A8\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/dl-sysdep.h uClibc-git/ldso/ldso/c6x/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/c6x/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/c6x/dl-sysdep.h 2014-07-25 20:36:05.301326802 +0200
-@@ -52,13 +52,13 @@
- struct funcdesc_ht;
- struct elf32_dsbt_loadaddr;
-
--/* We must force strings used early in the bootstrap into the text
-- segment (const data), such that they are referenced relative to
-- the DP register rather than through the GOT which will not have
-- been relocated when these are used. */
-+/* Current toolchains access constant strings via unrelocated GOT
-+ entries. Fortunately, we have enough in place to just call the
-+ relocation function early on. */
- #undef SEND_EARLY_STDERR
- #define SEND_EARLY_STDERR(S) \
-- do { static char __s[] = (S); SEND_STDERR (__s); } while (0)
-+ do { char *__p = __reloc_pointer((S), dl_boot_ldsomap?:dl_boot_progmap);\
-+ SEND_STDERR (__p); } while (0)
-
- #define DL_LOADADDR_TYPE struct elf32_dsbt_loadaddr
-
-@@ -114,7 +114,7 @@
- (__dl_loadaddr_unmap ((LIB)->loadaddr))
-
- #define DL_LOADADDR_BASE(LOADADDR) \
-- ((LOADADDR).map->dsbt_table)
-+ ((LOADADDR).map)
-
- #define DL_ADDR_IN_LOADADDR(ADDR, TPNT, TFROM) \
- (! (TFROM) && __dl_addr_in_loadaddr ((void*)(ADDR), (TPNT)->loadaddr))
-@@ -150,18 +150,28 @@
-
-
- /*
-- * Compute the GOT address.
-- * Also setup program and interpreter DSBT table entries.
-+ * C6X doesn't really need the GOT here.
-+ * The GOT is placed just past the DSBT table, so we could find it by
-+ * using the DSBT register + table size found in the dynamic section.
-+ *
-+ * do { \
-+ * unsigned long *ldso_dsbt; \
-+ * ElfW(Dyn) *d = dl_boot_ldso_dyn_pointer; \
-+ * while (d->d_tag != DT_NULL) { \
-+ * if (d->d_tag == DT_C6000_DSBT_SIZE) { \
-+ * __asm__ (" MV .S2 B14,%0\n" \
-+ * : "=b" (ldso_dsbt)); \
-+ * (GOT) = ldso_dsbt + d->d_un.d_val; \
-+ * break; \
-+ * } \
-+ * d++; \
-+ * } \
-+ * } while(0)
-+ *
-+ * Instead, just point it to the DSBT table to avoid unused variable warning.
- */
- #define DL_BOOT_COMPUTE_GOT(GOT) \
-- do { \
-- unsigned long *ldso_dsbt, *prog_dsbt; \
-- ldso_dsbt = dl_boot_ldsomap->dsbt_table; \
-- prog_dsbt = dl_boot_progmap->dsbt_table; \
-- ldso_dsbt[0] = prog_dsbt[0] = (unsigned long)prog_dsbt; \
-- ldso_dsbt[1] = prog_dsbt[1] = (unsigned long)ldso_dsbt; \
-- (GOT) = ldso_dsbt + dl_boot_ldsomap->dsbt_size; \
-- } while(0)
-+ __asm__ (" MV .S2 B14,%0\n" : "=b" (GOT))
-
- #define DL_BOOT_COMPUTE_DYN(dpnt, got, load_addr) \
- ((dpnt) = dl_boot_ldso_dyn_pointer)
-@@ -186,12 +196,9 @@
- # undef __USE_GNU
- #endif
-
--static __always_inline Elf32_Addr
--elf_machine_load_address (void)
--{
-- /* this is never an issue on DSBT systems */
-- return 0;
--}
-+/* we need this for __LDSO_STANDALONE_SUPPORT__ */
-+#define elf_machine_load_address() \
-+ (dl_boot_ldsomap ?: dl_boot_progmap)->segs[0].addr
-
- static __always_inline void
- elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
-diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/elfinterp.c uClibc-git/ldso/ldso/c6x/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/c6x/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/c6x/elfinterp.c 2014-07-25 20:36:05.301326802 +0200
-@@ -69,14 +69,12 @@
- got_addr = (char **) DL_RELOC_ADDR(tpnt->loadaddr, this_reloc->r_offset);
-
- /* Get the address to be used to fill in the GOT entry. */
-- new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt,
-- ELF_RTYPE_CLASS_PLT, NULL);
-+ new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
- if (unlikely(!new_addr)) {
- _dl_dprintf(2, "%s: can't resolve symbol '%s' in lib '%s'.\n", _dl_progname, symname, tpnt->libname);
- _dl_exit(1);
- }
-
--
- #if defined (__SUPPORT_LD_DEBUG__)
- if (_dl_debug_bindings) {
- _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
-@@ -96,9 +94,9 @@
- }
-
- static int
--_dl_parse(struct elf_resolve *tpnt, struct dyn_elf *scope,
-+_dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
- unsigned long rel_addr, unsigned long rel_size,
-- int (*reloc_fnc) (struct elf_resolve *tpnt, struct dyn_elf *scope,
-+ int (*reloc_fnc) (struct elf_resolve *tpnt, struct r_scope_elem *scope,
- ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab))
- {
- unsigned int i;
-@@ -148,7 +146,7 @@
- }
-
- static int
--_dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
-+_dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
- ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
- {
- int reloc_type;
-@@ -157,7 +155,9 @@
- unsigned long *reloc_addr;
- unsigned long symbol_addr, sym_val;
- long reloc_addend;
-- unsigned long old_val, new_val;
-+ unsigned long old_val, new_val = 0;
-+ struct symbol_ref sym_ref;
-+ struct elf_resolve *symbol_tpnt;
-
- reloc_addr = (unsigned long *)(intptr_t)
- DL_RELOC_ADDR (tpnt->loadaddr, rpnt->r_offset);
-@@ -167,14 +167,17 @@
- symtab_index = ELF_R_SYM(rpnt->r_info);
- symbol_addr = 0;
- symname = strtab + symtab[symtab_index].st_name;
-+ sym_ref.sym = &symtab[symtab_index];
-+ sym_ref.tpnt = NULL;
-
- if (ELF_ST_BIND (symtab[symtab_index].st_info) == STB_LOCAL) {
- symbol_addr = (unsigned long)
- DL_RELOC_ADDR (tpnt->loadaddr, symtab[symtab_index].st_value);
-+ symbol_tpnt = tpnt;
- } else {
-- symbol_addr = (unsigned long) _dl_find_hash(strtab + symtab[symtab_index].st_name,
-- scope, tpnt, elf_machine_type_class(reloc_type),
-- NULL);
-+ symbol_addr = (unsigned long) _dl_find_hash(symname,
-+ scope, NULL, elf_machine_type_class(reloc_type),
-+ &sym_ref);
- /*
- * We want to allow undefined references to weak symbols - this might
- * have been intentional. We should not be linking local symbols
-@@ -186,6 +189,7 @@
- _dl_progname, strtab + symtab[symtab_index].st_name);
- _dl_exit (1);
- }
-+ symbol_tpnt = sym_ref.tpnt;
- }
- old_val = *reloc_addr;
- sym_val = symbol_addr + reloc_addend;
-@@ -199,7 +203,7 @@
- *reloc_addr = sym_val;
- break;
- case R_C6000_DSBT_INDEX:
-- new_val = (old_val & ~0x007fff00) | ((tpnt->loadaddr.map->dsbt_index & 0x7fff) << 8);
-+ new_val = (old_val & ~0x007fff00) | ((symbol_tpnt->dsbt_index & 0x7fff) << 8);
- *reloc_addr = new_val;
- break;
- case R_C6000_ABS_L16:
-@@ -242,7 +246,7 @@
-
- static int
- _dl_do_lazy_reloc (struct elf_resolve *tpnt,
-- struct dyn_elf *scope attribute_unused,
-+ struct r_scope_elem *scope attribute_unused,
- ELF_RELOC *rpnt, ElfW(Sym) *symtab attribute_unused,
- char *strtab attribute_unused)
- {
-@@ -283,9 +287,9 @@
-
- int
- _dl_parse_relocation_information
--(struct dyn_elf *rpnt, unsigned long rel_addr, unsigned long rel_size)
-+(struct dyn_elf *rpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size)
- {
-- return _dl_parse(rpnt->dyn, rpnt->dyn->symbol_scope, rel_addr, rel_size, _dl_do_reloc);
-+ return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, _dl_do_reloc);
- }
-
- /* We don't have copy relocs. */
-diff -Nur uClibc-0.9.33.2/ldso/ldso/cris/dl-startup.h uClibc-git/ldso/ldso/cris/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/cris/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/cris/dl-startup.h 2014-07-25 20:36:05.321326908 +0200
-@@ -10,6 +10,7 @@
- " .text\n" \
- " .globl _start\n" \
- " .type _start,@function\n" \
-+" .hidden _start\n" \
- "_start:\n" \
- " move.d $sp,$r10\n" \
- " lapc _dl_start,$r9\n" \
-@@ -28,6 +29,7 @@
- " .text\n" \
- " .globl _start\n" \
- " .type _start,@function\n" \
-+" .hidden _start\n" \
- "_start:\n" \
- " move.d $sp,$r10\n" \
- " move.d $pc,$r9\n" \
-diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-elf.c uClibc-git/ldso/ldso/dl-elf.c
---- uClibc-0.9.33.2/ldso/ldso/dl-elf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/dl-elf.c 2014-07-25 20:36:05.321326908 +0200
-@@ -174,8 +174,11 @@
- _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
- _dl_strcat(mylibname, "/");
- _dl_strcat(mylibname, name);
-- if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
-- return tpnt;
-+#ifdef __LDSO_SAFE_RUNPATH__
-+ if (*mylibname == '/')
-+#endif
-+ if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
-+ return tpnt;
- path_n = path+1;
- }
- path++;
-@@ -500,7 +503,7 @@
- return NULL;
- }
- header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ | PROT_WRITE,
-- MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
-+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZED, -1, 0);
- if (_dl_mmap_check_error(header)) {
- _dl_dprintf(2, "%s:%i: can't map '%s'\n", _dl_progname, __LINE__, libname);
- _dl_internal_error_number = LD_ERROR_MMAP_FAILED;
-@@ -739,7 +742,7 @@
- }
- }
- #else
-- _dl_dprintf(_dl_debug_file, "Can't modify %s's text section."
-+ _dl_dprintf(2, "Can't modify %s's text section."
- " Use GCC option -fPIC for shared objects, please.\n",
- libname);
- _dl_exit(1);
-@@ -791,7 +794,7 @@
- #endif
- {
- # ifdef __SUPPORT_LD_DEBUG_EARLY__
-- unsigned int tmp = (unsigned int) tpnt->l_tls_initimage;
-+ char *tmp = (char *) tpnt->l_tls_initimage;
- tpnt->l_tls_initimage = (char *) tlsppnt->p_vaddr + tpnt->loadaddr;
- _dl_debug_early("Relocated TLS initial image from %x to %x (size = %x)\n", tmp, tpnt->l_tls_initimage, tpnt->l_tls_initimage_size);
- tmp = 0;
-@@ -851,10 +854,15 @@
- /* Handle DSBT initialization */
- {
- struct elf_resolve *t, *ref;
-- int idx = tpnt->loadaddr.map->dsbt_index;
-- unsigned *dsbt = tpnt->loadaddr.map->dsbt_table;
-+ int idx = tpnt->dsbt_index;
-+ void **dsbt = tpnt->dsbt_table;
-
-- if (idx == 0) {
-+ /*
-+ * It is okay (required actually) to have zero idx for an executable.
-+ * This is the case when running ldso standalone and the program
-+ * is being mapped in via _dl_load_shared_library().
-+ */
-+ if (idx == 0 && tpnt->libtype != elf_executable) {
- if (!dynamic_info[DT_TEXTREL]) {
- /* This DSO has not been assigned an index. */
- _dl_dprintf(2, "%s: '%s' is missing a dsbt index assignment!\n",
-@@ -869,9 +877,9 @@
- break;
- }
- }
-- idx = tpnt->loadaddr.map->dsbt_size;
-+ idx = tpnt->dsbt_size;
- while (idx-- > 0)
-- if (!ref || ref->loadaddr.map->dsbt_table[idx] == NULL)
-+ if (!ref || ref->dsbt_table[idx] == NULL)
- break;
- if (idx <= 0) {
- _dl_dprintf(2, "%s: '%s' caused DSBT table overflow!\n",
-@@ -880,43 +888,36 @@
- }
- _dl_if_debug_dprint("\n\tfile='%s'; assigned index %d\n",
- libname, idx);
-- tpnt->loadaddr.map->dsbt_index = idx;
-+ tpnt->dsbt_index = idx;
-+ }
-
-+ /* make sure index is not already used */
-+ if (_dl_ldso_dsbt[idx]) {
-+ struct elf_resolve *dup;
-+ const char *dup_name;
-+
-+ for (dup = _dl_loaded_modules; dup; dup = dup->next)
-+ if (dup != tpnt && dup->dsbt_index == idx)
-+ break;
-+ if (dup)
-+ dup_name = dup->libname;
-+ else if (idx == 1)
-+ dup_name = "runtime linker";
-+ else
-+ dup_name = "unknown library";
-+ _dl_dprintf(2, "%s: '%s' dsbt index %d already used by %s!\n",
-+ _dl_progname, libname, idx, dup_name);
-+ _dl_exit(1);
- }
-
- /*
- * Setup dsbt slot for this module in dsbt of all modules.
- */
-- ref = NULL;
-- for (t = _dl_loaded_modules; t; t = t->next) {
-- /* find a dsbt table from another module */
-- if (ref == NULL && t != tpnt) {
-- ref = t;
--
-- /* make sure index is not already used */
-- if (t->loadaddr.map->dsbt_table[idx]) {
-- struct elf_resolve *dup;
-- char *dup_name;
--
-- for (dup = _dl_loaded_modules; dup; dup = dup->next)
-- if (dup != tpnt && dup->loadaddr.map->dsbt_index == idx)
-- break;
-- if (dup)
-- dup_name = dup->libname;
-- else if (idx == 1)
-- dup_name = "runtime linker";
-- else
-- dup_name = "unknown library";
-- _dl_dprintf(2, "%s: '%s' dsbt index %d already used by %s!\n",
-- _dl_progname, libname, idx, dup_name);
-- _dl_exit(1);
-- }
-- }
-- t->loadaddr.map->dsbt_table[idx] = (unsigned)dsbt;
-- }
-- if (ref)
-- _dl_memcpy(dsbt, ref->loadaddr.map->dsbt_table,
-- tpnt->loadaddr.map->dsbt_size * sizeof(unsigned *));
-+ for (t = _dl_loaded_modules; t; t = t->next)
-+ t->dsbt_table[idx] = dsbt;
-+ _dl_ldso_dsbt[idx] = dsbt;
-+ _dl_memcpy(dsbt, _dl_ldso_dsbt,
-+ tpnt->dsbt_size * sizeof(tpnt->dsbt_table[0]));
- }
- #endif
- _dl_if_debug_dprint("\n\tfile='%s'; generating link map\n", libname);
-@@ -1006,6 +1007,7 @@
- return goof;
- }
-
-+#ifdef IS_IN_rtld
- /* Minimal printf which handles only %s, %d, and %x */
- void _dl_dprintf(int fd, const char *fmt, ...)
- {
-@@ -1071,7 +1073,7 @@
- break;
- }
- case 'x':
-- case 'X':
-+ case 'p':
- {
- char tmp[22];
- #if __WORDSIZE > 32
-@@ -1108,6 +1110,7 @@
- _dl_strcpy(retval, string);
- return retval;
- }
-+#endif
-
- unsigned int _dl_parse_dynamic_info(ElfW(Dyn) *dpnt, unsigned long dynamic_info[],
- void *debug_addr, DL_LOADADDR_TYPE load_off)
-diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-hash.c uClibc-git/ldso/ldso/dl-hash.c
---- uClibc-0.9.33.2/ldso/ldso/dl-hash.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/dl-hash.c 2014-07-25 20:36:05.321326908 +0200
-@@ -115,6 +115,15 @@
- tpnt->dynamic_addr = (ElfW(Dyn) *)dynamic_addr;
- tpnt->libtype = loaded_file;
-
-+#ifdef __DSBT__
-+ if (dynamic_info[DT_DSBT_BASE_IDX] != 0)
-+ tpnt->dsbt_table = (void *)dynamic_info[DT_DSBT_BASE_IDX];
-+ if (dynamic_info[DT_DSBT_SIZE_IDX] != 0)
-+ tpnt->dsbt_size = dynamic_info[DT_DSBT_SIZE_IDX];
-+ if (dynamic_info[DT_DSBT_INDEX_IDX] != 0)
-+ tpnt->dsbt_index = dynamic_info[DT_DSBT_INDEX_IDX];
-+#endif /* __DSBT__ */
-+
- #ifdef __LDSO_GNU_HASH_SUPPORT__
- if (dynamic_info[DT_GNU_HASH_IDX] != 0) {
- Elf32_Word *hash32 = (Elf_Symndx*)dynamic_info[DT_GNU_HASH_IDX];
-@@ -355,7 +364,6 @@
- #if defined(USE_TLS) && USE_TLS
- if (ELF_ST_TYPE(sym->st_info) == STT_TLS) {
- _dl_assert(sym_ref != NULL);
-- sym_ref->tpnt = tpnt;
- return (char *)sym->st_value;
- }
- #endif
-diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-tls.c uClibc-git/ldso/ldso/dl-tls.c
---- uClibc-0.9.33.2/ldso/ldso/dl-tls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/dl-tls.c 2014-07-25 20:36:05.325326929 +0200
-@@ -922,8 +922,7 @@
- generation. */
- ++_dl_tls_generation;
-
-- _dl_dprintf (_dl_debug_file,
-- "cannot create TLS data structures: ABORT\n");
-+ _dl_dprintf(2, "cannot create TLS data structures: ABORT\n");
- _dl_exit (127);
- }
-
-diff -Nur uClibc-0.9.33.2/ldso/ldso/i386/dl-startup.h uClibc-git/ldso/ldso/i386/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/i386/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/i386/dl-startup.h 2014-07-25 20:36:05.373327180 +0200
-@@ -7,6 +7,7 @@
- " .text\n"
- " .globl _start\n"
- " .type _start,@function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " call _dl_start\n"
- " # Save the user entry point address in %edi.\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/ldso.c uClibc-git/ldso/ldso/ldso.c
---- uClibc-0.9.33.2/ldso/ldso/ldso.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/ldso.c 2014-07-25 20:36:05.377327201 +0200
-@@ -64,7 +64,7 @@
- bool _dl_verbose = true; /* On by default */
- bool prelinked = false;
- #endif
--static int _dl_secure = 1; /* Are we dealing with setuid stuff? */
-+int _dl_secure = 1; /* Are we dealing with setuid stuff? */
-
- #ifdef __SUPPORT_LD_DEBUG__
- char *_dl_debug = NULL;
-@@ -77,17 +77,11 @@
- int _dl_debug_file = 2;
- #endif
-
--#if defined (__LDSO_STANDALONE_SUPPORT__) && defined (__sh__)
--/* Not hidden, needed for standalone execution. */
--/*
-- * FIXME: align dl_start for SH to other archs so that we can keep this symbol
-- * hidden and we don't need to handle in __uClibc_main
-- */
-+#ifdef __DSBT__
-+void **_dl_ldso_dsbt = NULL;
-+#endif
-
--unsigned long _dl_skip_args = 0;
--#else
- unsigned long attribute_hidden _dl_skip_args = 0;
--#endif
-
- const char *_dl_progname = UCLIBC_LDSO; /* The name of the executable being run */
- #include "dl-startup.c"
-@@ -245,9 +239,9 @@
-
- _dl_debug_early("mmapping more memory\n");
- _dl_mmap_zero = _dl_malloc_addr = _dl_mmap((void *) 0, rounded_size,
-- PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
-+ PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZED, -1, 0);
- if (_dl_mmap_check_error(_dl_mmap_zero)) {
-- _dl_dprintf(_dl_debug_file, "%s: mmap of a spare page failed!\n", _dl_progname);
-+ _dl_dprintf(2, "%s: mmap of a spare page failed!\n", _dl_progname);
- _dl_exit(20);
- }
- }
-@@ -464,9 +458,14 @@
- _dl_progname = argv[0];
- }
-
-+#ifdef __DSBT__
-+ _dl_ldso_dsbt = (void *)tpnt->dynamic_info[DT_DSBT_BASE_IDX];
-+ _dl_ldso_dsbt[tpnt->dynamic_info[DT_DSBT_INDEX_IDX]] = _dl_ldso_dsbt;
-+#endif
-+
- #ifndef __LDSO_STANDALONE_SUPPORT__
- if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
-- _dl_dprintf(_dl_debug_file, "Standalone execution is not enabled\n");
-+ _dl_dprintf(2, "Standalone execution is not enabled\n");
- _dl_exit(1);
- }
- #endif
-@@ -504,15 +503,15 @@
- const char *nextp;
- _dl_secure = 1;
-
-+#ifdef __LDSO_PRELOAD_ENV_SUPPORT__
-+ _dl_preload = _dl_getenv("LD_PRELOAD", envp);
-+#endif
- nextp = unsecure_envvars;
- do {
- _dl_unsetenv (nextp, envp);
- /* We could use rawmemchr but this need not be fast. */
- nextp = _dl_strchr(nextp, '\0') + 1;
- } while (*nextp != '\0');
--#ifdef __LDSO_PRELOAD_ENV_SUPPORT__
-- _dl_preload = NULL;
--#endif
- #ifdef __LDSO_LD_LIBRARY_PATH__
- _dl_library_path = NULL;
- #endif
-@@ -527,8 +526,8 @@
-
- #ifdef __LDSO_STANDALONE_SUPPORT__
- if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
-- unsigned int *aux_dat = (unsigned int *) argv;
-- int argc = aux_dat[-1];
-+ ElfW(Addr) *aux_dat = (ElfW(Addr) *) argv;
-+ int argc = (int) aux_dat[-1];
-
- tpnt->libname = argv[0];
- while (argc > 1)
-@@ -580,7 +579,7 @@
- */
- app_tpnt = _dl_load_elf_shared_library(_dl_secure, &rpnt, _dl_progname);
- if (!app_tpnt) {
-- _dl_dprintf(_dl_debug_file, "can't load '%s'\n", _dl_progname);
-+ _dl_dprintf(2, "can't load '%s'\n", _dl_progname);
- _dl_exit(16);
- }
- /*
-@@ -675,7 +674,7 @@
- }
- #else
- if (app_tpnt->dynamic_info[DT_TEXTREL]) {
-- _dl_dprintf(_dl_debug_file, "Can't modify application's text section; use the GCC option -fPIE for position-independent executables.\n");
-+ _dl_dprintf(2, "Can't modify application's text section; use the GCC option -fPIE for position-independent executables.\n");
- _dl_exit(1);
- }
- #endif
-@@ -698,6 +697,11 @@
- app_tpnt->mapaddr = app_mapaddr;
- app_tpnt->rtld_flags = unlazy | RTLD_GLOBAL;
- app_tpnt->usage_count++;
-+#ifdef __DSBT__
-+ _dl_ldso_dsbt[0] = app_tpnt->dsbt_table;
-+ _dl_memcpy(app_tpnt->dsbt_table, _dl_ldso_dsbt,
-+ app_tpnt->dsbt_size * sizeof(tpnt->dsbt_table[0]));
-+#endif
- lpnt = (unsigned long *) (app_tpnt->dynamic_info[DT_PLTGOT]);
- #ifdef ALLOW_ZERO_PLTGOT
- if (lpnt)
-@@ -733,7 +737,7 @@
- _dl_debug_early("Found TLS header for application program\n");
- break;
- #else
-- _dl_dprintf(_dl_debug_file, "Program uses unsupported TLS data!\n");
-+ _dl_dprintf(2, "Program uses unsupported TLS data!\n");
- _dl_exit(1);
- #endif
- }
-@@ -747,7 +751,8 @@
- * case the executable is actually an ET_DYN object.
- */
- if (app_tpnt->l_tls_initimage != NULL) {
-- unsigned int tmp = (unsigned int) app_tpnt->l_tls_initimage;
-+ char *tmp attribute_unused =
-+ (char *) app_tpnt->l_tls_initimage;
- app_tpnt->l_tls_initimage =
- (char *) app_tpnt->l_tls_initimage + app_tpnt->loadaddr;
- _dl_debug_early("Relocated TLS initial image from %x to %x (size = %x)\n",
-@@ -823,7 +828,7 @@
-
- #ifndef __LDSO_LDD_SUPPORT__
- if (trace_loaded_objects) {
-- _dl_dprintf(_dl_debug_file, "Use the ldd provided by uClibc\n");
-+ _dl_dprintf(2, "Use the ldd provided by uClibc\n");
- _dl_exit(1);
- }
- #endif
-@@ -879,8 +884,9 @@
- else
- #endif
- {
-- _dl_dprintf(_dl_debug_file, "%s: can't load " "library '%s'\n", _dl_progname, str);
-- _dl_exit(15);
-+ _dl_dprintf(2, "%s: library '%s' "
-+ "from LD_PRELOAD can't be preloaded: ignored.\n",
-+ _dl_progname, str);
- }
- } else {
- tpnt1->rtld_flags = unlazy | RTLD_GLOBAL;
-@@ -923,7 +929,7 @@
- }
-
- if ((fd = _dl_open(LDSO_PRELOAD, O_RDONLY, 0)) < 0) {
-- _dl_dprintf(_dl_debug_file, "%s: can't open file '%s'\n",
-+ _dl_dprintf(2, "%s: can't open file '%s'\n",
- _dl_progname, LDSO_PRELOAD);
- break;
- }
-@@ -932,7 +938,7 @@
- PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
- _dl_close(fd);
- if (preload == (caddr_t) -1) {
-- _dl_dprintf(_dl_debug_file, "%s:%i: can't map '%s'\n",
-+ _dl_dprintf(2, "%s:%i: can't map '%s'\n",
- _dl_progname, __LINE__, LDSO_PRELOAD);
- break;
- }
-@@ -971,7 +977,7 @@
- else
- # endif
- {
-- _dl_dprintf(_dl_debug_file, "%s: can't load library '%s'\n", _dl_progname, cp2);
-+ _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, cp2);
- _dl_exit(15);
- }
- } else {
-@@ -1032,7 +1038,7 @@
- } else
- #endif
- {
-- _dl_dprintf(_dl_debug_file, "%s: can't load library '%s'\n", _dl_progname, lpntstr);
-+ _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, lpntstr);
- _dl_exit(16);
- }
- }
-diff -Nur uClibc-0.9.33.2/ldso/ldso/m68k/dl-startup.h uClibc-git/ldso/ldso/m68k/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/m68k/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/m68k/dl-startup.h 2014-07-25 20:36:05.389327264 +0200
-@@ -19,6 +19,7 @@
- .text\n\
- .globl _start\n\
- .type _start,@function\n\
-+ .hidden _start\n\
- _start:\n\
- move.l %sp, -(%sp)\n\
- jbsr _dl_start\n\
-diff -Nur uClibc-0.9.33.2/ldso/ldso/m68k/elfinterp.c uClibc-git/ldso/ldso/m68k/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/m68k/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/m68k/elfinterp.c 2014-07-25 20:36:05.389327264 +0200
-@@ -241,8 +241,11 @@
- _dl_memcpy ((void *) reloc_addr,
- (void *) symbol_addr,
- sym_ref.sym->st_size);
-- } else
-+ }
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ else
- _dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
-+#endif
- break;
-
- default:
-diff -Nur uClibc-0.9.33.2/ldso/ldso/Makefile.in uClibc-git/ldso/ldso/Makefile.in
---- uClibc-0.9.33.2/ldso/ldso/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/Makefile.in 2014-07-25 20:36:05.225326404 +0200
-@@ -9,8 +9,10 @@
-
- CFLAGS-ldso := -DNOT_IN_libc -DIS_IN_rtld $(SSP_DISABLE_FLAGS)
-
-+ifneq ($(TARGET_ARCH),arc)
- # This stuff will not work with -fomit-frame-pointer
- CFLAGS-ldso += -fno-omit-frame-pointer
-+endif
-
- CFLAGS-ldso += -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) -I$(top_srcdir)ldso/include -I$(top_srcdir)ldso/ldso
- CFLAGS-ldso += -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\"
-@@ -36,7 +38,7 @@
- else
- LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
- endif
--LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,_start -Wl,-z,now -Wl,-Bsymbolic \
-+LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,$(SYMBOL_PREFIX)_start -Wl,-z,now -Wl,-Bsymbolic \
- -Wl,--export-dynamic $(CFLAG_-Wl--sort-common) -Wl,--discard-locals \
- $(CFLAG_-Wl--discard-all) -Wl,--no-undefined
-
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-debug.h uClibc-git/ldso/ldso/metag/dl-debug.h
---- uClibc-0.9.33.2/ldso/ldso/metag/dl-debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/dl-debug.h 2014-07-25 20:36:05.397327305 +0200
-@@ -0,0 +1,33 @@
-+/*
-+ * Meta ELF shared library loader support.
-+ *
-+ * Program to load an elf binary on a linux system, and run it.
-+ * References to symbols in sharable libraries can be resolved
-+ * by either an ELF sharable library or a linux style of shared
-+ * library.
-+ *
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+static const char *_dl_reltypes_tab[] = {
-+ [0] "R_METAG_HIADDR16", "R_METAG_LOADDR16", "R_METAG_ADDR32",
-+ [3] "R_METAG_NONE", "R_METAG_RELBRANCH", "R_METAG_GETSETOFF",
-+ [6] "R_METAG_REG32OP1", "R_METAG_REG32OP2", "R_METAG_REG32OP3",
-+ [9] "R_METAG_REG16OP1", "R_METAG_REG16OP2", "R_METAG_REG16OP3",
-+ [12] "R_METAG_REG32OP4", "R_METAG_HIOG", "R_METAG_LOOG",
-+ [30] "R_METAG_GNU_VTINHERIT", "R_METAG_GNU_VTENTRY",
-+ [32] "R_METAG_HI16_GOTOFF", "R_METAG_LO16_GOTOFF",
-+ [34] "R_METAG_GETSET_GOTOFF", "R_METAG_GETSET_GOT",
-+ [36] "R_METAG_HI16_GOTPC", "R_METAG_LO16_GOTPC",
-+ [38] "R_METAG_HI16_PLT", "R_METAG_LO16_PLT",
-+ [40] "R_METAG_RELBRANCH_PLT", "R_METAG_GOTOFF",
-+ [42] "R_METAG_PLT", "R_METAG_COPY", "R_METAG_JMP_SLOT",
-+ [45] "R_METAG_RELATIVE", "R_METAG_GLOB_DAT", "R_METAG_TLS_GD",
-+ [48] "R_METAG_TLS_LDM", "R_METAG_TLS_LDO_HI16", "R_METAG_TLS_LDO_LO16",
-+ [51] "R_METAG_TLS_LDO", "R_METAG_TLS_IE", "R_METAG_TLS_IENONPIC",
-+ [54] "R_METAG_TLS_IENONPIC_HI16", "R_METAG_TLS_IENONPIC_LO16",
-+ [56] "R_METAG_TLS_TPOFF", "R_METAG_TLS_DTPMOD", "R_METAG_TLS_DTPOFF",
-+ [59] "R_METAG_TLS_LE", "R_METAG_TLS_LE_HI16", "R_METAG_TLS_LE_LO16"
-+};
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-inlines.h uClibc-git/ldso/ldso/metag/dl-inlines.h
---- uClibc-0.9.33.2/ldso/ldso/metag/dl-inlines.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/dl-inlines.h 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,39 @@
-+/*
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+static __always_inline int
-+__dl_is_special_segment (Elf32_Ehdr *epnt,
-+ Elf32_Phdr *ppnt)
-+{
-+ if (ppnt->p_type != PT_LOAD &&
-+ ppnt->p_type != PT_DYNAMIC)
-+ return 0;
-+
-+ if (ppnt->p_vaddr >= 0x80000000 &&
-+ ppnt->p_vaddr < 0x82060000)
-+ return 1;
-+
-+ if (ppnt->p_vaddr >= 0xe0200000 &&
-+ ppnt->p_vaddr < 0xe0260000)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+static __always_inline char *
-+__dl_map_segment (Elf32_Ehdr *epnt,
-+ Elf32_Phdr *ppnt,
-+ int infile,
-+ int flags)
-+{
-+ char *addr = (char *)ppnt->p_vaddr;
-+
-+ if (_DL_PREAD (infile, addr, ppnt->p_filesz, ppnt->p_offset) != ppnt->p_filesz) {
-+ return 0;
-+ }
-+
-+ return addr;
-+}
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-startup.h uClibc-git/ldso/ldso/metag/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/metag/dl-startup.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/dl-startup.h 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,68 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/*
-+ * This code fixes the stack pointer so that the dynamic linker
-+ * can find argc, argv and auxvt (Auxillary Vector Table).
-+ */
-+
-+__asm__ (
-+" .text\n"
-+" .global __start\n"
-+" .type __start,@function\n"
-+" .hidden __start\n"
-+"_start:\n"
-+"__start:\n"
-+" MSETL [A0StP++],D0Ar4,D0Ar2\n"
-+" MOV D1Ar1,D0Ar2\n"
-+" CALLR D1RtP,__dl_start\n"
-+" GETL D0Ar2,D1Ar1,[A0StP+#-(1*8)]\n"
-+" GETL D0Ar4,D1Ar3,[A0StP+#-(2*8)]\n"
-+" ADDT A1LbP,CPC1,#HI(__GLOBAL_OFFSET_TABLE__)\n"
-+" ADD A1LbP,A1LbP,#LO(__GLOBAL_OFFSET_TABLE__+4)\n"
-+" ADDT A1LbP,A1LbP,#HI(__dl_fini@GOTOFF)\n"
-+" ADD A1LbP,A1LbP,#LO(__dl_fini@GOTOFF)\n"
-+" MOV D0Ar4, A1LbP\n"
-+" SUB A0StP,A0StP,#(2*8)\n"
-+" MOV PC,D0Re0\n"
-+" .size __start,.-__start\n"
-+" .previous\n"
-+);
-+
-+
-+/*
-+ * Get a pointer to the argv array. On many platforms this can be just
-+ * the address if the first argument, on other platforms we need to
-+ * do something a little more subtle here.
-+ */
-+
-+#define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long *) ARGS))
-+
-+
-+/* Handle relocation of the symbols in the dynamic loader. */
-+static inline
-+void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr,
-+ unsigned long symbol_addr, unsigned long load_addr, Elf32_Sym *symtab)
-+{
-+ switch (ELF32_R_TYPE(rpnt->r_info)) {
-+ case R_METAG_GLOB_DAT:
-+ case R_METAG_JMP_SLOT:
-+ case R_METAG_ADDR32:
-+ *reloc_addr = symbol_addr;
-+ break;
-+ case R_METAG_RELATIVE:
-+ *reloc_addr = load_addr + rpnt->r_addend;
-+ break;
-+ case R_METAG_RELBRANCH:
-+ *reloc_addr = symbol_addr + rpnt->r_addend - *reloc_addr - 4;
-+ break;
-+ case R_METAG_NONE:
-+ break;
-+ default:
-+ _dl_exit(1);
-+ break;
-+ }
-+}
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-syscalls.h uClibc-git/ldso/ldso/metag/dl-syscalls.h
---- uClibc-0.9.33.2/ldso/ldso/metag/dl-syscalls.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/dl-syscalls.h 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,6 @@
-+/* stub for arch-specific syscall issues
-+ *
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-sysdep.h uClibc-git/ldso/ldso/metag/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/metag/dl-sysdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/dl-sysdep.h 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,121 @@
-+/*
-+ * Meta can never use Elf32_Rel relocations.
-+ *
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define ELF_USES_RELOCA
-+
-+#include <elf.h>
-+
-+/* Initialization sequence for the GOT. */
-+#define INIT_GOT(GOT_BASE,MODULE) \
-+{ \
-+ GOT_BASE[1] = (unsigned long) MODULE; \
-+ GOT_BASE[2] = (unsigned long) _dl_linux_resolve; \
-+}
-+
-+/* Maximum unsigned GOT [GS]ETD offset size, ie. 2^(11+2). */
-+#define GOT_REG_OFFSET 0x2000
-+
-+/* Defined some magic numbers that this ld.so should accept. */
-+#define MAGIC1 EM_METAG
-+#undef MAGIC2
-+#define ELF_TARGET "META"
-+
-+/* Need bootstrap relocations */
-+#define ARCH_NEEDS_BOOTSTRAP_RELOCS
-+
-+struct elf_resolve;
-+extern unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry);
-+
-+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
-+ TLS variable, so undefined references should not be allowed to
-+ define the value.
-+
-+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
-+ of the main executable's symbols, as for a COPY reloc. */
-+#define elf_machine_type_class(type) \
-+ ((((type) == R_METAG_JMP_SLOT || (type) == R_METAG_TLS_DTPMOD \
-+ || (type) == R_METAG_TLS_DTPOFF || (type) == R_METAG_TLS_TPOFF) \
-+ * ELF_RTYPE_CLASS_PLT) \
-+ | (((type) == R_METAG_COPY) * ELF_RTYPE_CLASS_COPY))
-+
-+static inline Elf32_Addr
-+elf_machine_dynamic(Elf32_Ehdr *header)
-+{
-+ Elf32_Addr *got;
-+
-+ __asm__ ("MOV %0,A1LbP" : "=r" (got));
-+
-+ if (header->e_ident[EI_ABIVERSION] >= 1) {
-+ /* GOT register offset was introduced with ABI v1 */
-+ got = (Elf32_Addr*)((void*)got - GOT_REG_OFFSET);
-+ }
-+ return *got;
-+}
-+
-+#define DL_BOOT_COMPUTE_GOT(GOT) \
-+ ((GOT) = elf_machine_dynamic(header))
-+
-+static inline Elf32_Addr
-+elf_machine_load_address(void)
-+{
-+ Elf32_Addr addr;
-+ __asm__ ("MOV D1Ar1,A1LbP\n"
-+ "ADDT D1Ar1,D1Ar1,#HI(__dl_start@GOTOFF)\n"
-+ "ADD D1Ar1,D1Ar1,#LO(__dl_start@GOTOFF)\n"
-+ "ADDT D0Ar2,D0Ar2,#HI(__dl_start_addr@GOTOFF)\n"
-+ "ADD D0Ar2,D0Ar2,#LO(__dl_start_addr@GOTOFF)\n"
-+ "GETD D0Ar2,[D0Ar2]\n"
-+ "SUB %0,D1Ar1,D0Ar2\n"
-+ ".section .data\n"
-+ "__dl_start_addr: .long __dl_start\n"
-+ ".previous\n"
-+ : "=d" (addr) : : "D1Ar1", "D0Ar2");
-+ return addr;
-+}
-+
-+static inline void
-+elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
-+ Elf32_Word relative_count)
-+{
-+ Elf32_Rela *rpnt = (void *)rel_addr;
-+
-+ --rpnt;
-+ do {
-+ Elf32_Addr *const reloc_addr =
-+ (void *)(load_off + (++rpnt)->r_offset);
-+
-+ *reloc_addr = load_off + rpnt->r_addend;
-+ } while (--relative_count);
-+}
-+
-+#define DL_MALLOC_ALIGN 8
-+
-+#define HAVE_DL_INLINES_H
-+
-+#define DL_IS_SPECIAL_SEGMENT(EPNT, PPNT) \
-+ __dl_is_special_segment(EPNT, PPNT)
-+#define DL_MAP_SEGMENT(EPNT, PPNT, INFILE, FLAGS) \
-+ __dl_map_segment (EPNT, PPNT, INFILE, FLAGS)
-+
-+#define DL_CHECK_LIB_TYPE(epnt, piclib, _dl_progname, libname) \
-+do \
-+{ \
-+ ElfW(Phdr) *ppnt_; \
-+ char *header_ = (char *)epnt; \
-+ ppnt_ = (ElfW(Phdr) *)(intptr_t) & header_[epnt->e_phoff]; \
-+ if (ppnt_->p_vaddr >= 0x80000000 && \
-+ ppnt_->p_vaddr < 0x82060000) \
-+ (piclib) = 2; \
-+ if (ppnt_->p_vaddr >= 0xe0200000 && \
-+ ppnt_->p_vaddr < 0xe0260000) \
-+ (piclib) = 2; \
-+} \
-+while (0)
-+
-+#define _DL_PREAD(FD, BUF, SIZE, OFFSET) \
-+ (_dl_pread((FD), (BUF), (SIZE), (OFFSET)))
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/elfinterp.c uClibc-git/ldso/ldso/metag/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/metag/elfinterp.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/elfinterp.c 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,318 @@
-+/*
-+ * Meta ELF shared library loader support.
-+ *
-+ * Program to load an elf binary on a linux system, and run it.
-+ * References to symbols in sharable libraries can be resolved
-+ * by either an ELF sharable library or a linux style of shared
-+ * library.
-+ *
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include "ldso.h"
-+
-+/* Defined in resolve.S. */
-+extern int _dl_linux_resolve(void);
-+
-+static inline unsigned long __get_unaligned_reloc(unsigned long *addr)
-+{
-+ char *rel_addr = (char *)addr;
-+ unsigned long val;
-+
-+ val = *rel_addr++ & 0xff;
-+ val |= (*rel_addr++ << 8) & 0x0000ff00;
-+ val |= (*rel_addr++ << 16) & 0x00ff0000;
-+ val |= (*rel_addr++ << 24) & 0xff000000;
-+
-+ return val;
-+}
-+
-+static inline void __put_unaligned_reloc(unsigned long *addr,
-+ unsigned long val)
-+{
-+ char *rel_addr = (char *)addr;
-+
-+ *rel_addr++ = (val & 0x000000ff);
-+ *rel_addr++ = ((val & 0x0000ff00) >> 8);
-+ *rel_addr++ = ((val & 0x00ff0000) >> 16);
-+ *rel_addr++ = ((val & 0xff000000) >> 24);
-+}
-+
-+unsigned long
-+_dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
-+{
-+ int symtab_index;
-+ char *strtab;
-+ char *symname;
-+ char *new_addr;
-+ char *rel_addr;
-+ char **got_addr;
-+ ElfW(Sym) *symtab;
-+ ELF_RELOC *this_reloc;
-+ unsigned long instr_addr;
-+
-+ rel_addr = (char *)tpnt->dynamic_info[DT_JMPREL];
-+
-+ this_reloc = (ELF_RELOC *)(intptr_t)(rel_addr + reloc_entry);
-+ symtab_index = ELF_R_SYM(this_reloc->r_info);
-+
-+ symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
-+ strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
-+ symname = strtab + symtab[symtab_index].st_name;
-+
-+ /* Address of the jump instruction to fix up. */
-+ instr_addr = ((unsigned long)this_reloc->r_offset +
-+ (unsigned long)tpnt->loadaddr);
-+ got_addr = (char **)instr_addr;
-+
-+ /* Get the address of the GOT entry. */
-+ new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt,
-+ ELF_RTYPE_CLASS_PLT, NULL);
-+ if (unlikely(!new_addr)) {
-+ _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n",
-+ _dl_progname, symname);
-+ _dl_exit(1);
-+ }
-+
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ if (_dl_debug_bindings) {
-+ _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
-+ if (_dl_debug_detail)
-+ _dl_dprintf(_dl_debug_file,
-+ "\n\tpatched: %x ==> %x @ %x\n",
-+ *got_addr, new_addr, got_addr);
-+ }
-+ if (!_dl_debug_nofixups) {
-+ *got_addr = new_addr;
-+ }
-+#else
-+ *got_addr = new_addr;
-+#endif
-+
-+ return (unsigned long)new_addr;
-+}
-+
-+static int
-+_dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ unsigned long rel_addr, unsigned long rel_size,
-+ int (*reloc_fnc)(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab))
-+{
-+ int symtab_index;
-+ unsigned int i;
-+ char *strtab;
-+ ElfW(Sym) *symtab;
-+ ELF_RELOC *rpnt;
-+
-+ /* Parse the relocation information. */
-+ rpnt = (ELF_RELOC *)(intptr_t)rel_addr;
-+ rel_size /= sizeof(ELF_RELOC);
-+
-+ symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
-+ strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
-+
-+ for (i = 0; i < rel_size; i++, rpnt++) {
-+ int res;
-+
-+ symtab_index = ELF_R_SYM(rpnt->r_info);
-+
-+ debug_sym(symtab, strtab, symtab_index);
-+ debug_reloc(symtab, strtab, rpnt);
-+
-+ /* Pass over to actual relocation function. */
-+ res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);
-+
-+ if (res == 0)
-+ continue;
-+
-+ _dl_dprintf(2, "\n%s: ", _dl_progname);
-+
-+ if (symtab_index)
-+ _dl_dprintf(2, "symbol '%s': ",
-+ strtab + symtab[symtab_index].st_name);
-+
-+ if (unlikely(res < 0)) {
-+ int reloc_type = ELF_R_TYPE(rpnt->r_info);
-+
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ _dl_dprintf(2, "can't handle reloc type %s\n",
-+ _dl_reltypes(reloc_type));
-+#else
-+ _dl_dprintf(2, "can't handle reloc type %x\n",
-+ reloc_type);
-+#endif
-+ _dl_exit(-res);
-+ } else if (unlikely(res > 0)) {
-+ _dl_dprintf(2, "can't resolve symbol\n");
-+ return res;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+_dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
-+{
-+ int reloc_type;
-+ int symtab_index;
-+ char *symname = NULL;
-+ unsigned long *reloc_addr;
-+ unsigned long symbol_addr;
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ unsigned long old_val = 0;
-+#endif
-+ struct elf_resolve *tls_tpnt = NULL;
-+ struct symbol_ref sym_ref;
-+
-+ reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
-+ reloc_type = ELF_R_TYPE(rpnt->r_info);
-+ symtab_index = ELF_R_SYM(rpnt->r_info);
-+ symbol_addr = 0;
-+ sym_ref.sym = &symtab[symtab_index];
-+ sym_ref.tpnt = NULL;
-+
-+ if (symtab_index) {
-+ symname = strtab + symtab[symtab_index].st_name;
-+ symbol_addr = (unsigned long)_dl_find_hash(symname, scope, tpnt,
-+ elf_machine_type_class(reloc_type), &sym_ref);
-+
-+ if (!symbol_addr
-+ && ELF_ST_TYPE(symtab[symtab_index].st_info) != STT_TLS
-+ && ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK) {
-+ _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
-+ _dl_progname, symname);
-+ return 1;
-+ };
-+ if (_dl_trace_prelink) {
-+ _dl_debug_lookup(symname, tpnt, &symtab[symtab_index],
-+ &sym_ref, elf_machine_type_class(reloc_type));
-+ }
-+ tls_tpnt = sym_ref.tpnt;
-+ }
-+
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ if (reloc_type != R_METAG_NONE)
-+ old_val = __get_unaligned_reloc(reloc_addr);
-+#endif
-+
-+#if defined USE_TLS && USE_TLS
-+ /* In case of a TLS reloc, tls_tpnt NULL means we have an 'anonymous'
-+ symbol. This is the case for a static tls variable, so the lookup
-+ module is just that one is referencing the tls variable. */
-+ if (!tls_tpnt)
-+ tls_tpnt = tpnt;
-+#endif
-+ switch (reloc_type) {
-+ case R_METAG_NONE:
-+ break;
-+ case R_METAG_GLOB_DAT:
-+ case R_METAG_JMP_SLOT:
-+ case R_METAG_ADDR32:
-+ __put_unaligned_reloc(reloc_addr,
-+ symbol_addr + rpnt->r_addend);
-+ break;
-+ case R_METAG_COPY:
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ if (_dl_debug_move)
-+ _dl_dprintf(_dl_debug_file,
-+ "\t%s move %d bytes from %x to %x\n",
-+ symname, symtab[symtab_index].st_size,
-+ symbol_addr + rpnt->r_addend,
-+ reloc_addr);
-+#endif
-+
-+ _dl_memcpy((char *)reloc_addr,
-+ (char *)symbol_addr + rpnt->r_addend,
-+ symtab[symtab_index].st_size);
-+ break;
-+ case R_METAG_RELATIVE:
-+ __put_unaligned_reloc(reloc_addr,
-+ (unsigned long)tpnt->loadaddr +
-+ rpnt->r_addend);
-+ break;
-+#if defined USE_TLS && USE_TLS
-+ case R_METAG_TLS_DTPMOD:
-+ *reloc_addr = tls_tpnt->l_tls_modid;
-+ break;
-+ case R_METAG_TLS_DTPOFF:
-+ *reloc_addr = symbol_addr;
-+ break;
-+ case R_METAG_TLS_TPOFF:
-+ CHECK_STATIC_TLS ((struct link_map *) tls_tpnt);
-+ *reloc_addr = tls_tpnt->l_tls_offset + symbol_addr + rpnt->r_addend;
-+ break;
-+#endif
-+ default:
-+ return -1; /* Calls _dl_exit(1). */
-+ }
-+
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ if (_dl_debug_reloc && _dl_debug_detail && reloc_type != R_METAG_NONE) {
-+ unsigned long new_val = __get_unaligned_reloc(reloc_addr);
-+ _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
-+ old_val, new_val, reloc_addr);
-+ }
-+#endif
-+
-+ return 0;
-+}
-+
-+static int
-+_dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
-+ ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
-+{
-+ int reloc_type;
-+ unsigned long *reloc_addr;
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ unsigned long old_val;
-+#endif
-+
-+ reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
-+ reloc_type = ELF_R_TYPE(rpnt->r_info);
-+
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ old_val = *reloc_addr;
-+#endif
-+
-+ switch (reloc_type) {
-+ case R_METAG_NONE:
-+ break;
-+ case R_METAG_JMP_SLOT:
-+ *reloc_addr += (unsigned long)tpnt->loadaddr;
-+ break;
-+ default:
-+ return -1; /* Calls _dl_exit(1). */
-+ }
-+
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ if (_dl_debug_reloc && _dl_debug_detail)
-+ _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
-+ old_val, *reloc_addr, reloc_addr);
-+#endif
-+
-+ return 0;
-+}
-+
-+/* External interface to the generic part of the dynamic linker. */
-+
-+void
-+_dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
-+ unsigned long rel_addr,
-+ unsigned long rel_size)
-+{
-+ _dl_parse(rpnt->dyn, NULL, rel_addr, rel_size, _dl_do_lazy_reloc);
-+}
-+
-+int
-+_dl_parse_relocation_information(struct dyn_elf *rpnt,
-+ struct r_scope_elem *scope,
-+ unsigned long rel_addr,
-+ unsigned long rel_size)
-+{
-+ return _dl_parse(rpnt->dyn, scope, rel_addr,
-+ rel_size, _dl_do_reloc);
-+}
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/metag_load_tp.S uClibc-git/ldso/ldso/metag/metag_load_tp.S
---- uClibc-0.9.33.2/ldso/ldso/metag/metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/metag_load_tp.S 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,20 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+#include <features.h>
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+
-+#include <sysdep.h>
-+
-+ .text
-+ .global ___metag_load_tp
-+ .type ___metag_load_tp,@function
-+
-+___metag_load_tp:
-+ MOVT D1Ar1,#HI(0x6ffff000)
-+ JUMP D1Ar1,#LO(0x6ffff000)
-+ .size ___metag_load_tp,.-___metag_load_tp
-+
-+#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
-diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/resolve.S uClibc-git/ldso/ldso/metag/resolve.S
---- uClibc-0.9.33.2/ldso/ldso/metag/resolve.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/ldso/ldso/metag/resolve.S 2014-07-25 20:36:05.421327432 +0200
-@@ -0,0 +1,51 @@
-+/*
-+ * Meta dynamic resolver
-+ *
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ * This function is _not_ called directly. It is jumped to (so no return
-+ * address is on the stack) when attempting to use a symbol that has not yet
-+ * been resolved. The first time a jump symbol (such as a function call inside
-+ * a shared library) is used (before it gets resolved) it will jump here to
-+ * _dl_linux_resolve. When we get called the stack looks like this:
-+ * reloc_entry
-+ * tpnt
-+ *
-+ * This function saves all the registers then makes the function call
-+ * _dl_linux_resolver(tpnt, reloc_entry). _dl_linux_resolver() figures out
-+ * where the jump symbol is _really_ supposed to have jumped to and returns
-+ * that to us. Once we have that, we overwrite tpnt with this fixed up
-+ * address. We then clean up after ourselves, put all the registers back how we
-+ * found them, then we jump to the fixed up address, which is where the jump
-+ * symbol that got us here really wanted to jump to in the first place.
-+ * -Erik Andersen
-+ */
-+
-+ .text
-+ .global __dl_linux_resolve
-+ .type __dl_linux_resolve,@function
-+
-+__dl_linux_resolve:
-+ !! Save registers on the stack. Do we need to save any more here?
-+ MSETL [A0StP++],D0Ar6,D0Ar4,D0Ar2,D0FrT
-+ SETL [A0StP++],A0FrP,A1LbP
-+ !! Get the args for _dl_linux_resolver off the stack
-+ GETL D0Re0,D1Re0,[A0StP+#-(6*8)]
-+ GETD D1Ar1,[D0Re0]
-+ MOV D0Ar2,D1Re0
-+ !! Multiply plt_index by sizeof(Elf32_Rela)
-+ MULW D0Ar2,D0Ar2,#12
-+ !! Call the resolver
-+ CALLR D1RtP,__dl_linux_resolver
-+ !! Restore the registers from the stack
-+ SUB A0.2,A0StP,#(1*8)
-+ GETL A0FrP,A1LbP,[A0.2]
-+ SUB A0.2,A0.2,#(4*8)
-+ MGETL D0Ar6,D0Ar4,D0Ar2,D0FrT,[A0.2]
-+ !! Also take into account args pushed by PLT
-+ SUB A0StP,A0StP,#(6*8)
-+ !! Jump to the resolved address
-+ MOV PC,D0Re0
-+ .size __dl_linux_resolve, .-__dl_linux_resolve
-diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/dl-startup.h uClibc-git/ldso/ldso/microblaze/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/microblaze/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/microblaze/dl-startup.h 2014-07-25 20:36:05.429327473 +0200
-@@ -12,14 +12,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- __asm__ ("\
- .text\n\
- .globl _start\n\
- .type _start,@function\n\
-+ .hidden _start\n\
- _start:\n\
- addk r5,r0,r1\n\
- addk r3,r0,r0\n\
-diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/dl-sysdep.h uClibc-git/ldso/ldso/microblaze/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/microblaze/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/microblaze/dl-sysdep.h 2014-07-25 20:36:05.429327473 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Use reloca */
- #define ELF_USES_RELOCA
-diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/resolve.S uClibc-git/ldso/ldso/microblaze/resolve.S
---- uClibc-0.9.33.2/ldso/ldso/microblaze/resolve.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/microblaze/resolve.S 2014-07-25 20:36:05.429327473 +0200
-@@ -18,9 +18,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .text
- .align 4
-diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/dl-debug.h uClibc-git/ldso/ldso/mips/dl-debug.h
---- uClibc-0.9.33.2/ldso/ldso/mips/dl-debug.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/mips/dl-debug.h 2014-07-25 20:36:05.441327536 +0200
-@@ -40,6 +40,15 @@
- [25] "R_MIPS_INSERT_A", "R_MIPS_INSERT_B", "R_MIPS_DELETE",
- [28] "R_MIPS_HIGHER", "R_MIPS_HIGHEST", "R_MIPS_CALL_HI16",
- [31] "R_MIPS_CALL_LO16", "R_MIPS_SCN_DISP", "R_MIPS_REL16",
-- [34] "R_MIPS_ADD_IMMEDIATE", "R_MIPS_PJUMP", "R_MIPS_RELGOT",
-- [37] "R_MIPS_JALR",
-+ [34] "R_MIPS_ADD_IMMEDIATE", "R_MIPS_PJUMP", "R_MIPS_RELGOT",
-+ [37] "R_MIPS_JALR", "R_MIPS_TLS_DTPMOD32", "R_MIPS_TLS_DTPREL32",
-+ [40] "R_MIPS_TLS_DTPMOD64", "R_MIPS_TLS_DTPREL64", "R_MIPS_TLS_GD",
-+ [43] "R_MIPS_TLS_LDM", "R_MIPS_TLS_DTPREL_HI16",
-+ [45] "R_MIPS_TLS_DTPREL_LO16",
-+ [46] "R_MIPS_TLS_GOTTPREL", "R_MIPS_TLS_TPREL32", "R_MIPS_TLS_TPREL64",
-+ [49] "R_MIPS_TLS_TPREL_HI16",
-+ [50] "R_MIPS_TLS_TPREL_LO16",
-+ [51] "R_MIPS_GLOB_DAT",
-+ [126] "R_MIPS_COPY", "R_MIPS_JUMP_SLOT",
-+
- };
-diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/dl-startup.h uClibc-git/ldso/ldso/mips/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/mips/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/mips/dl-startup.h 2014-07-25 20:36:05.441327536 +0200
-@@ -12,6 +12,7 @@
- " .globl _start\n"
- " .ent _start\n"
- " .type _start,@function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " .set noreorder\n"
- " move $25, $31\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/elfinterp.c uClibc-git/ldso/ldso/mips/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/mips/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/mips/elfinterp.c 2014-07-25 20:36:05.441327536 +0200
-@@ -240,31 +240,19 @@
- case R_MIPS_TLS_DTPMOD32:
- if (tls_tpnt)
- *(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid;
--#ifdef __SUPPORT_LD_DEBUG__
-- _dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n",
-- symname, old_val, *((unsigned int *)reloc_addr));
--#endif
- break;
-
- case R_MIPS_TLS_DTPREL64:
- case R_MIPS_TLS_DTPREL32:
- *(ElfW(Word) *)reloc_addr +=
- TLS_DTPREL_VALUE (symbol_addr);
--#ifdef __SUPPORT_LD_DEBUG__
-- _dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n",
-- symname, old_val, *((unsigned int *)reloc_addr));
--#endif
- break;
-
- case R_MIPS_TLS_TPREL32:
- case R_MIPS_TLS_TPREL64:
- CHECK_STATIC_TLS((struct link_map *)tls_tpnt);
-- *(ElfW(Word) *)reloc_addr +=
-+ *(ElfW(Addr) *)reloc_addr +=
- TLS_TPREL_VALUE (tls_tpnt, symbol_addr);
--#ifdef __SUPPORT_LD_DEBUG__
-- _dl_dprintf(2, "TLS_TPREL : %s, %x, %x\n",
-- symname, old_val, *((unsigned int *)reloc_addr));
--#endif
- break;
- }
-
-@@ -325,11 +313,11 @@
- _dl_exit(1);
- }
- }
-- }
- #if defined (__SUPPORT_LD_DEBUG__)
-- if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
-- _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
-+ if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
-+ _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
- #endif
-+ }
-
- return 0;
- }
-diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/README uClibc-git/ldso/ldso/mips/README
---- uClibc-0.9.33.2/ldso/ldso/mips/README 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/mips/README 2014-07-25 20:36:05.441327536 +0200
-@@ -13,7 +13,7 @@
- elfinterp.c
- -----------
- Contains the runtime resolver code taken from the function
--'__dl_runtime_resolve' in 'sysdeps/mips/dl-machine.h'. Also
-+'__dl_runtime_resolve' in 'sysdeps/mips/dl-trampoline.h'. Also
- contains the function to perform relocations for objects
- other than the linker itself. The code was taken from the
- function 'elf_machine_rel' in 'sysdeps/mips/dl-machine.h'.
-@@ -47,6 +47,6 @@
- ---------
- Contains the low-level assembly code for the dynamic runtime
- resolver. The code is taken from the assembly code function
--'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-machine.h'.
-+'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-trampoline.h'.
- The code looks a bit different since we only need to pass the
- symbol index and the old GP register.
-diff -Nur uClibc-0.9.33.2/ldso/ldso/powerpc/dl-startup.h uClibc-git/ldso/ldso/powerpc/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/powerpc/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/powerpc/dl-startup.h 2014-07-25 20:36:05.453327599 +0200
-@@ -8,6 +8,7 @@
- " .text\n"
- " .globl _start\n"
- " .type _start,@function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " mr 3,1\n" /* Pass SP to _dl_start in r3 */
- " li 0,0\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/powerpc/elfinterp.c uClibc-git/ldso/ldso/powerpc/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/powerpc/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/powerpc/elfinterp.c 2014-07-25 20:36:05.457327620 +0200
-@@ -234,12 +234,12 @@
- case R_PPC_ADDR32:
- case R_PPC_GLOB_DAT:
- *reloc_addr = finaladdr;
-- goto out_nocode; /* No code code modified */
-+ goto out_nocode; /* No code modified */
- case R_PPC_JMP_SLOT:
- {
- if (tpnt->dynamic_info[DT_PPC_GOT_IDX] != 0) {
- *reloc_addr = finaladdr;
-- goto out_nocode; /* No code code modified */
-+ goto out_nocode; /* No code modified */
- } else {
- Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
- if (delta<<6>>6 == delta) {
-@@ -275,7 +275,7 @@
- symbol_addr, reloc_addr);
- #endif
- _dl_memcpy((char *) reloc_addr, (char *) finaladdr, sym_ref.sym->st_size);
-- goto out_nocode; /* No code code modified */
-+ goto out_nocode; /* No code modified */
- case R_PPC_ADDR16_HA:
- finaladdr += 0x8000; /* fall through. */
- case R_PPC_ADDR16_HI:
-@@ -314,7 +314,7 @@
- return -1;
- #endif
- case R_PPC_NONE:
-- goto out_nocode; /* No code code modified */
-+ goto out_nocode; /* No code modified */
- default:
- _dl_dprintf(2, "%s: can't handle reloc type ", _dl_progname);
- #if defined (__SUPPORT_LD_DEBUG__)
-diff -Nur uClibc-0.9.33.2/ldso/ldso/sh/dl-startup.h uClibc-git/ldso/ldso/sh/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/sh/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/sh/dl-startup.h 2014-07-25 20:36:05.469327682 +0200
-@@ -6,6 +6,7 @@
- " .text\n"
- " .globl _start\n"
- " .type _start,@function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " mov r15, r4\n"
- " mov.l .L_dl_start, r0\n"
-@@ -16,12 +17,22 @@
- " mov.l .L_got, r12 ! Load the GOT on r12\n"
- " mova .L_got, r0\n"
- " add r0, r12\n"
-+ " mov.l .L_dl_skip_args,r0\n"
-+ " mov.l @(r0,r12),r0\n"
-+ " mov.l @r0,r0\n"
-+ " mov.l @r15,r5 ! Get the original argument count\n"
-+ " sub r0,r5 ! Subtract _dl_skip_args from it\n"
-+ " shll2 r0\n"
-+ " add r0,r15 ! Adjust the stack pointer to skip _dl_skip_args words\n"
-+ " mov.l r5,@r15 ! Store back the modified argument count\n"
- " mov.l .L_dl_fini, r0\n"
- " mov.l @(r0,r12), r4 ! Pass the finalizer in r4\n"
- " jmp @r8\n"
- " nop\n"
- ".L_dl_start:\n"
- " .long _dl_start-.jmp_loc\n"
-+ ".L_dl_skip_args:\n"
-+ " .long _dl_skip_args@GOT\n"
- ".L_dl_fini:\n"
- " .long _dl_fini@GOT\n"
- ".L_got:\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/sh/elfinterp.c uClibc-git/ldso/ldso/sh/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/sh/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/sh/elfinterp.c 2014-07-25 20:36:05.469327682 +0200
-@@ -160,7 +160,9 @@
- unsigned long old_val;
- #endif
-
-+#if defined USE_TLS && USE_TLS
- struct elf_resolve *tls_tpnt = NULL;
-+#endif
- struct symbol_ref sym_ref;
-
- reloc_addr = (unsigned long *)(intptr_t) (tpnt->loadaddr + (unsigned long) rpnt->r_offset);
-@@ -193,7 +195,9 @@
- _dl_debug_lookup (symname, tpnt, &symtab[symtab_index],
- &sym_ref, elf_machine_type_class(reloc_type));
- }
-+#if defined USE_TLS && USE_TLS
- tls_tpnt = sym_ref.tpnt;
-+#endif
- }
-
- #if defined (__SUPPORT_LD_DEBUG__)
-diff -Nur uClibc-0.9.33.2/ldso/ldso/sh64/dl-startup.h uClibc-git/ldso/ldso/sh64/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/sh64/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/sh64/dl-startup.h 2014-07-25 20:36:05.481327745 +0200
-@@ -7,6 +7,7 @@
- " .section .text..SHmedia32,\"ax\"\n" \
- " .globl _start\n" \
- " .type _start, @function\n" \
-+" .hidden _start\n" \
- " .align 5\n" \
- "_start:\n" \
- " ! Set r12 to point to GOT\n" \
-diff -Nur uClibc-0.9.33.2/ldso/ldso/sparc/dl-startup.h uClibc-git/ldso/ldso/sparc/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/sparc/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/sparc/dl-startup.h 2014-07-25 20:36:05.501327851 +0200
-@@ -8,6 +8,7 @@
- .text\n\
- .global _start\n\
- .type _start,%function\n\
-+ .hidden _start\n\
- .align 32\n\
- .register %g2, #scratch\n\
- _start:\n\
-diff -Nur uClibc-0.9.33.2/ldso/ldso/sparc/elfinterp.c uClibc-git/ldso/ldso/sparc/elfinterp.c
---- uClibc-0.9.33.2/ldso/ldso/sparc/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/sparc/elfinterp.c 2014-07-25 20:36:05.501327851 +0200
-@@ -275,8 +275,11 @@
- _dl_memcpy((char *)reloc_addr,
- (char *)symbol_addr,
- sym_ref.sym->st_size);
-- } else
-+ }
-+#if defined (__SUPPORT_LD_DEBUG__)
-+ else
- _dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
-+#endif
- break;
- #if defined USE_TLS && USE_TLS
- case R_SPARC_TLS_DTPMOD32:
-diff -Nur uClibc-0.9.33.2/ldso/ldso/x86_64/dl-startup.h uClibc-git/ldso/ldso/x86_64/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/x86_64/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/x86_64/dl-startup.h 2014-07-25 20:36:05.513327913 +0200
-@@ -10,6 +10,7 @@
- " .text\n"
- " .global _start\n"
- " .type _start,%function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " movq %rsp, %rdi\n"
- " call _dl_start\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/x86_64/dl-sysdep.h uClibc-git/ldso/ldso/x86_64/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/x86_64/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/x86_64/dl-sysdep.h 2014-07-25 20:36:05.513327913 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define this if the system uses RELOCA. */
- #define ELF_USES_RELOCA
-diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/dl-startup.h uClibc-git/ldso/ldso/xtensa/dl-startup.h
---- uClibc-0.9.33.2/ldso/ldso/xtensa/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/xtensa/dl-startup.h 2014-07-25 20:36:05.533328017 +0200
-@@ -11,8 +11,10 @@
- __asm__ (
- " .text\n"
- " .align 4\n"
-+ " .literal_position\n"
- " .global _start\n"
- " .type _start, @function\n"
-+ " .hidden _start\n"
- "_start:\n"
- " # Compute load offset in a2: the GOT has not yet been relocated\n"
- " # but the entries for local symbols contain the relative offsets\n"
-diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/dl-sysdep.h uClibc-git/ldso/ldso/xtensa/dl-sysdep.h
---- uClibc-0.9.33.2/ldso/ldso/xtensa/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/xtensa/dl-sysdep.h 2014-07-25 20:36:05.533328017 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define this if the system uses RELOCA. */
- #define ELF_USES_RELOCA
-diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/resolve.S uClibc-git/ldso/ldso/xtensa/resolve.S
---- uClibc-0.9.33.2/ldso/ldso/xtensa/resolve.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/ldso/xtensa/resolve.S 2014-07-25 20:36:05.533328017 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define MIN_FRAME_SIZE 32
-
-@@ -28,6 +27,7 @@
-
- .text
- .align 4
-+ .literal_position
- .global _dl_linux_resolve
- .type _dl_linux_resolve, @function
- _dl_linux_resolve:
-diff -Nur uClibc-0.9.33.2/ldso/libdl/libdl.c uClibc-git/ldso/libdl/libdl.c
---- uClibc-0.9.33.2/ldso/libdl/libdl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/libdl/libdl.c 2014-07-25 20:36:05.545328081 +0200
-@@ -32,7 +32,7 @@
-
- #include <ldso.h>
- #include <stdio.h>
--#include <string.h> /* Needed for 'strstr' prototype' */
-+#include <string.h>
- #include <stdbool.h>
- #include <bits/uClibc_mutex.h>
-
-@@ -42,6 +42,7 @@
-
- #if defined(USE_TLS) && USE_TLS
- #include <ldsodefs.h>
-+#include <dl-tls.h>
- extern void _dl_add_to_slotinfo(struct link_map *l);
- #endif
-
-@@ -51,7 +52,6 @@
-
- #ifdef SHARED
- # if defined(USE_TLS) && USE_TLS
--# include <dl-tls.h>
- extern struct link_map *_dl_update_slotinfo(unsigned long int req_modid);
- # endif
-
-@@ -269,7 +269,7 @@
- #endif
-
- #ifndef __LDSO_NO_CLEANUP__
--void dl_cleanup(void) __attribute__ ((destructor));
-+void dl_cleanup(void) attribute_hidden __attribute__ ((destructor));
- void dl_cleanup(void)
- {
- struct dyn_elf *h, *n;
-@@ -296,11 +296,10 @@
- return p - list;
- }
-
--static void *do_dlopen(const char *libname, int flag)
-+static void *do_dlopen(const char *libname, int flag, ElfW(Addr) from)
- {
- struct elf_resolve *tpnt, *tfrom;
- struct dyn_elf *dyn_chain, *rpnt = NULL, *dyn_ptr, *relro_ptr, *handle;
-- ElfW(Addr) from;
- struct elf_resolve *tpnt1;
- void (*dl_brk) (void);
- int now_flag;
-@@ -309,7 +308,9 @@
- struct elf_resolve **init_fini_list;
- static bool _dl_init;
- struct elf_resolve **local_scope;
-+#ifdef SHARED
- struct r_scope_elem *ls;
-+#endif
- #if defined(USE_TLS) && USE_TLS
- bool any_tls = false;
- #endif
-@@ -320,8 +321,6 @@
- return NULL;
- }
-
-- from = (ElfW(Addr)) __builtin_return_address(0);
--
- if (!_dl_init) {
- _dl_init = true;
- _dl_malloc_function = malloc;
-@@ -335,7 +334,7 @@
- # ifdef __SUPPORT_LD_DEBUG__
- _dl_debug = getenv("LD_DEBUG");
- if (_dl_debug) {
-- if (_dl_strstr(_dl_debug, "all")) {
-+ if (strstr(_dl_debug, "all")) {
- _dl_debug_detail = _dl_debug_move = _dl_debug_symbols
- = _dl_debug_reloc = _dl_debug_bindings = _dl_debug_nofixups = (void*)1;
- } else {
-@@ -377,7 +376,7 @@
- if (getenv("LD_BIND_NOW"))
- now_flag = RTLD_NOW;
-
--#if !defined SHARED && defined __LDSO_LIBRARY_PATH__
-+#if !defined SHARED && defined __LDSO_LD_LIBRARY_PATH__
- /* When statically linked, the _dl_library_path is not yet initialized */
- _dl_library_path = getenv("LD_LIBRARY_PATH");
- #endif
-@@ -393,7 +392,7 @@
- return NULL;
- }
- dyn_chain = (struct dyn_elf *) malloc(sizeof(struct dyn_elf));
-- _dl_memset(dyn_chain, 0, sizeof(struct dyn_elf));
-+ memset(dyn_chain, 0, sizeof(struct dyn_elf));
- dyn_chain->dyn = tpnt;
- tpnt->rtld_flags |= (flag & RTLD_GLOBAL);
-
-@@ -444,7 +443,7 @@
-
- /* This list is for dlsym() and relocation */
- dyn_ptr->next = (struct dyn_elf *) malloc(sizeof(struct dyn_elf));
-- _dl_memset (dyn_ptr->next, 0, sizeof (struct dyn_elf));
-+ memset (dyn_ptr->next, 0, sizeof (struct dyn_elf));
- dyn_ptr = dyn_ptr->next;
- dyn_ptr->dyn = tpnt1;
- /* Used to record RTLD_LOCAL scope */
-@@ -544,11 +543,18 @@
- * to the GOT tables. We need to do this in reverse order so that COPY
- * directives work correctly */
-
-- /* Get the tail of the list */
-+#ifdef SHARED
-+ /*
-+ * Get the tail of the list.
-+ * In the static case doesn't need to extend the global scope, it is
-+ * ready to be used as it is, because _dl_loaded_modules already points
-+ * to the dlopened library.
-+ */
- for (ls = &_dl_loaded_modules->symbol_scope; ls && ls->next; ls = ls->next);
-
- /* Extend the global scope by adding the local scope of the dlopened DSO. */
- ls->next = &dyn_chain->dyn->symbol_scope;
-+#endif
- #ifdef __mips__
- /*
- * Relocation of the GOT entries for MIPS have to be done
-@@ -661,7 +667,8 @@
- void *ret;
-
- __UCLIBC_MUTEX_CONDITIONAL_LOCK(_dl_mutex, 1);
-- ret = do_dlopen(libname, flag);
-+ ret = do_dlopen(libname, flag,
-+ (ElfW(Addr)) __builtin_return_address(0));
- __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(_dl_mutex, 1);
-
- return ret;
-@@ -671,7 +678,7 @@
- {
- struct elf_resolve *tpnt, *tfrom;
- struct dyn_elf *handle;
-- ElfW(Addr) from;
-+ ElfW(Addr) from = 0;
- struct dyn_elf *rpnt;
- void *ret;
- struct symbol_ref sym_ref = { NULL, NULL };
-@@ -729,7 +736,13 @@
- tpnt = NULL;
- if (handle == _dl_symbol_tables)
- tpnt = handle->dyn; /* Only search RTLD_GLOBAL objs if global object */
-- ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
-+
-+ do {
-+ ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
-+ if (ret != NULL)
-+ break;
-+ handle = handle->next;
-+ } while (from && handle);
-
- #if defined(USE_TLS) && USE_TLS && defined SHARED
- if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && (sym_ref.tpnt)) {
-@@ -1081,8 +1094,10 @@
- * Dump information to stderr about the current loaded modules
- */
- #ifdef __USE_GNU
-+# if 0
- static const char type[][4] = { "Lib", "Exe", "Int", "Mod" };
-
-+/* reimplement this, being a GNU extension it should be the same as on glibc */
- int dlinfo(void)
- {
- struct elf_resolve *tpnt;
-@@ -1109,6 +1124,7 @@
- }
- return 0;
- }
-+#endif
-
- static int do_dladdr(const void *__address, Dl_info * __info)
- {
-diff -Nur uClibc-0.9.33.2/ldso/libdl/Makefile.in uClibc-git/ldso/libdl/Makefile.in
---- uClibc-0.9.33.2/ldso/libdl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/libdl/Makefile.in 2014-07-25 20:36:05.545328081 +0200
-@@ -23,7 +23,7 @@
- LDFLAGS-libdl.so := $(LDFLAGS)
-
- ifeq ($(LDSO_NO_CLEANUP),)
--LDFLAGS-libdl.so += -Wl,-fini,dl_cleanup
-+LDFLAGS-libdl.so += -Wl,-fini,$(SYMBOL_PREFIX)dl_cleanup
- endif
-
- LIBS-libdl.so := $(LIBS) $(ldso)
-diff -Nur uClibc-0.9.33.2/ldso/man/dlopen.3 uClibc-git/ldso/man/dlopen.3
---- uClibc-0.9.33.2/ldso/man/dlopen.3 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/ldso/man/dlopen.3 2014-07-25 20:36:05.557328144 +0200
-@@ -19,9 +19,8 @@
- .\" GNU General Public License for more details.
- .\"
- .\" You should have received a copy of the GNU General Public
--.\" License along with this manual; if not, write to the Free
--.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
--.\" USA.
-+.\" License along with this manual; if not, see
-+.\" <http://www.gnu.org/licenses/>.
- .\"
- .TH DLOPEN 3 "16 May 1995" "Linux" "Linux Programmer's Manual"
- .SH NAME
-diff -Nur uClibc-0.9.33.2/libc/.gitignore uClibc-git/libc/.gitignore
---- uClibc-0.9.33.2/libc/.gitignore 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/.gitignore 2014-07-25 20:36:05.569328207 +0200
-@@ -0,0 +1 @@
-+ucontext_i.[chs]
-diff -Nur uClibc-0.9.33.2/libc/inet/addr.c uClibc-git/libc/inet/addr.c
---- uClibc-0.9.33.2/libc/inet/addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/addr.c 2014-07-25 20:36:05.573328227 +0200
-@@ -17,8 +17,6 @@
- * Changed to use _int10tostr.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
-@@ -114,7 +112,7 @@
-
- #define INET_NTOA_MAX_LEN 16 /* max 12 digits + 3 '.'s + 1 nul */
-
--char *inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
-+static char *__inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
- {
- in_addr_t addr = ntohl(in.s_addr);
- int i;
-@@ -133,12 +131,12 @@
-
- return p+1;
- }
--libc_hidden_def(inet_ntoa_r)
-+strong_alias(__inet_ntoa_r,inet_ntoa_r)
-
- char *inet_ntoa(struct in_addr in)
- {
- static char buf[INET_NTOA_MAX_LEN];
-- return inet_ntoa_r(in, buf);
-+ return __inet_ntoa_r(in, buf);
- }
- libc_hidden_def(inet_ntoa)
- #endif
-@@ -153,18 +151,18 @@
- */
- struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host)
- {
-- in_addr_t addr;
-+ struct in_addr in;
-
- if (net < 128)
-- addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
-+ in.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
- else if (net < 65536)
-- addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
-+ in.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
- else if (net < 16777216UL)
-- addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
-+ in.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
- else
-- addr = net | host;
-- addr = htonl(addr);
-- return *(struct in_addr *)&addr;
-+ in.s_addr = net | host;
-+ in.s_addr = htonl(in.s_addr);
-+ return in;
- }
- libc_hidden_def(inet_makeaddr)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/inet/ether_addr.c uClibc-git/libc/inet/ether_addr.c
---- uClibc-0.9.33.2/libc/inet/ether_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/ether_addr.c 2014-07-25 20:36:05.577328249 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>.
- */
-
- /*
-@@ -23,8 +22,6 @@
- * - initial uClibc port
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/gai_strerror.c uClibc-git/libc/inet/gai_strerror.c
---- uClibc-0.9.33.2/libc/inet/gai_strerror.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/gai_strerror.c 2014-07-25 20:36:05.577328249 +0200
-@@ -13,17 +13,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <stdio.h>
- #include <netdb.h>
-+#include <libintl.h>
-
--#define N_(x) x
--#define _(x) x
- static const struct
- {
- int code;
-diff -Nur uClibc-0.9.33.2/libc/inet/getaddrinfo.c uClibc-git/libc/inet/getaddrinfo.c
---- uClibc-0.9.33.2/libc/inet/getaddrinfo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/getaddrinfo.c 2014-07-25 20:36:05.577328249 +0200
-@@ -51,8 +51,6 @@
-
- If these license terms cause you a real problem, contact the author. */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <assert.h>
- #include <errno.h>
- #include <netdb.h>
-@@ -283,7 +281,7 @@
- ai->ai_protocol = req->ai_protocol;
- ai->ai_addrlen = sizeof(struct sockaddr_un);
- ai->ai_addr = (void *)ai + sizeof(struct addrinfo);
--#if SALEN
-+#if 0 /* SALEN */
- ((struct sockaddr_un *)ai->ai_addr)->sun_len = sizeof(struct sockaddr_un);
- #endif /* SALEN */
-
-@@ -713,7 +711,7 @@
- (*pai)->ai_protocol = st2->protocol;
- (*pai)->ai_addrlen = socklen;
- (*pai)->ai_addr = (void *) (*pai) + sizeof(struct addrinfo);
--#if defined SALEN
-+#if 0 /* SALEN */
- (*pai)->ai_addr->sa_len = socklen;
- #endif
- (*pai)->ai_addr->sa_family = family;
-diff -Nur uClibc-0.9.33.2/libc/inet/herror.c uClibc-git/libc/inet/herror.c
---- uClibc-0.9.33.2/libc/inet/herror.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/herror.c 2014-07-25 20:36:05.577328249 +0200
-@@ -17,8 +17,6 @@
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <stdio.h>
- #include <string.h>
- #include <netdb.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/hostid.c uClibc-git/libc/inet/hostid.c
---- uClibc-0.9.33.2/libc/inet/hostid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/hostid.c 2014-07-25 20:36:05.577328249 +0200
-@@ -5,8 +5,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <errno.h>
- #include <unistd.h>
- #include <sys/types.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/ifaddrs.c uClibc-git/libc/inet/ifaddrs.c
---- uClibc-0.9.33.2/libc/inet/ifaddrs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/ifaddrs.c 2014-07-25 20:36:05.577328249 +0200
-@@ -13,12 +13,9 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <alloca.h>
- #include <assert.h>
- #include <errno.h>
-@@ -33,7 +30,6 @@
- #include <string.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
--#include <libc-internal.h>
- #include <time.h>
- #include <unistd.h>
-
-diff -Nur uClibc-0.9.33.2/libc/inet/if_index.c uClibc-git/libc/inet/if_index.c
---- uClibc-0.9.33.2/libc/inet/if_index.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/if_index.c 2014-07-25 20:36:05.577328249 +0200
-@@ -13,15 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>.
-
- Reworked Dec 2002 by Erik Andersen <andersen@codepoet.org>
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <string.h>
- #include <alloca.h>
- #include <errno.h>
-@@ -31,7 +28,6 @@
- #include <net/if.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
--#include <libc-internal.h>
- #include <not-cancel.h>
-
- #include "netlinkaccess.h"
-diff -Nur uClibc-0.9.33.2/libc/inet/in6_addr.c uClibc-git/libc/inet/in6_addr.c
---- uClibc-0.9.33.2/libc/inet/in6_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/in6_addr.c 2014-07-25 20:36:05.577328249 +0200
-@@ -13,12 +13,9 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <netinet/in.h>
-
- #ifdef __UCLIBC_HAS_IPV6__
-diff -Nur uClibc-0.9.33.2/libc/inet/inet_addr.c uClibc-git/libc/inet/inet_addr.c
---- uClibc-0.9.33.2/libc/inet/inet_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/inet_addr.c 2014-07-25 20:36:05.577328249 +0200
-@@ -4,5 +4,5 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define L_inet_makeaddr
-+#define L_inet_addr
- #include "addr.c"
-diff -Nur uClibc-0.9.33.2/libc/inet/inet_makeaddr.c uClibc-git/libc/inet/inet_makeaddr.c
---- uClibc-0.9.33.2/libc/inet/inet_makeaddr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/inet_makeaddr.c 2014-07-25 20:36:05.577328249 +0200
-@@ -4,5 +4,5 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define L_inet_addr
-+#define L_inet_makeaddr
- #include "addr.c"
-diff -Nur uClibc-0.9.33.2/libc/inet/inet_net.c uClibc-git/libc/inet/inet_net.c
---- uClibc-0.9.33.2/libc/inet/inet_net.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/inet_net.c 2014-07-25 20:36:05.577328249 +0200
-@@ -32,8 +32,6 @@
- * SUCH DAMAGE.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <ctype.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/Makefile.in uClibc-git/libc/inet/Makefile.in
---- uClibc-0.9.33.2/libc/inet/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/Makefile.in 2014-07-25 20:36:05.573328227 +0200
-@@ -11,33 +11,34 @@
-
- INET_DIR := $(top_srcdir)libc/inet
- INET_OUT := $(top_builddir)libc/inet
-+V4_OR_V6 := $(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6))
-
- CFLAGS-inet := -DRESOLVER="\"resolv.c\""
- CSRC-y :=
- # des uses ntohl
--CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ntohl.c
--CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
-+CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(V4_OR_V6)) += ntohl.c
-+CSRC-$(V4_OR_V6) += \
- getservice.c getproto.c getnet.c hostid.c \
- inet_net.c herror.c if_index.c gai_strerror.c getaddrinfo.c \
- ifaddrs.c ntop.c
- CSRC-$(UCLIBC_HAS_IPV6) += in6_addr.c
- # multi source addr.c
--CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
-+CSRC-$(V4_OR_V6) += \
- inet_aton.c inet_addr.c inet_ntoa.c inet_makeaddr.c \
- inet_lnaof.c inet_netof.c
- # multi source resolv.c
--CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
-+CSRC-$(V4_OR_V6) += \
- encodeh.c decodeh.c encoded.c decoded.c \
- encodeq.c encodea.c \
- read_etc_hosts_r.c \
- dnslookup.c opennameservers.c closenameservers.c \
- getnameinfo.c \
- gethostent.c gethostent_r.c
--CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
-+CSRC-$(V4_OR_V6) += \
- get_hosts_byaddr_r.c get_hosts_byname_r.c \
- gethostbyaddr_r.c gethostbyname_r.c gethostbyname2_r.c \
- gethostbyaddr.c gethostbyname.c gethostbyname2.c
--CSRC-$(findstring y,$(UCLIBC_HAS_RESOLVER_SUPPORT)) += \
-+CSRC-$(UCLIBC_HAS_RESOLVER_SUPPORT) += \
- ns_netint.c ns_parse.c res_data.c \
- res_init.c res_query.c res_comp.c ns_name.c \
- _res_state.c
-@@ -52,7 +53,7 @@
- socketcalls_CSRC-$(UCLIBC_LINUX_SPECIFIC) += accept4.c
- CSRC-$(UCLIBC_HAS_SOCKET) += $(socketcalls_CSRC-y) opensock.c
-
--CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ethers.c ether_addr.c
-+CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(V4_OR_V6)) += ethers.c ether_addr.c
-
- INET_SRC := $(patsubst %.c,$(INET_DIR)/%.c,$(CSRC-y))
- INET_OBJ := $(patsubst %.c,$(INET_OUT)/%.o,$(CSRC-y))
-diff -Nur uClibc-0.9.33.2/libc/inet/netlinkaccess.h uClibc-git/libc/inet/netlinkaccess.h
---- uClibc-0.9.33.2/libc/inet/netlinkaccess.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/netlinkaccess.h 2014-07-25 20:36:05.577328249 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETLINKACCESS_H
- #define _NETLINKACCESS_H 1
-diff -Nur uClibc-0.9.33.2/libc/inet/ntohl.c uClibc-git/libc/inet/ntohl.c
---- uClibc-0.9.33.2/libc/inet/ntohl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/ntohl.c 2014-07-25 20:36:05.577328249 +0200
-@@ -6,9 +6,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <stdint.h>
--#include <endian.h>
--#include <byteswap.h>
- #include <netinet/in.h>
-
- #undef ntohl
-@@ -16,51 +13,30 @@
- #undef htonl
- #undef htons
-
--#if __BYTE_ORDER == __BIG_ENDIAN
--uint32_t ntohl (uint32_t x)
--{
-- return x;
--}
--
--uint16_t ntohs (uint16_t x)
--{
-- return x;
--}
--
--uint32_t htonl (uint32_t x)
--{
-- return x;
--}
-+#if __BYTE_ORDER != __BIG_ENDIAN && __BYTE_ORDER != __LITTLE_ENDIAN
-+# error "You seem to have an unsupported byteorder"
-+#endif
-
--uint16_t htons (uint16_t x)
--{
-- return x;
--}
--#elif __BYTE_ORDER == __LITTLE_ENDIAN
- uint32_t ntohl (uint32_t x)
- {
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+ return x;
-+#else
- return __bswap_32(x);
-+#endif
- }
-+libc_hidden_def(ntohl)
-+strong_alias(ntohl,htonl)
-+libc_hidden_def(htonl)
-
- uint16_t ntohs (uint16_t x)
- {
-- return __bswap_16(x);
--}
--
--uint32_t htonl (uint32_t x)
--{
-- return __bswap_32(x);
--}
--
--uint16_t htons (uint16_t x)
--{
-- return __bswap_16(x);
--}
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+ return x;
- #else
--#error "You seem to have an unsupported byteorder"
-+ return __bswap_16(x);
- #endif
--
--libc_hidden_def(ntohl)
-+}
- libc_hidden_def(ntohs)
--libc_hidden_def(htonl)
-+strong_alias(ntohs,htons)
- libc_hidden_def(htons)
-diff -Nur uClibc-0.9.33.2/libc/inet/ntop.c uClibc-git/libc/inet/ntop.c
---- uClibc-0.9.33.2/libc/inet/ntop.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/ntop.c 2014-07-25 20:36:05.577328249 +0200
-@@ -15,8 +15,6 @@
- * SOFTWARE.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <sys/param.h>
- #include <sys/types.h>
- #include <sys/socket.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/opensock.c uClibc-git/libc/inet/opensock.c
---- uClibc-0.9.33.2/libc/inet/opensock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/opensock.c 2014-07-25 20:36:05.577328249 +0200
-@@ -12,18 +12,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <assert.h>
--#include <errno.h>
--#include <stdio.h>
--#include <string.h>
--#include <unistd.h>
- #include <sys/socket.h>
--#include <features.h>
--#include <libc-internal.h>
-+#include <bits/kernel-features.h>
-
- /* Return a socket of any type. The socket can be used in subsequent
- ioctl calls to talk to the kernel. */
-diff -Nur uClibc-0.9.33.2/libc/inet/resolv.c uClibc-git/libc/inet/resolv.c
---- uClibc-0.9.33.2/libc/inet/resolv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/resolv.c 2014-07-25 20:36:05.577328249 +0200
-@@ -293,8 +293,6 @@
- - a sequence of labels ending with a pointer
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <string.h>
- #include <stdio.h>
- #include <stdio_ext.h>
-@@ -317,6 +315,7 @@
- #include <sys/utsname.h>
- #include <sys/un.h>
- #include <sys/stat.h>
-+#include <sys/param.h>
- #include <bits/uClibc_mutex.h>
- #include "internal/parse_config.h"
-
-@@ -406,7 +405,7 @@
- } sockaddr46_t;
-
-
--__UCLIBC_MUTEX_EXTERN(__resolv_lock);
-+__UCLIBC_MUTEX_EXTERN(__resolv_lock) attribute_hidden;
-
- /* Protected by __resolv_lock */
- extern void (*__res_sync)(void) attribute_hidden;
-@@ -566,7 +565,7 @@
-
- #ifdef L_encodeh
-
--int attribute_hidden __encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
-+int __encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
- {
- if (maxlen < HFIXEDSZ)
- return -1;
-@@ -595,7 +594,7 @@
-
- #ifdef L_decodeh
-
--void attribute_hidden __decode_header(unsigned char *data,
-+void __decode_header(unsigned char *data,
- struct resolv_header *h)
- {
- h->id = (data[0] << 8) | data[1];
-@@ -619,7 +618,7 @@
- /* Encode a dotted string into nameserver transport-level encoding.
- This routine is fairly dumb, and doesn't attempt to compress
- the data */
--int attribute_hidden __encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
-+int __encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
- {
- unsigned used = 0;
-
-@@ -657,7 +656,7 @@
-
- /* Decode a dotted string from nameserver transport-level encoding.
- This routine understands compressed data. */
--int attribute_hidden __decode_dotted(const unsigned char *packet,
-+int __decode_dotted(const unsigned char *packet,
- int offset,
- int packet_len,
- char *dest,
-@@ -722,7 +721,7 @@
-
- #ifdef L_encodeq
-
--int attribute_hidden __encode_question(const struct resolv_question *q,
-+int __encode_question(const struct resolv_question *q,
- unsigned char *dest,
- int maxlen)
- {
-@@ -750,7 +749,7 @@
-
- #ifdef L_encodea
-
--int attribute_hidden __encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
-+int __encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
- {
- int i;
-
-@@ -864,7 +863,7 @@
- const char *name,
- int type,
- unsigned char *packet,
-- int maxlen);
-+ int maxlen) attribute_hidden;
- int __form_query(int id,
- const char *name,
- int type,
-@@ -956,7 +955,7 @@
- }
-
- /* Must be called under __resolv_lock. */
--void attribute_hidden __open_nameservers(void)
-+void __open_nameservers(void)
- {
- static uint32_t resolv_conf_mtime;
-
-@@ -1122,7 +1121,7 @@
- #ifdef L_closenameservers
-
- /* Must be called under __resolv_lock. */
--void attribute_hidden __close_nameservers(void)
-+void __close_nameservers(void)
- {
- if (__nameserver != (void*) &__local_nameserver)
- free(__nameserver);
-@@ -1230,7 +1229,7 @@
- * appended. (why the filed is called "dotted" I have no idea)
- * This is a malloced string. May be NULL because strdup failed.
- */
--int attribute_hidden __dns_lookup(const char *name,
-+int __dns_lookup(const char *name,
- int type,
- unsigned char **outpacket,
- struct resolv_answer *a)
-@@ -1472,9 +1471,11 @@
- }
- /* no more search domains to try */
- }
-- /* dont loop, this is "no such host" situation */
-- h_errno = HOST_NOT_FOUND;
-- goto fail1;
-+ if (h.rcode != SERVFAIL) {
-+ /* dont loop, this is "no such host" situation */
-+ h_errno = HOST_NOT_FOUND;
-+ goto fail1;
-+ }
- }
- /* Insert other non-fatal errors here, which do not warrant
- * switching to next nameserver */
-@@ -1594,7 +1595,7 @@
- #define HALISTOFF (sizeof(char*) * MAXTOKENS)
- #define INADDROFF (HALISTOFF + 2 * sizeof(char*))
-
--int attribute_hidden __read_etc_hosts_r(
-+int __read_etc_hosts_r(
- parser_t * parser,
- const char *name,
- int type,
-@@ -1708,7 +1709,7 @@
-
- #ifdef L_get_hosts_byname_r
-
--int attribute_hidden __get_hosts_byname_r(const char *name,
-+int __get_hosts_byname_r(const char *name,
- int type,
- struct hostent *result_buf,
- char *buf,
-@@ -1724,7 +1725,7 @@
-
- #ifdef L_get_hosts_byaddr_r
-
--int attribute_hidden __get_hosts_byaddr_r(const char *addr,
-+int __get_hosts_byaddr_r(const char *addr,
- int len,
- int type,
- struct hostent *result_buf,
-@@ -1775,7 +1776,7 @@
- unsigned flags)
- {
- int serrno = errno;
-- unsigned ok;
-+ bool ok = 0;
- struct hostent *hoste = NULL;
- char domain[256];
-
-@@ -1785,16 +1786,15 @@
- if (sa == NULL || addrlen < sizeof(sa_family_t))
- return EAI_FAMILY;
-
-- ok = sa->sa_family;
-- if (ok == AF_LOCAL) /* valid */;
-+ if (sa->sa_family == AF_LOCAL) /* valid */;
- #ifdef __UCLIBC_HAS_IPV4__
-- else if (ok == AF_INET) {
-+ else if (sa->sa_family == AF_INET) {
- if (addrlen < sizeof(struct sockaddr_in))
- return EAI_FAMILY;
- }
- #endif
- #ifdef __UCLIBC_HAS_IPV6__
-- else if (ok == AF_INET6) {
-+ else if (sa->sa_family == AF_INET6) {
- if (addrlen < sizeof(struct sockaddr_in6))
- return EAI_FAMILY;
- }
-@@ -1802,7 +1802,6 @@
- else
- return EAI_FAMILY;
-
-- ok = 0;
- if (host != NULL && hostlen > 0)
- switch (sa->sa_family) {
- case AF_INET:
-@@ -1826,21 +1825,18 @@
-
- if (hoste) {
- char *c;
--#undef min
--#define min(x,y) (((x) > (y)) ? (y) : (x))
- if ((flags & NI_NOFQDN)
- && (getdomainname(domain, sizeof(domain)) == 0)
- && (c = strstr(hoste->h_name, domain)) != NULL
- && (c != hoste->h_name) && (*(--c) == '.')
- ) {
- strncpy(host, hoste->h_name,
-- min(hostlen, (size_t) (c - hoste->h_name)));
-- host[min(hostlen - 1, (size_t) (c - hoste->h_name))] = '\0';
-+ MIN(hostlen, (size_t) (c - hoste->h_name)));
-+ host[MIN(hostlen - 1, (size_t) (c - hoste->h_name))] = '\0';
- } else {
- strncpy(host, hoste->h_name, hostlen);
- }
- ok = 1;
--#undef min
- }
- }
-
-@@ -3432,6 +3428,7 @@
- */
- }
-
-+/* has to be called under __resolv_lock */
- static int
- __res_vinit(res_state rp, int preinit)
- {
-@@ -3440,7 +3437,6 @@
- int m = 0;
- #endif
-
-- __UCLIBC_MUTEX_LOCK(__resolv_lock);
- __close_nameservers();
- __open_nameservers();
-
-@@ -3532,29 +3528,87 @@
-
- rp->options |= RES_INIT;
-
-+ return 0;
-+}
-+
-+static unsigned int
-+res_randomid(void)
-+{
-+ return 0xffff & getpid();
-+}
-+
-+/* Our res_init never fails (always returns 0) */
-+int
-+res_init(void)
-+{
-+ /*
-+ * These three fields used to be statically initialized. This made
-+ * it hard to use this code in a shared library. It is necessary,
-+ * now that we're doing dynamic initialization here, that we preserve
-+ * the old semantics: if an application modifies one of these three
-+ * fields of _res before res_init() is called, res_init() will not
-+ * alter them. Of course, if an application is setting them to
-+ * _zero_ before calling res_init(), hoping to override what used
-+ * to be the static default, we can't detect it and unexpected results
-+ * will follow. Zero for any of these fields would make no sense,
-+ * so one can safely assume that the applications were already getting
-+ * unexpected results.
-+ *
-+ * _res.options is tricky since some apps were known to diddle the bits
-+ * before res_init() was first called. We can't replicate that semantic
-+ * with dynamic initialization (they may have turned bits off that are
-+ * set in RES_DEFAULT). Our solution is to declare such applications
-+ * "broken". They could fool us by setting RES_INIT but none do (yet).
-+ */
-+
-+ __UCLIBC_MUTEX_LOCK(__resolv_lock);
-+
-+ if (!_res.retrans)
-+ _res.retrans = RES_TIMEOUT;
-+ if (!_res.retry)
-+ _res.retry = 4;
-+ if (!(_res.options & RES_INIT))
-+ _res.options = RES_DEFAULT;
-+
-+ /*
-+ * This one used to initialize implicitly to zero, so unless the app
-+ * has set it to something in particular, we can randomize it now.
-+ */
-+ if (!_res.id)
-+ _res.id = res_randomid();
-+
-+ __res_sync = NULL;
-+ __res_vinit(&_res, 1);
-+ __res_sync = res_sync_func;
-+
- __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
-+
- return 0;
- }
-+libc_hidden_def(res_init)
-
- static void
--__res_iclose(void)
-+__res_iclose(res_state statp)
- {
-+ struct __res_state * rp = statp;
- __UCLIBC_MUTEX_LOCK(__resolv_lock);
-+ if (rp == NULL)
-+ rp = __res_state();
- __close_nameservers();
- __res_sync = NULL;
- #ifdef __UCLIBC_HAS_IPV6__
- {
-- char *p1 = (char*) &(_res.nsaddr_list[0]);
-- int m = 0;
-+ char *p1 = (char*) &(rp->nsaddr_list[0]);
-+ unsigned int m = 0;
- /* free nsaddrs[m] if they do not point to nsaddr_list[x] */
-- while (m < ARRAY_SIZE(_res._u._ext.nsaddrs)) {
-- char *p2 = (char*)(_res._u._ext.nsaddrs[m++]);
-- if (p2 < p1 || (p2 - p1) > sizeof(_res.nsaddr_list))
-+ while (m < ARRAY_SIZE(rp->_u._ext.nsaddrs)) {
-+ char *p2 = (char*)(rp->_u._ext.nsaddrs[m++]);
-+ if (p2 < p1 || (p2 - p1) > (signed)sizeof(rp->nsaddr_list))
- free(p2);
- }
- }
- #endif
-- memset(&_res, 0, sizeof(_res));
-+ memset(rp, 0, sizeof(struct __res_state));
- __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
- }
-
-@@ -3569,13 +3623,13 @@
- void
- res_nclose(res_state statp)
- {
-- __res_iclose();
-+ __res_iclose(statp);
- }
-
- #ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
- void res_close(void)
- {
-- __res_iclose();
-+ __res_iclose(NULL);
- }
- #endif
-
-@@ -3595,74 +3649,14 @@
- # if defined __UCLIBC_HAS_TLS__
- # undef __resp
- __thread struct __res_state *__resp = &_res;
--/*
-- * FIXME: Add usage of hidden attribute for this when used in the shared
-- * library. It currently crashes the linker when doing section
-- * relocations.
-- */
- extern __thread struct __res_state *__libc_resp
-- __attribute__ ((alias ("__resp"))) attribute_hidden;
-+ __attribute__ ((alias ("__resp"))) attribute_hidden attribute_tls_model_ie;
- # else
- # undef __resp
- struct __res_state *__resp = &_res;
- # endif
- #endif /* !__UCLIBC_HAS_THREADS__ */
-
--static unsigned int
--res_randomid(void)
--{
-- return 0xffff & getpid();
--}
--
--/* Our res_init never fails (always returns 0) */
--int
--res_init(void)
--{
-- /*
-- * These three fields used to be statically initialized. This made
-- * it hard to use this code in a shared library. It is necessary,
-- * now that we're doing dynamic initialization here, that we preserve
-- * the old semantics: if an application modifies one of these three
-- * fields of _res before res_init() is called, res_init() will not
-- * alter them. Of course, if an application is setting them to
-- * _zero_ before calling res_init(), hoping to override what used
-- * to be the static default, we can't detect it and unexpected results
-- * will follow. Zero for any of these fields would make no sense,
-- * so one can safely assume that the applications were already getting
-- * unexpected results.
-- *
-- * _res.options is tricky since some apps were known to diddle the bits
-- * before res_init() was first called. We can't replicate that semantic
-- * with dynamic initialization (they may have turned bits off that are
-- * set in RES_DEFAULT). Our solution is to declare such applications
-- * "broken". They could fool us by setting RES_INIT but none do (yet).
-- */
--
-- __UCLIBC_MUTEX_LOCK(__resolv_lock);
--
-- if (!_res.retrans)
-- _res.retrans = RES_TIMEOUT;
-- if (!_res.retry)
-- _res.retry = 4;
-- if (!(_res.options & RES_INIT))
-- _res.options = RES_DEFAULT;
--
-- /*
-- * This one used to initialize implicitly to zero, so unless the app
-- * has set it to something in particular, we can randomize it now.
-- */
-- if (!_res.id)
-- _res.id = res_randomid();
-- __res_sync = res_sync_func;
--
-- __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
--
-- __res_vinit(&_res, 1);
--
-- return 0;
--}
--libc_hidden_def(res_init)
--
- /*
- * Set up default settings. If the configuration file exist, the values
- * there will have precedence. Otherwise, the server address is set to
-@@ -3687,7 +3681,11 @@
- int
- res_ninit(res_state statp)
- {
-- return __res_vinit(statp, 0);
-+ int ret;
-+ __UCLIBC_MUTEX_LOCK(__resolv_lock);
-+ ret = __res_vinit(statp, 0);
-+ __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
-+ return ret;
- }
-
- #endif /* L_res_init */
-@@ -3740,11 +3738,10 @@
-
- free(a.dotted);
-
-- if (a.atype == type) { /* CNAME */
-- if (i > anslen)
-- i = anslen;
-- memcpy(answer, packet, i);
-- }
-+ if (i > anslen)
-+ i = anslen;
-+ memcpy(answer, packet, i);
-+
- free(packet);
- return i;
- }
-@@ -4227,7 +4224,7 @@
- hp = (HEADER *) buf;
- hp->id = getpid() & 0xffff;
- hp->opcode = op;
-- hp->rd = (_res.options & RES_RECURSE) != 0U;
-+ hp->rd = (_res_options & RES_RECURSE) != 0U;
- hp->rcode = NOERROR;
-
- cp = buf + HFIXEDSZ;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/auth_none.c uClibc-git/libc/inet/rpc/auth_none.c
---- uClibc-0.9.33.2/libc/inet/rpc/auth_none.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/auth_none.c 2014-07-25 20:36:05.581328269 +0200
-@@ -35,8 +35,6 @@
- * credentials and verifiers to remote systems.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include "rpc_private.h"
-
-
-@@ -66,49 +64,54 @@
- char marshalled_client[MAX_MARSHAL_SIZE];
- u_int mcnt;
- };
-+
-+static struct authnone_private_s authnone_private;
- #ifdef __UCLIBC_HAS_THREADS__
--#define authnone_private (*(struct authnone_private_s **)&RPC_THREAD_VARIABLE(authnone_private_s))
--#else
--static struct authnone_private_s *authnone_private;
-+__libc_once_define(static, authnone_private_guard);
- #endif
-
--AUTH *
--authnone_create (void)
-+static void authnone_create_once (void);
-+
-+static void
-+authnone_create_once (void)
- {
- struct authnone_private_s *ap;
- XDR xdr_stream;
- XDR *xdrs;
-
-- ap = (struct authnone_private_s *) authnone_private;
-- if (ap == NULL)
-- {
-- ap = (struct authnone_private_s *) calloc (1, sizeof (*ap));
-- if (ap == NULL)
-- return NULL;
-- authnone_private = ap;
-- }
-- if (!ap->mcnt)
-- {
-- ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
-- ap->no_client.ah_ops = (struct auth_ops *)&ops;
-- xdrs = &xdr_stream;
-- xdrmem_create (xdrs, ap->marshalled_client, (u_int) MAX_MARSHAL_SIZE,
-- XDR_ENCODE);
-- (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_cred);
-- (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_verf);
-- ap->mcnt = XDR_GETPOS (xdrs);
-- XDR_DESTROY (xdrs);
-- }
-- return (&ap->no_client);
-+ ap = &authnone_private;
-+
-+ ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
-+ ap->no_client.ah_ops = (struct auth_ops *) &ops;
-+ xdrs = &xdr_stream;
-+ xdrmem_create(xdrs, ap->marshalled_client,
-+ (u_int) MAX_MARSHAL_SIZE, XDR_ENCODE);
-+ (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_cred);
-+ (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_verf);
-+ ap->mcnt = XDR_GETPOS (xdrs);
-+ XDR_DESTROY (xdrs);
-+}
-+
-+AUTH *
-+authnone_create (void)
-+{
-+#ifdef __UCLIBC_HAS_THREADS__
-+ __libc_once (authnone_private_guard, authnone_create_once);
-+#else
-+ authnone_create_once();
-+#endif
-+ return &authnone_private.no_client;
- }
- libc_hidden_def(authnone_create)
-
- static bool_t
--authnone_marshal (AUTH *client attribute_unused, XDR *xdrs)
-+authnone_marshal (AUTH *client, XDR *xdrs)
- {
- struct authnone_private_s *ap;
-
-- ap = authnone_private;
-+ /* authnone_create returned authnone_private->no_client, which is
-+ the first field of struct authnone_private_s. */
-+ ap = (struct authnone_private_s *) client;
- if (ap == NULL)
- return FALSE;
- return (*xdrs->x_ops->x_putbytes) (xdrs, ap->marshalled_client, ap->mcnt);
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/auth_unix.c uClibc-git/libc/inet/rpc/auth_unix.c
---- uClibc-0.9.33.2/libc/inet/rpc/auth_unix.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/auth_unix.c 2014-07-25 20:36:05.581328269 +0200
-@@ -38,13 +38,11 @@
- * for the credentials.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <limits.h>
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
-+#include <libintl.h>
- #include <sys/param.h>
-
- #include <rpc/types.h>
-@@ -52,10 +50,6 @@
- #include <rpc/auth.h>
- #include <rpc/auth_unix.h>
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
--
- /*
- * Unix authenticator operations vector
- */
-@@ -65,7 +59,7 @@
- static bool_t authunix_refresh (AUTH *);
- static void authunix_destroy (AUTH *);
-
--static struct auth_ops auth_unix_ops = {
-+static const struct auth_ops auth_unix_ops = {
- authunix_nextverf,
- authunix_marshal,
- authunix_validate,
-@@ -111,13 +105,7 @@
- if (auth == NULL || au == NULL)
- {
- no_memory:
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("authunix_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("authunix_create: out of memory\n"), stderr);
-+ (void) fputs (_("authunix_create: out of memory\n"), stderr);
- mem_free (auth, sizeof (*auth));
- mem_free (au, sizeof (*au));
- return NULL;
-@@ -326,7 +314,7 @@
- xdrmem_create (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
- if ((!xdr_opaque_auth (xdrs, &(auth->ah_cred))) ||
- (!xdr_opaque_auth (xdrs, &(auth->ah_verf))))
-- perror (_("auth_none.c - Fatal marshalling problem"));
-+ perror (_("auth_unix.c - Fatal marshalling problem"));
- else
- au->au_mpos = XDR_GETPOS (xdrs);
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/bindresvport.c uClibc-git/libc/inet/rpc/bindresvport.c
---- uClibc-0.9.33.2/libc/inet/rpc/bindresvport.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/bindresvport.c 2014-07-25 20:36:05.581328269 +0200
-@@ -30,9 +30,6 @@
- * Copyright (c) 1987 by Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <errno.h>
- #include <unistd.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_generic.c uClibc-git/libc/inet/rpc/clnt_generic.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_generic.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_generic.c 2014-07-25 20:36:05.581328269 +0200
-@@ -30,9 +30,6 @@
- * Copyright (C) 1987, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <alloca.h>
- #include <errno.h>
- #include <string.h>
-@@ -119,7 +116,7 @@
- prttmpbuf = alloca (prtbuflen);
- while (getprotobyname_r (proto, &protobuf, prttmpbuf, prtbuflen, &p) != 0
- || p == NULL)
-- if (errno != ERANGE)
-+ if (errno != ERANGE)
- {
- struct rpc_createerr *ce = &get_rpc_createerr ();
- ce->cf_stat = RPC_UNKNOWNPROTO;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_perror.c uClibc-git/libc/inet/rpc/clnt_perror.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_perror.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_perror.c 2014-07-25 20:36:05.581328269 +0200
-@@ -38,19 +38,10 @@
- *
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <string.h>
- #include "rpc_private.h"
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--# include <libio/iolibio.h>
--# define fputs(s, f) _IO_fputs (s, f)
--#endif
--
- static char *auth_errmsg (enum auth_stat stat) internal_function;
-
- #ifdef __UCLIBC_HAS_THREADS__
-@@ -81,74 +72,74 @@
- static const char rpc_errstr[] =
- {
- #define RPC_SUCCESS_IDX 0
-- _("RPC: Success")
-+ N_("RPC: Success")
- "\0"
- #define RPC_CANTENCODEARGS_IDX (RPC_SUCCESS_IDX + sizeof "RPC: Success")
-- _("RPC: Can't encode arguments")
-+ N_("RPC: Can't encode arguments")
- "\0"
- #define RPC_CANTDECODERES_IDX (RPC_CANTENCODEARGS_IDX \
- + sizeof "RPC: Can't encode arguments")
-- _("RPC: Can't decode result")
-+ N_("RPC: Can't decode result")
- "\0"
- #define RPC_CANTSEND_IDX (RPC_CANTDECODERES_IDX \
- + sizeof "RPC: Can't decode result")
-- _("RPC: Unable to send")
-+ N_("RPC: Unable to send")
- "\0"
- #define RPC_CANTRECV_IDX (RPC_CANTSEND_IDX \
- + sizeof "RPC: Unable to send")
-- _("RPC: Unable to receive")
-+ N_("RPC: Unable to receive")
- "\0"
- #define RPC_TIMEDOUT_IDX (RPC_CANTRECV_IDX \
- + sizeof "RPC: Unable to receive")
-- _("RPC: Timed out")
-+ N_("RPC: Timed out")
- "\0"
- #define RPC_VERSMISMATCH_IDX (RPC_TIMEDOUT_IDX \
- + sizeof "RPC: Timed out")
-- _("RPC: Incompatible versions of RPC")
-+ N_("RPC: Incompatible versions of RPC")
- "\0"
- #define RPC_AUTHERROR_IDX (RPC_VERSMISMATCH_IDX \
- + sizeof "RPC: Incompatible versions of RPC")
-- _("RPC: Authentication error")
-+ N_("RPC: Authentication error")
- "\0"
- #define RPC_PROGUNAVAIL_IDX (RPC_AUTHERROR_IDX \
- + sizeof "RPC: Authentication error")
-- _("RPC: Program unavailable")
-+ N_("RPC: Program unavailable")
- "\0"
- #define RPC_PROGVERSMISMATCH_IDX (RPC_PROGUNAVAIL_IDX \
- + sizeof "RPC: Program unavailable")
-- _("RPC: Program/version mismatch")
-+ N_("RPC: Program/version mismatch")
- "\0"
- #define RPC_PROCUNAVAIL_IDX (RPC_PROGVERSMISMATCH_IDX \
- + sizeof "RPC: Program/version mismatch")
-- _("RPC: Procedure unavailable")
-+ N_("RPC: Procedure unavailable")
- "\0"
- #define RPC_CANTDECODEARGS_IDX (RPC_PROCUNAVAIL_IDX \
- + sizeof "RPC: Procedure unavailable")
-- _("RPC: Server can't decode arguments")
-+ N_("RPC: Server can't decode arguments")
- "\0"
- #define RPC_SYSTEMERROR_IDX (RPC_CANTDECODEARGS_IDX \
- + sizeof "RPC: Server can't decode arguments")
-- _("RPC: Remote system error")
-+ N_("RPC: Remote system error")
- "\0"
- #define RPC_UNKNOWNHOST_IDX (RPC_SYSTEMERROR_IDX \
- + sizeof "RPC: Remote system error")
-- _("RPC: Unknown host")
-+ N_("RPC: Unknown host")
- "\0"
- #define RPC_UNKNOWNPROTO_IDX (RPC_UNKNOWNHOST_IDX \
- + sizeof "RPC: Unknown host")
-- _("RPC: Unknown protocol")
-+ N_("RPC: Unknown protocol")
- "\0"
- #define RPC_PMAPFAILURE_IDX (RPC_UNKNOWNPROTO_IDX \
- + sizeof "RPC: Unknown protocol")
-- _("RPC: Port mapper failure")
-+ N_("RPC: Port mapper failure")
- "\0"
- #define RPC_PROGNOTREGISTERED_IDX (RPC_PMAPFAILURE_IDX \
- + sizeof "RPC: Port mapper failure")
-- _("RPC: Program not registered")
-+ N_("RPC: Program not registered")
- "\0"
- #define RPC_FAILED_IDX (RPC_PROGNOTREGISTERED_IDX \
- + sizeof "RPC: Program not registered")
-- _("RPC: Failed (unspecified error)")
-+ N_("RPC: Failed (unspecified error)")
- };
-
- static const struct rpc_errtab rpc_errlist[] =
-@@ -189,19 +180,14 @@
- return (char*)_(rpc_errstr + rpc_errlist[i].message_off);
- }
- }
-- return _("RPC: (unknown error code)");
-+ return N_("RPC: (unknown error code)");
- }
- libc_hidden_def(clnt_sperrno)
-
- void
- clnt_perrno (enum clnt_stat num)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s", clnt_sperrno (num));
-- else
--#endif
-- (void) fputs (clnt_sperrno (num), stderr);
-+ (void) fputs (clnt_sperrno (num), stderr);
- }
-
- /*
-@@ -295,12 +281,7 @@
- void
- clnt_perror (CLIENT * rpch, const char *msg)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s", clnt_sperror (rpch, msg));
-- else
--#endif
-- (void) fputs (clnt_sperror (rpch, msg), stderr);
-+ (void) fputs (clnt_sperror (rpch, msg), stderr);
- }
- libc_hidden_def(clnt_perror)
-
-@@ -352,12 +333,7 @@
- void
- clnt_pcreateerror (const char *msg)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s", clnt_spcreateerror (msg));
-- else
--#endif
-- (void) fputs (clnt_spcreateerror (msg), stderr);
-+ (void) fputs (clnt_spcreateerror (msg), stderr);
- }
-
- struct auth_errtab
-@@ -369,34 +345,34 @@
- static const char auth_errstr[] =
- {
- #define AUTH_OK_IDX 0
-- _("Authentication OK")
-+ N_("Authentication OK")
- "\0"
- #define AUTH_BADCRED_IDX (AUTH_OK_IDX + sizeof "Authentication OK")
-- _("Invalid client credential")
-+ N_("Invalid client credential")
- "\0"
- #define AUTH_REJECTEDCRED_IDX (AUTH_BADCRED_IDX \
- + sizeof "Invalid client credential")
-- _("Server rejected credential")
-+ N_("Server rejected credential")
- "\0"
- #define AUTH_BADVERF_IDX (AUTH_REJECTEDCRED_IDX \
- + sizeof "Server rejected credential")
-- _("Invalid client verifier")
-+ N_("Invalid client verifier")
- "\0"
- #define AUTH_REJECTEDVERF_IDX (AUTH_BADVERF_IDX \
- + sizeof "Invalid client verifier")
-- _("Server rejected verifier")
-+ N_("Server rejected verifier")
- "\0"
- #define AUTH_TOOWEAK_IDX (AUTH_REJECTEDVERF_IDX \
- + sizeof "Server rejected verifier")
-- _("Client credential too weak")
-+ N_("Client credential too weak")
- "\0"
- #define AUTH_INVALIDRESP_IDX (AUTH_TOOWEAK_IDX \
- + sizeof "Client credential too weak")
-- _("Invalid server verifier")
-+ N_("Invalid server verifier")
- "\0"
- #define AUTH_FAILED_IDX (AUTH_INVALIDRESP_IDX \
- + sizeof "Invalid server verifier")
-- _("Failed (unspecified error)")
-+ N_("Failed (unspecified error)")
- };
-
- static const struct auth_errtab auth_errlist[] =
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_raw.c uClibc-git/libc/inet/rpc/clnt_raw.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_raw.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_raw.c 2014-07-25 20:36:05.585328291 +0200
-@@ -42,7 +42,6 @@
- * any interference from the kernel.
- */
-
--#define __FORCE_GLIBC
- #include <features.h>
- #include "rpc_private.h"
- #include <rpc/svc.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_simple.c uClibc-git/libc/inet/rpc/clnt_simple.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_simple.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_simple.c 2014-07-25 20:36:05.585328291 +0200
-@@ -38,9 +38,6 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <alloca.h>
- #include <errno.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_tcp.c uClibc-git/libc/inet/rpc/clnt_tcp.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_tcp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_tcp.c 2014-07-25 20:36:05.585328291 +0200
-@@ -50,22 +50,14 @@
- * Now go hang yourself.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <netdb.h>
- #include <errno.h>
- #include <stdio.h>
- #include <unistd.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <sys/poll.h>
- #include <sys/socket.h>
- #include <rpc/pmap_clnt.h>
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
--
--extern u_long _create_xid (void) attribute_hidden;
-
- #define MCALL_MSG_SIZE 24
-
-@@ -130,13 +122,7 @@
- if (h == NULL || ct == NULL)
- {
- struct rpc_createerr *ce = &get_rpc_createerr ();
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("clnttcp_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
-+ (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
- ce->cf_stat = RPC_SYSTEMERROR;
- ce->cf_error.re_errno = ENOMEM;
- goto fooy;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_udp.c uClibc-git/libc/inet/rpc/clnt_udp.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_udp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_udp.c 2014-07-25 20:36:05.585328291 +0200
-@@ -37,12 +37,9 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <unistd.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <rpc/xdr.h>
- #include <rpc/clnt.h>
- #include <sys/poll.h>
-@@ -52,20 +49,12 @@
- #include <errno.h>
- #include <rpc/pmap_clnt.h>
- #include <net/if.h>
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
-
- #ifdef IP_RECVERR
- #include "errqueue.h"
- #include <sys/uio.h>
- #endif
-
--/* CMSG_NXTHDR is using it */
--
--
--extern u_long _create_xid (void) attribute_hidden;
--
- /*
- * UDP bases client side rpc operations
- */
-@@ -116,7 +105,7 @@
- * NB: The rpch->cl_auth is initialized to null authentication.
- * Caller may wish to set this something more useful.
- *
-- * wait is the amount of time used between retransmitting a call if
-+ * _wait is the amount of time used between retransmitting a call if
- * no response has been heard; retransmission occurs until the actual
- * rpc call times out.
- *
-@@ -125,7 +114,7 @@
- */
- CLIENT *
- clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
-- struct timeval wait, int *sockp, u_int sendsz,
-+ struct timeval _wait, int *sockp, u_int sendsz,
- u_int recvsz)
- {
- CLIENT *cl;
-@@ -139,13 +128,7 @@
- if (cl == NULL || cu == NULL)
- {
- struct rpc_createerr *ce = &get_rpc_createerr ();
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("clntudp_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("clntudp_create: out of memory\n"), stderr);
-+ (void) fputs (_("clntudp_create: out of memory\n"), stderr);
- ce->cf_stat = RPC_SYSTEMERROR;
- ce->cf_error.re_errno = ENOMEM;
- goto fooy;
-@@ -166,7 +149,7 @@
- cl->cl_private = (caddr_t) cu;
- cu->cu_raddr = *raddr;
- cu->cu_rlen = sizeof (cu->cu_raddr);
-- cu->cu_wait = wait;
-+ cu->cu_wait = _wait;
- cu->cu_total.tv_sec = -1;
- cu->cu_total.tv_usec = -1;
- cu->cu_sendsz = sendsz;
-@@ -224,10 +207,10 @@
- libc_hidden_def(clntudp_bufcreate)
-
- CLIENT *
--clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version, struct timeval wait, int *sockp)
-+clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version, struct timeval _wait, int *sockp)
- {
-
-- return clntudp_bufcreate (raddr, program, version, wait, sockp,
-+ return clntudp_bufcreate (raddr, program, version, _wait, sockp,
- UDPMSGSIZE, UDPMSGSIZE);
- }
- libc_hidden_def(clntudp_create)
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_unix.c uClibc-git/libc/inet/rpc/clnt_unix.c
---- uClibc-0.9.33.2/libc/inet/rpc/clnt_unix.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/clnt_unix.c 2014-07-25 20:36:05.585328291 +0200
-@@ -46,24 +46,15 @@
- * Now go hang yourself.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <netdb.h>
- #include <errno.h>
- #include <stdio.h>
- #include <unistd.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <sys/uio.h>
- #include <sys/poll.h>
- #include <sys/socket.h>
- #include <rpc/pmap_clnt.h>
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
--
--
--extern u_long _create_xid (void) attribute_hidden;
-
- #define MCALL_MSG_SIZE 24
-
-@@ -128,13 +119,7 @@
- if (h == NULL || ct == NULL)
- {
- struct rpc_createerr *ce = &get_rpc_createerr ();
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("clntunix_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("clntunix_create: out of memory\n"), stderr);
-+ (void) fputs (_("clntunix_create: out of memory\n"), stderr);
- ce->cf_stat = RPC_SYSTEMERROR;
- ce->cf_error.re_errno = ENOMEM;
- goto fooy;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/create_xid.c uClibc-git/libc/inet/rpc/create_xid.c
---- uClibc-0.9.33.2/libc/inet/rpc/create_xid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/create_xid.c 2014-07-25 20:36:05.585328291 +0200
-@@ -13,17 +13,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define __FORCE_GLIBC
--#include <features.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <stdlib.h>
- #include <sys/time.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
-
-
- /* The RPC code is not threadsafe, but new code should be threadsafe. */
-@@ -34,7 +30,6 @@
- static smallint is_initialized;
- static struct drand48_data __rpc_lrand48_data;
-
--u_long _create_xid (void) attribute_hidden;
- u_long _create_xid (void)
- {
- long res;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/errqueue.h uClibc-git/libc/inet/rpc/errqueue.h
---- uClibc-0.9.33.2/libc/inet/rpc/errqueue.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/errqueue.h 2014-07-25 20:36:05.585328291 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Linux version. */
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/get_myaddress.c uClibc-git/libc/inet/rpc/get_myaddress.c
---- uClibc-0.9.33.2/libc/inet/rpc/get_myaddress.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/get_myaddress.c 2014-07-25 20:36:05.585328291 +0200
-@@ -44,6 +44,7 @@
- #include <sys/socket.h>
- #include <stdio.h>
- #include <unistd.h>
-+#include <libintl.h>
- #include <net/if.h>
- #include <sys/ioctl.h>
- /* Order of following two #includes reversed by roland@gnu */
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/getrpcent.c uClibc-git/libc/inet/rpc/getrpcent.c
---- uClibc-0.9.33.2/libc/inet/rpc/getrpcent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/getrpcent.c 2014-07-25 20:36:05.585328291 +0200
-@@ -33,8 +33,6 @@
- * Copyright (c) 1985 by Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <stdio.h>
- #include <string.h>
- #include <sys/types.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/getrpcport.c uClibc-git/libc/inet/rpc/getrpcport.c
---- uClibc-0.9.33.2/libc/inet/rpc/getrpcport.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/getrpcport.c 2014-07-25 20:36:05.585328291 +0200
-@@ -35,9 +35,6 @@
- * Copyright (c) 1985 by Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <alloca.h>
- #include <errno.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/Makefile.in uClibc-git/libc/inet/rpc/Makefile.in
---- uClibc-0.9.33.2/libc/inet/rpc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/Makefile.in 2014-07-25 20:36:05.581328269 +0200
-@@ -9,9 +9,8 @@
-
- CFLAGS-rpc := -fno-strict-aliasing
-
--ifneq ($(UCLIBC_HAS_FULL_RPC),y)
- # For now, only compile the stuff needed to do an NFS mount....
--CSRC:= authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
-+CSRC_NFS = authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
- clnt_perror.c clnt_simple.c clnt_tcp.c clnt_udp.c \
- create_xid.c getrpcent.c \
- pmap_clnt.c pm_getmaps.c pm_getport.c pmap_prot.c pmap_prot2.c \
-@@ -19,27 +18,23 @@
- rpc_prot.c rpc_thread.c rtime.c ruserpass.c sa_len.c \
- svc.c svc_auth.c svc_authux.c \
- xdr.c xdr_array.c xdr_mem.c xdr_rec.c xdr_reference.c
--endif
-
- INET_RPC_DIR:=$(top_srcdir)libc/inet/rpc
- INET_RPC_OUT:=$(top_builddir)libc/inet/rpc
-
--ifeq ($(UCLIBC_HAS_FULL_RPC),y)
--INET_RPC_SRC:=$(wildcard $(INET_RPC_DIR)/*.c)
--else
--INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC))
--endif
--# rpc_thread.oS is better, because the header adds unneeded references to __pthread_internal_tsd*
--INET_RPC_SRC:=$(filter-out $(INET_RPC_DIR)/rpc_thread.c,$(INET_RPC_SRC))
-+CSRC_ALL = $(notdir $(wildcard $(INET_RPC_DIR)/*.c))
-+CSRC-y := $(if $(UCLIBC_HAS_FULL_RPC),$(CSRC_ALL),$(CSRC_NFS))
-+# rpc_thread.oS is better, because the header adds unneeded references
-+# to __pthread_internal_tsd*
-+CSRC-y := $(filter-out rpc_thread.c,$(CSRC-y))
-
--INET_RPC_OBJ:=$(patsubst $(INET_RPC_DIR)/%.c,$(INET_RPC_OUT)/%.o,$(INET_RPC_SRC))
--
--libc-static-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OUT)/rpc_thread.o
--libc-shared-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OUT)/rpc_thread.oS
-+INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC-y))
-+INET_RPC_OBJ:=$(patsubst %.c,$(INET_RPC_OUT)/%.o,$(CSRC-y))
-
-+libc-static-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
-+libc-shared-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.oS
- libc-nomulti-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
--
--libc-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OBJ)
-+libc-$(UCLIBC_HAS_RPC) += $(INET_RPC_OBJ)
-
- objclean-y+=CLEAN_libc/inet/rpc
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pmap_clnt.c uClibc-git/libc/inet/rpc/pmap_clnt.c
---- uClibc-0.9.33.2/libc/inet/rpc/pmap_clnt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/pmap_clnt.c 2014-07-25 20:36:05.585328291 +0200
-@@ -34,9 +34,6 @@
- * Client interface to pmap rpc service.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <unistd.h>
- #include <net/if.h>
-@@ -44,7 +41,7 @@
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <rpc/pmap_prot.h>
- #include <rpc/pmap_clnt.h>
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pmap_rmt.c uClibc-git/libc/inet/rpc/pmap_rmt.c
---- uClibc-0.9.33.2/libc/inet/rpc/pmap_rmt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/pmap_rmt.c 2014-07-25 20:36:05.585328291 +0200
-@@ -39,12 +39,9 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <unistd.h>
- #include <string.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <rpc/pmap_prot.h>
- #include <rpc/pmap_clnt.h>
- #include <rpc/pmap_rmt.h>
-@@ -52,17 +49,12 @@
- #include <sys/socket.h>
- #include <stdio.h>
- #include <errno.h>
--#undef _POSIX_SOURCE /* Ultrix <sys/param.h> needs --roland@gnu */
- #include <sys/param.h> /* Ultrix needs before net/if --roland@gnu */
- #include <net/if.h>
- #include <sys/ioctl.h>
- #include <arpa/inet.h>
- #define MAX_BROADCAST_SIZE 1400
-
--
--
--extern u_long _create_xid (void) attribute_hidden;
--
- static const struct timeval timeout = {3, 0};
-
- /*
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pm_getmaps.c uClibc-git/libc/inet/rpc/pm_getmaps.c
---- uClibc-0.9.33.2/libc/inet/rpc/pm_getmaps.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/pm_getmaps.c 2014-07-25 20:36:05.585328291 +0200
-@@ -39,7 +39,7 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <rpc/pmap_prot.h>
- #include <rpc/pmap_clnt.h>
- #include <netdb.h>
-@@ -78,7 +78,7 @@
- }
- CLNT_DESTROY (client);
- }
-- /* (void)__close(_socket); CLNT_DESTROY already closed it */
-+ /* (void)close(_socket); CLNT_DESTROY already closed it */
- address->sin_port = 0;
- return head;
- }
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pm_getport.c uClibc-git/libc/inet/rpc/pm_getport.c
---- uClibc-0.9.33.2/libc/inet/rpc/pm_getport.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/pm_getport.c 2014-07-25 20:36:05.585328291 +0200
-@@ -65,7 +65,19 @@
- struct pmap parms;
-
- address->sin_port = htons (PMAPPORT);
-- client = clntudp_bufcreate (address, PMAPPROG,
-+ if (protocol == IPPROTO_TCP)
-+ {
-+ // glibc does this:
-+ ///* Don't need a reserved port to get ports from the portmapper. */
-+ //socket = __get_socket(address); // does socket(TCP),bind(),connect(address)
-+ //if (_socket != -1)
-+ // closeit = true;
-+ // do we need/want to do the same?
-+ client = clnttcp_create (address, PMAPPROG,
-+ PMAPVERS, &_socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
-+ }
-+ else
-+ client = clntudp_bufcreate (address, PMAPPROG,
- PMAPVERS, timeout, &_socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
- if (client != (CLIENT *) NULL)
- {
-@@ -87,7 +99,7 @@
- }
- CLNT_DESTROY (client);
- }
-- /* (void)__close(_socket); CLNT_DESTROY already closed it */
-+ /* (void)close(_socket); CLNT_DESTROY already closed it */
- address->sin_port = 0;
- return port;
- }
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rcmd.c uClibc-git/libc/inet/rpc/rcmd.c
---- uClibc-0.9.33.2/libc/inet/rpc/rcmd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rcmd.c 2014-07-25 20:36:05.585328291 +0200
-@@ -76,7 +76,6 @@
- #include <pwd.h>
- #include <errno.h>
- #include <stdio.h>
--#include <stdio_ext.h>
- #include <ctype.h>
- #include <string.h>
- #include <libintl.h>
-@@ -87,6 +86,11 @@
- #include <sys/uio.h>
- #include <bits/uClibc_alloc.h>
-
-+/* sigsetmask and sigblock are not provided anymore, until this file is corrected,
-+ * include the sources */
-+#include "../../signal/sigblock.c"
-+#include "../../signal/sigsetmask.c"
-+
-
- /* some forward declarations */
- static int __ivaliduser2(FILE *hostf, u_int32_t raddr,
-@@ -146,7 +150,7 @@
- pfd[1].events = POLLIN;
-
- *ahost = hp->h_name;
-- oldmask = sigblock(sigmask(SIGURG)); /* __sigblock */
-+ oldmask = sigblock(__sigmask(SIGURG)); /* sigblock */
- for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
- s = rresvport(&lport);
- if (s < 0) {
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rexec.c uClibc-git/libc/inet/rpc/rexec.c
---- uClibc-0.9.33.2/libc/inet/rpc/rexec.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rexec.c 2014-07-25 20:36:05.585328291 +0200
-@@ -27,8 +27,6 @@
- * SUCH DAMAGE.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <sys/types.h>
- #include <sys/socket.h>
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_cmsg.c uClibc-git/libc/inet/rpc/rpc_cmsg.c
---- uClibc-0.9.33.2/libc/inet/rpc/rpc_cmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rpc_cmsg.c 2014-07-25 20:36:05.585328291 +0200
-@@ -38,9 +38,6 @@
- *
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <string.h>
- #include <sys/param.h>
- #include <rpc/rpc.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_dtablesize.c uClibc-git/libc/inet/rpc/rpc_dtablesize.c
---- uClibc-0.9.33.2/libc/inet/rpc/rpc_dtablesize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rpc_dtablesize.c 2014-07-25 20:36:05.585328291 +0200
-@@ -31,10 +31,6 @@
- static char sccsid[] = "@(#)rpc_dtablesize.c 1.2 87/08/11 Copyr 1987 Sun Micro";
- #endif
-
--#define __FORCE_GLIBC
--#define __USE_BSD
--#include <features.h>
--
- #include <unistd.h>
- #include <rpc/clnt.h>
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_private.h uClibc-git/libc/inet/rpc/rpc_private.h
---- uClibc-0.9.33.2/libc/inet/rpc/rpc_private.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rpc_private.h 2014-07-25 20:36:05.585328291 +0200
-@@ -1,5 +1,7 @@
--#ifndef _RPC_RPC_H
-+#ifndef _RPC_PRIVATE_H
-+#define _RPC_PRIVATE_H
- #include <rpc/rpc.h>
-+#include <libintl.h>
-
- /* Now define the internal interfaces. */
- extern u_long _create_xid (void) attribute_hidden;
-@@ -12,14 +14,13 @@
- */
- #ifdef __UCLIBC_HAS_THREADS__
- #include <pthread.h>
-+#include <bits/libc-lock.h>
- struct rpc_thread_variables {
- fd_set svc_fdset_s; /* Global, rpc_common.c */
- struct rpc_createerr rpc_createerr_s; /* Global, rpc_common.c */
- struct pollfd *svc_pollfd_s; /* Global, rpc_common.c */
- int svc_max_pollfd_s; /* Global, rpc_common.c */
-
-- void *authnone_private_s; /* auth_none.c */
--
- void *clnt_perr_buf_s; /* clnt_perr.c */
-
- void *clntraw_private_s; /* clnt_raw.c */
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_prot.c uClibc-git/libc/inet/rpc/rpc_prot.c
---- uClibc-0.9.33.2/libc/inet/rpc/rpc_prot.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rpc_prot.c 2014-07-25 20:36:05.585328291 +0200
-@@ -44,9 +44,6 @@
- * routines are also in this program.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <sys/param.h>
-
- #include <rpc/rpc.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_thread.c uClibc-git/libc/inet/rpc/rpc_thread.c
---- uClibc-0.9.33.2/libc/inet/rpc/rpc_thread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rpc_thread.c 2014-07-25 20:36:05.585328291 +0200
-@@ -4,8 +4,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <stdio.h>
- #include <assert.h>
- #include "rpc_private.h"
-@@ -32,7 +30,6 @@
- __rpc_thread_svc_cleanup ();
- __rpc_thread_clnt_cleanup ();
- /*__rpc_thread_key_cleanup (); */
-- free (tvp->authnone_private_s);
- free (tvp->clnt_perr_buf_s);
- free (tvp->clntraw_private_s);
- free (tvp->svcraw_private_s);
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rtime.c uClibc-git/libc/inet/rpc/rtime.c
---- uClibc-0.9.33.2/libc/inet/rpc/rtime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/rtime.c 2014-07-25 20:36:05.585328291 +0200
-@@ -43,9 +43,6 @@
- * what unix uses.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <unistd.h>
- #include <rpc/rpc.h>
-@@ -150,4 +147,3 @@
- timep->tv_usec = 0;
- return 0;
- }
--libc_hidden_def (rtime)
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/ruserpass.c uClibc-git/libc/inet/rpc/ruserpass.c
---- uClibc-0.9.33.2/libc/inet/rpc/ruserpass.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/ruserpass.c 2014-07-25 20:36:05.585328291 +0200
-@@ -27,8 +27,6 @@
- * SUCH DAMAGE.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-
-@@ -37,13 +35,14 @@
- #include <errno.h>
- #include <netdb.h>
- #include <stdio.h>
--#include <stdio_ext.h>
-+#ifdef __UCLIBC_HAS_THREADS__
-+# include <stdio_ext.h>
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-+#include <libintl.h>
-
--
--#define _(X) (X)
- /* #include "ftp_var.h" */
-
- static int token (void);
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/sa_len.c uClibc-git/libc/inet/rpc/sa_len.c
---- uClibc-0.9.33.2/libc/inet/rpc/sa_len.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/sa_len.c 2014-07-25 20:36:05.585328291 +0200
-@@ -12,17 +12,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
--#include <netipx/ipx.h>
- #include <sys/un.h>
- #if 0
-+#include <netipx/ipx.h>
- #include <netash/ash.h>
- #include <netatalk/at.h>
- #include <netax25/ax25.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_auth.c uClibc-git/libc/inet/rpc/svc_auth.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_auth.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_auth.c 2014-07-25 20:36:05.585328291 +0200
-@@ -58,9 +58,9 @@
-
- static enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *);
- /* no authentication */
--extern enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
-+extern enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *) attribute_hidden;
- /* unix style (uid, gids) */
--extern enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
-+extern enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *) attribute_hidden;
- /* short hand unix style */
- #ifdef CONFIG_AUTH_DES
- extern enum auth_stat _svcauth_des (struct svc_req *, struct rpc_msg *);
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_authux.c uClibc-git/libc/inet/rpc/svc_authux.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_authux.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_authux.c 2014-07-25 20:36:05.585328291 +0200
-@@ -38,9 +38,6 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <string.h>
- #include <rpc/rpc.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc.c uClibc-git/libc/inet/rpc/svc.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc.c 2014-07-25 20:36:05.585328291 +0200
-@@ -36,9 +36,6 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <errno.h>
- #include <unistd.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_raw.c uClibc-git/libc/inet/rpc/svc_raw.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_raw.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_raw.c 2014-07-25 20:36:05.585328291 +0200
-@@ -40,8 +40,6 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include "rpc_private.h"
- #include <rpc/svc.h>
-
-@@ -69,7 +67,7 @@
- static bool_t svcraw_freeargs (SVCXPRT *, xdrproc_t, caddr_t);
- static void svcraw_destroy (SVCXPRT *);
-
--static struct xp_ops server_ops =
-+static const struct xp_ops server_ops =
- {
- svcraw_recv,
- svcraw_stat,
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_run.c uClibc-git/libc/inet/rpc/svc_run.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_run.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_run.c 2014-07-25 20:36:05.585328291 +0200
-@@ -31,13 +31,10 @@
- * Wait for input, call server program.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <errno.h>
- #include <unistd.h>
- #include <sys/poll.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
-
- /* used by svc_[max_]pollfd */
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_simple.c uClibc-git/libc/inet/rpc/svc_simple.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_simple.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_simple.c 2014-07-25 20:36:05.585328291 +0200
-@@ -38,9 +38,6 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
-@@ -49,13 +46,6 @@
- #include <sys/socket.h>
- #include <netdb.h>
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--# include <libio/iolibio.h>
--# define fputs(s, f) _IO_fputs (s, f)
--#endif
--
--
- struct proglst_
- {
- char *(*p_progname) (char *);
-@@ -127,12 +117,7 @@
- return 0;
-
- err_out:
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) __fwprintf (stderr, L"%s", buf);
-- else
--#endif
-- (void) fputs (buf, stderr);
-+ (void) fputs (buf, stderr);
- free (buf);
- return -1;
- }
-@@ -186,12 +171,7 @@
- return;
- }
- (void) asprintf (&buf, _("never registered prog %d\n"), prog);
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- __fwprintf (stderr, L"%s", buf);
-- else
--#endif
-- fputs (buf, stderr);
-+ fputs (buf, stderr);
- free (buf);
- exit (1);
- }
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_tcp.c uClibc-git/libc/inet/rpc/svc_tcp.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_tcp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_tcp.c 2014-07-25 20:36:05.585328291 +0200
-@@ -41,25 +41,15 @@
- * and a record/tcp stream.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <unistd.h>
- #include <string.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <sys/socket.h>
- #include <sys/poll.h>
- #include <errno.h>
- #include <stdlib.h>
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--# include <libio/iolibio.h>
--# define fputs(s, f) _IO_fputs (s, f)
--#endif
--
--
- /*
- * Ops vector for TCP/IP based rpc service handle
- */
-@@ -180,12 +170,7 @@
- xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
- if (r == NULL || xprt == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) __fwprintf (stderr, L"%s", _("svctcp_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("svctcp_create: out of memory\n"), stderr);
-+ (void) fputs (_("svctcp_create: out of memory\n"), stderr);
- mem_free (r, sizeof (*r));
- mem_free (xprt, sizeof (SVCXPRT));
- return NULL;
-@@ -225,13 +210,7 @@
- cd = (struct tcp_conn *) mem_alloc (sizeof (struct tcp_conn));
- if (xprt == (SVCXPRT *) NULL || cd == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) __fwprintf (stderr, L"%s",
-- _("svc_tcp: makefd_xprt: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
-+ (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
- mem_free (xprt, sizeof (SVCXPRT));
- mem_free (cd, sizeof (struct tcp_conn));
- return NULL;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_udp.c uClibc-git/libc/inet/rpc/svc_udp.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_udp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_udp.c 2014-07-25 20:36:05.589328311 +0200
-@@ -39,13 +39,10 @@
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <unistd.h>
- #include <string.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <sys/socket.h>
- #include <errno.h>
-
-@@ -53,13 +50,6 @@
- #include <sys/uio.h>
- #endif
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--# include <libio/iolibio.h>
--# define fputs(s, f) _IO_fputs (s, f)
--#endif
--
--
- #define rpc_buffer(xprt) ((xprt)->xp_p1)
- #ifndef MAX
- #define MAX(a, b) ((a > b) ? a : b)
-@@ -151,12 +141,7 @@
- buf = mem_alloc (((MAX (sendsz, recvsz) + 3) / 4) * 4);
- if (xprt == NULL || su == NULL || buf == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s", _("svcudp_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("svcudp_create: out of memory\n"), stderr);
-+ (void) fputs (_("svcudp_create: out of memory\n"), stderr);
- mem_free (xprt, sizeof (SVCXPRT));
- mem_free (su, sizeof (*su));
- mem_free (buf, ((MAX (sendsz, recvsz) + 3) / 4) * 4);
-@@ -177,13 +162,7 @@
- + sizeof(struct cmsghdr) + sizeof (struct in_pktinfo))
- > sizeof (xprt->xp_pad))
- {
--# ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("svcudp_create: xp_pad is too small for IP_PKTINFO\n"));
-- else
--# endif
-- (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
-+ (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
- stderr);
- return NULL;
- }
-@@ -378,16 +357,8 @@
-
- #define SPARSENESS 4 /* 75% sparse */
-
--#ifdef USE_IN_LIBIO
--# define CACHE_PERROR(msg) \
-- if (_IO_fwide (stderr, 0) > 0) \
-- (void) __fwprintf(stderr, L"%s\n", msg); \
-- else \
-- (void) fprintf(stderr, "%s\n", msg)
--#else
--# define CACHE_PERROR(msg) \
-+#define CACHE_PERROR(msg) \
- (void) fprintf(stderr,"%s\n", msg)
--#endif
-
- #define ALLOC(type, size) \
- (type *) mem_alloc((unsigned) (sizeof(type) * (size)))
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_unix.c uClibc-git/libc/inet/rpc/svc_unix.c
---- uClibc-0.9.33.2/libc/inet/rpc/svc_unix.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/svc_unix.c 2014-07-25 20:36:05.589328311 +0200
-@@ -37,13 +37,10 @@
- * and a record/unix stream.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <unistd.h>
- #include <string.h>
--#include <rpc/rpc.h>
-+#include "rpc_private.h"
- #include <rpc/svc.h>
- #include <sys/socket.h>
- #include <sys/uio.h>
-@@ -51,11 +48,6 @@
- #include <errno.h>
- #include <stdlib.h>
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
--
--
- /*
- * Ops vector for AF_UNIX based rpc service handle
- */
-@@ -176,12 +168,7 @@
- xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
- if (r == NULL || xprt == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- __fwprintf (stderr, L"%s", _("svcunix_create: out of memory\n"));
-- else
--#endif
-- fputs (_("svcunix_create: out of memory\n"), stderr);
-+ fputs (_("svcunix_create: out of memory\n"), stderr);
- mem_free (r, sizeof (*r));
- mem_free (xprt, sizeof (SVCXPRT));
- return NULL;
-@@ -221,13 +208,7 @@
- cd = (struct unix_conn *) mem_alloc (sizeof (struct unix_conn));
- if (xprt == (SVCXPRT *) NULL || cd == (struct unix_conn *) NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) __fwprintf (stderr, L"%s",
-- _("svc_unix: makefd_xprt: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
-+ (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
- mem_free (xprt, sizeof (SVCXPRT));
- mem_free (cd, sizeof (struct unix_conn));
- return NULL;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_array.c uClibc-git/libc/inet/rpc/xdr_array.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_array.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_array.c 2014-07-25 20:36:05.589328311 +0200
-@@ -40,23 +40,15 @@
- * arrays. See xdr.h for more info on the interface to xdr.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <string.h>
- #include <rpc/types.h>
- #include <rpc/xdr.h>
- #include <limits.h>
--
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
--
-+#include <libintl.h>
-
- #define LASTUNSIGNED ((u_int)0-1)
-
--
- /*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
-@@ -102,13 +94,7 @@
- *addrp = target = mem_alloc (nodesize);
- if (target == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("xdr_array: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("xdr_array: out of memory\n"), stderr);
-+ (void) fputs (_("xdr_array: out of memory\n"), stderr);
- return FALSE;
- }
- memset (target, 0, nodesize);
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr.c uClibc-git/libc/inet/rpc/xdr.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr.c 2014-07-25 20:36:05.589328311 +0200
-@@ -41,21 +41,14 @@
- * xdr.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <limits.h>
- #include <string.h>
-+#include <libintl.h>
-
- #include <rpc/types.h>
- #include <rpc/xdr.h>
-
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--#endif
--
--
- /*
- * constants specific to the xdr "protocol"
- */
-@@ -564,12 +557,7 @@
- }
- if (sp == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s", _("xdr_bytes: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
-+ (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
- return FALSE;
- }
- /* fall into ... */
-@@ -706,13 +694,7 @@
- *cpp = sp = (char *) mem_alloc (nodesize);
- if (sp == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("xdr_string: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("xdr_string: out of memory\n"), stderr);
-+ (void) fputs (_("xdr_string: out of memory\n"), stderr);
- return FALSE;
- }
- sp[size] = 0;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_float.c uClibc-git/libc/inet/rpc/xdr_float.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_float.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_float.c 2014-07-25 20:36:05.589328311 +0200
-@@ -41,9 +41,6 @@
- * xdr.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <endian.h>
-
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_intXX_t.c uClibc-git/libc/inet/rpc/xdr_intXX_t.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_intXX_t.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_intXX_t.c 2014-07-25 20:36:05.589328311 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <rpc/types.h>
- #include <rpc/xdr.h>
-@@ -47,6 +46,7 @@
- return FALSE;
- }
- }
-+strong_alias_untyped(xdr_int64_t,xdr_quad_t)
-
- /* XDR 64bit unsigned integers */
- bool_t
-@@ -75,6 +75,7 @@
- return FALSE;
- }
- }
-+strong_alias_untyped(xdr_uint64_t,xdr_u_quad_t)
-
- /* XDR 32bit integers */
- bool_t
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_mem.c uClibc-git/libc/inet/rpc/xdr_mem.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_mem.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_mem.c 2014-07-25 20:36:05.589328311 +0200
-@@ -77,9 +77,7 @@
- xdrmem_create (XDR *xdrs, const caddr_t addr, u_int size, enum xdr_op op)
- {
- xdrs->x_op = op;
-- /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-- is not `const'. */
-- xdrs->x_ops = (struct xdr_ops *) &xdrmem_ops;
-+ xdrs->x_ops = &xdrmem_ops;
- xdrs->x_private = xdrs->x_base = addr;
- xdrs->x_handy = size;
- }
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_rec.c uClibc-git/libc/inet/rpc/xdr_rec.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_rec.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_rec.c 2014-07-25 20:36:05.589328311 +0200
-@@ -44,21 +44,10 @@
- * The other 31 bits encode the byte length of the fragment.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
--
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
--#include <rpc/rpc.h>
--
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--# include <libio/iolibio.h>
--# define fputs(s, f) _IO_fputs (s, f)
--#endif
--
-+#include "rpc_private.h"
-
- static bool_t xdrrec_getbytes (XDR *, caddr_t, u_int);
- static bool_t xdrrec_putbytes (XDR *, const char *, u_int);
-@@ -165,12 +154,7 @@
-
- if (rstrm == NULL || buf == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s", _("xdrrec_create: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
-+ (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
- mem_free (rstrm, sizeof (RECSTREAM));
- mem_free (buf, sendsize + recvsize + BYTES_PER_XDR_UNIT);
- /*
-@@ -193,9 +177,7 @@
- /*
- * now the rest ...
- */
-- /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-- is not `const'. */
-- xdrs->x_ops = (struct xdr_ops *) &xdrrec_ops;
-+ xdrs->x_ops = &xdrrec_ops;
- xdrs->x_private = (caddr_t) rstrm;
- rstrm->tcp_handle = tcp_handle;
- rstrm->readit = readit;
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_reference.c uClibc-git/libc/inet/rpc/xdr_reference.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_reference.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_reference.c 2014-07-25 20:36:05.589328311 +0200
-@@ -40,20 +40,11 @@
- * "pointers". See xdr.h for more info on the interface to xdr.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
- #include <string.h>
- #include <rpc/types.h>
- #include <rpc/xdr.h>
--
--#ifdef USE_IN_LIBIO
--# include <wchar.h>
--# include <libio/iolibio.h>
--# define fputs(s, f) _IO_fputs (s, f)
--#endif
--
-+#include <libintl.h>
-
- #define LASTUNSIGNED ((u_int)0-1)
-
-@@ -82,13 +73,7 @@
- *pp = loc = (caddr_t) mem_alloc (size);
- if (loc == NULL)
- {
--#ifdef USE_IN_LIBIO
-- if (_IO_fwide (stderr, 0) > 0)
-- (void) fwprintf (stderr, L"%s",
-- _("xdr_reference: out of memory\n"));
-- else
--#endif
-- (void) fputs (_("xdr_reference: out of memory\n"), stderr);
-+ (void) fputs (_("xdr_reference: out of memory\n"), stderr);
- return FALSE;
- }
- memset (loc, 0, (int) size);
-diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_stdio.c uClibc-git/libc/inet/rpc/xdr_stdio.c
---- uClibc-0.9.33.2/libc/inet/rpc/xdr_stdio.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/rpc/xdr_stdio.c 2014-07-25 20:36:05.589328311 +0200
-@@ -41,15 +41,6 @@
- #include <stdio.h>
- #include <rpc/xdr.h>
-
--#ifdef USE_IN_LIBIO
--# include <libio/iolibio.h>
--# define fflush(s) _IO_fflush (s)
--# define fread(p, m, n, s) _IO_fread (p, m, n, s)
--# define ftell(s) _IO_ftell (s)
--# define fwrite(p, m, n, s) _IO_fwrite (p, m, n, s)
--#endif
--
--
- static bool_t xdrstdio_getlong (XDR *, long *);
- static bool_t xdrstdio_putlong (XDR *, const long *);
- static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-@@ -87,9 +78,7 @@
- xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
- {
- xdrs->x_op = op;
-- /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-- is not `const'. */
-- xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-+ xdrs->x_ops = &xdrstdio_ops;
- xdrs->x_private = (caddr_t) file;
- xdrs->x_handy = 0;
- xdrs->x_base = 0;
-diff -Nur uClibc-0.9.33.2/libc/inet/socketcalls.c uClibc-git/libc/inet/socketcalls.c
---- uClibc-0.9.33.2/libc/inet/socketcalls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/inet/socketcalls.c 2014-07-25 20:36:05.589328311 +0200
-@@ -4,15 +4,12 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
--#include <errno.h>
--#include <syscall.h>
-+#include <stddef.h>
-+#include <sys/syscall.h>
- #include <sys/socket.h>
-+#include <cancel.h>
-
- #ifdef __NR_socketcall
--extern int __socketcall(int call, unsigned long *args) attribute_hidden;
--
- /* Various socketcall numbers */
- #define SYS_SOCKET 1
- #define SYS_BIND 2
-@@ -34,53 +31,24 @@
- #define SYS_ACCEPT4 18
- #endif
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#include <pthreadP.h>
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
- #ifdef L_accept
--extern __typeof(accept) __libc_accept;
--#ifdef __NR_accept
--#define __NR___sys_accept __NR_accept
--static
--_syscall3(int, __sys_accept, int, call, struct sockaddr *, addr, socklen_t *,addrlen)
--int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_accept(s, addr, addrlen);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_accept(s, addr, addrlen);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
-+static int __NC(accept)(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
- {
-+# ifdef __NR_accept
-+ return INLINE_SYSCALL(accept, 3, sockfd, addr, addrlen);
-+# else
- unsigned long args[3];
-
-- args[0] = s;
-+ args[0] = sockfd;
- args[1] = (unsigned long) addr;
- args[2] = (unsigned long) addrlen;
-
-- if (SINGLE_THREAD_P)
-- return __socketcall(SYS_ACCEPT, args);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_ACCEPT, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
-+ return __socketcall(SYS_ACCEPT, args);
-+# endif
- }
--#endif
--weak_alias(__libc_accept,accept)
--libc_hidden_weak(accept)
-+CANCELLABLE_SYSCALL(int, accept, (int sockfd, struct sockaddr *addr, socklen_t *addrlen),
-+ (sockfd, addr, addrlen))
-+lt_libc_hidden(accept)
- #endif
-
- #ifdef L_accept4
-@@ -124,104 +92,81 @@
- #endif
-
- #ifdef L_bind
--#ifdef __NR_bind
--_syscall3(int, bind, int, sockfd, const struct sockaddr *, myaddr, socklen_t, addrlen)
--#elif defined(__NR_socketcall)
- int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
- {
-+# ifdef __NR_bind
-+ return INLINE_SYSCALL(bind, 3, sockfd, myaddr, addrlen);
-+# else
- unsigned long args[3];
-
- args[0] = sockfd;
- args[1] = (unsigned long) myaddr;
- args[2] = addrlen;
- return __socketcall(SYS_BIND, args);
-+# endif
- }
--#endif
- libc_hidden_def(bind)
- #endif
-
- #ifdef L_connect
--extern __typeof(connect) __libc_connect;
--#ifdef __NR_connect
--#define __NR___sys_connect __NR_connect
--static
--_syscall3(int, __sys_connect, int, sockfd, const struct sockaddr *, saddr, socklen_t, addrlen)
--int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_connect(sockfd, saddr, addrlen);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_connect(sockfd, saddr, addrlen);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
-+static int __NC(connect)(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
- {
-+# ifdef __NR_connect
-+ return INLINE_SYSCALL(connect, 3, sockfd, saddr, addrlen);
-+# else
- unsigned long args[3];
-
- args[0] = sockfd;
- args[1] = (unsigned long) saddr;
- args[2] = addrlen;
--
-- if (SINGLE_THREAD_P)
-- return __socketcall(SYS_CONNECT, args);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_CONNECT, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
-+ return __socketcall(SYS_CONNECT, args);
-+# endif
- }
--#endif
--weak_alias(__libc_connect,connect)
--libc_hidden_weak(connect)
-+CANCELLABLE_SYSCALL(int, connect, (int sockfd, const struct sockaddr *saddr, socklen_t addrlen),
-+ (sockfd, saddr, addrlen))
-+lt_libc_hidden(connect)
- #endif
-
- #ifdef L_getpeername
--#ifdef __NR_getpeername
--_syscall3(int, getpeername, int, sockfd, struct sockaddr *, addr, socklen_t *,paddrlen)
--#elif defined(__NR_socketcall)
--int getpeername(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
-+int getpeername(int sockfd, struct sockaddr *addr, socklen_t *paddrlen)
- {
-+# ifdef __NR_getpeername
-+ return INLINE_SYSCALL(getpeername, 3, sockfd, addr, paddrlen);
-+# else
- unsigned long args[3];
-
- args[0] = sockfd;
- args[1] = (unsigned long) addr;
- args[2] = (unsigned long) paddrlen;
- return __socketcall(SYS_GETPEERNAME, args);
-+# endif
- }
- #endif
--#endif
-
- #ifdef L_getsockname
--#ifdef __NR_getsockname
--_syscall3(int, getsockname, int, sockfd, struct sockaddr *, addr, socklen_t *,paddrlen)
--#elif defined(__NR_socketcall)
- int getsockname(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
- {
-+# ifdef __NR_getsockname
-+ return INLINE_SYSCALL(getsockname, 3, sockfd, addr, paddrlen);
-+# else
- unsigned long args[3];
-
- args[0] = sockfd;
- args[1] = (unsigned long) addr;
- args[2] = (unsigned long) paddrlen;
- return __socketcall(SYS_GETSOCKNAME, args);
-+# endif
- }
--#endif
- libc_hidden_def(getsockname)
- #endif
-
- #ifdef L_getsockopt
--#ifdef __NR_getsockopt
--_syscall5(int, getsockopt, int, fd, int, level, int, optname, __ptr_t, optval, socklen_t *, optlen)
--#elif defined(__NR_socketcall)
--int getsockopt(int fd, int level, int optname, __ptr_t optval,
-- socklen_t * optlen)
-+int getsockopt(int fd, int level, int optname, void *optval,
-+ socklen_t *optlen)
- {
-+# ifdef __NR_getsockopt
-+ return INLINE_SYSCALL(getsockopt, 5, fd, level, optname, optval, optlen);
-+# else
- unsigned long args[5];
-
- args[0] = fd;
-@@ -230,101 +175,56 @@
- args[3] = (unsigned long) optval;
- args[4] = (unsigned long) optlen;
- return (__socketcall(SYS_GETSOCKOPT, args));
-+# endif
- }
- #endif
--#endif
-
- #ifdef L_listen
--#ifdef __NR_listen
--_syscall2(int, listen, int, sockfd, int, backlog)
--#elif defined(__NR_socketcall)
- int listen(int sockfd, int backlog)
- {
-+# ifdef __NR_listen
-+ return INLINE_SYSCALL(listen, 2, sockfd, backlog);
-+# else
- unsigned long args[2];
-
- args[0] = sockfd;
- args[1] = backlog;
- return __socketcall(SYS_LISTEN, args);
-+# endif
- }
--#endif
- libc_hidden_def(listen)
- #endif
-
- #ifdef L_recv
--extern __typeof(recv) __libc_recv;
--#ifdef __NR_recv
--#define __NR___sys_recv __NR_recv
--static
--_syscall4(ssize_t, __sys_recv, int, sockfd, __ptr_t, buffer, size_t, len,
-- int, flags)
--ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_recv(sockfd, buffer, len, flags);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_recv(sockfd, buffer, len, flags);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--/* recv, recvfrom added by bir7@leland.stanford.edu */
--ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
-+static ssize_t __NC(recv)(int sockfd, void *buffer, size_t len, int flags)
- {
-+# ifdef __NR_recv
-+ return (ssize_t)INLINE_SYSCALL(recv, 4, sockfd, buffer, len, flags);
-+# elif defined __NR_recvfrom && defined _syscall6
-+ return __NC(recvfrom)(sockfd, buffer, len, flags, NULL, NULL);
-+# else
- unsigned long args[4];
-
- args[0] = sockfd;
- args[1] = (unsigned long) buffer;
- args[2] = len;
- args[3] = flags;
--
-- if (SINGLE_THREAD_P)
-- return (__socketcall(SYS_RECV, args));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_RECV, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_recvfrom)
--ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
--{
-- return (recvfrom(sockfd, buffer, len, flags, NULL, NULL));
-+ return (ssize_t)__socketcall(SYS_RECV, args);
-+# endif
- }
--#endif
--weak_alias(__libc_recv,recv)
--libc_hidden_weak(recv)
-+CANCELLABLE_SYSCALL(ssize_t, recv, (int sockfd, void *buffer, size_t len, int flags),
-+ (sockfd, buffer, len, flags))
-+lt_libc_hidden(recv)
- #endif
-
- #ifdef L_recvfrom
--extern __typeof(recvfrom) __libc_recvfrom;
--#ifdef __NR_recvfrom
--#define __NR___sys_recvfrom __NR_recvfrom
--static
--_syscall6(ssize_t, __sys_recvfrom, int, sockfd, __ptr_t, buffer, size_t, len,
-- int, flags, struct sockaddr *, to, socklen_t *, tolen)
--ssize_t __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
-- struct sockaddr *to, socklen_t * tolen)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_recvfrom(sockfd, buffer, len, flags, to, tolen);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_recvfrom(sockfd, buffer, len, flags, to, tolen);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--/* recv, recvfrom added by bir7@leland.stanford.edu */
--ssize_t __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
-- struct sockaddr *to, socklen_t * tolen)
-+ssize_t __NC(recvfrom)(int sockfd, void *buffer, size_t len, int flags,
-+ struct sockaddr *to, socklen_t *tolen)
- {
-+# if defined __NR_recvfrom && defined _syscall6
-+ return (ssize_t)INLINE_SYSCALL(recvfrom, 6, sockfd, buffer, len,
-+ flags, to, tolen);
-+# else
- unsigned long args[6];
-
- args[0] = sockfd;
-@@ -333,180 +233,82 @@
- args[3] = flags;
- args[4] = (unsigned long) to;
- args[5] = (unsigned long) tolen;
--
-- if (SINGLE_THREAD_P)
-- return (__socketcall(SYS_RECVFROM, args));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_RECVFROM, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
-+ return (ssize_t)__socketcall(SYS_RECVFROM, args);
-+# endif
- }
--#endif
--weak_alias(__libc_recvfrom,recvfrom)
--libc_hidden_weak(recvfrom)
-+CANCELLABLE_SYSCALL(ssize_t, recvfrom, (int sockfd, void *buffer, size_t len,
-+ int flags, struct sockaddr *to, socklen_t *tolen),
-+ (sockfd, buffer, len, flags, to, tolen))
-+lt_libc_hidden(recvfrom)
- #endif
-
- #ifdef L_recvmsg
--extern __typeof(recvmsg) __libc_recvmsg;
--#ifdef __NR_recvmsg
--#define __NR___sys_recvmsg __NR_recvmsg
--static
--_syscall3(ssize_t, __sys_recvmsg, int, sockfd, struct msghdr *, msg, int, flags)
--ssize_t __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_recvmsg(sockfd, msg, flags);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_recvmsg(sockfd, msg, flags);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--ssize_t __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
-+static ssize_t __NC(recvmsg)(int sockfd, struct msghdr *msg, int flags)
- {
-+# ifdef __NR_recvmsg
-+ return (ssize_t)INLINE_SYSCALL(recvmsg, 3, sockfd, msg, flags);
-+# else
- unsigned long args[3];
-
- args[0] = sockfd;
- args[1] = (unsigned long) msg;
- args[2] = flags;
--
-- if (SINGLE_THREAD_P)
-- return (__socketcall(SYS_RECVMSG, args));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_RECVMSG, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
-+ return (ssize_t)__socketcall(SYS_RECVMSG, args);
-+# endif
- }
--#endif
--weak_alias(__libc_recvmsg,recvmsg)
--libc_hidden_weak(recvmsg)
-+CANCELLABLE_SYSCALL(ssize_t, recvmsg, (int sockfd, struct msghdr *msg, int flags),
-+ (sockfd, msg, flags))
-+lt_libc_hidden(recvmsg)
- #endif
-
- #ifdef L_send
--extern __typeof(send) __libc_send;
--#ifdef __NR_send
--#define __NR___sys_send __NR_send
--static
--_syscall4(ssize_t, __sys_send, int, sockfd, const void *, buffer, size_t, len, int, flags)
--ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_send(sockfd, buffer, len, flags);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_send(sockfd, buffer, len, flags);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--/* send, sendto added by bir7@leland.stanford.edu */
--ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
-+static ssize_t __NC(send)(int sockfd, const void *buffer, size_t len, int flags)
- {
-+# ifdef __NR_send
-+ return (ssize_t)INLINE_SYSCALL(send, 4, sockfd, buffer, len, flags);
-+# elif defined __NR_sendto && defined _syscall6
-+ return __NC(sendto)(sockfd, buffer, len, flags, NULL, 0);
-+# else
- unsigned long args[4];
-
- args[0] = sockfd;
- args[1] = (unsigned long) buffer;
- args[2] = len;
- args[3] = flags;
--
-- if (SINGLE_THREAD_P)
-- return (__socketcall(SYS_SEND, args));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_SEND, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--
--#elif defined(__NR_sendto)
--ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
--{
-- return (sendto(sockfd, buffer, len, flags, NULL, 0));
-+ return (ssize_t)__socketcall(SYS_SEND, args);
-+# endif
- }
--#endif
--weak_alias(__libc_send,send)
--libc_hidden_weak(send)
-+CANCELLABLE_SYSCALL(ssize_t, send, (int sockfd, const void *buffer, size_t len, int flags),
-+ (sockfd, buffer, len, flags))
-+lt_libc_hidden(send)
- #endif
-
- #ifdef L_sendmsg
--extern __typeof(sendmsg) __libc_sendmsg;
--#ifdef __NR_sendmsg
--#define __NR___sys_sendmsg __NR_sendmsg
--static
--_syscall3(ssize_t, __sys_sendmsg, int, sockfd, const struct msghdr *, msg, int, flags)
--ssize_t __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_sendmsg(sockfd, msg, flags);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_sendmsg(sockfd, msg, flags);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--ssize_t __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
-+static ssize_t __NC(sendmsg)(int sockfd, const struct msghdr *msg, int flags)
- {
-+# ifdef __NR_sendmsg
-+ return (ssize_t)INLINE_SYSCALL(sendmsg, 3, sockfd, msg, flags);
-+# else
- unsigned long args[3];
-
- args[0] = sockfd;
- args[1] = (unsigned long) msg;
- args[2] = flags;
--
-- if (SINGLE_THREAD_P)
-- return (__socketcall(SYS_SENDMSG, args));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_SENDMSG, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
-+ return (ssize_t)__socketcall(SYS_SENDMSG, args);
-+# endif
- }
--#endif
--weak_alias(__libc_sendmsg,sendmsg)
--libc_hidden_weak(sendmsg)
-+CANCELLABLE_SYSCALL(ssize_t, sendmsg, (int sockfd, const struct msghdr *msg, int flags),
-+ (sockfd, msg, flags))
-+lt_libc_hidden(sendmsg)
- #endif
-
- #ifdef L_sendto
--extern __typeof(sendto) __libc_sendto;
--#ifdef __NR_sendto
--#define __NR___sys_sendto __NR_sendto
--static
--_syscall6(ssize_t, __sys_sendto, int, sockfd, const void *, buffer,
-- size_t, len, int, flags, const struct sockaddr *, to, socklen_t, tolen)
--ssize_t __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,const struct sockaddr *to, socklen_t tolen)
--{
-- if (SINGLE_THREAD_P)
-- return __sys_sendto(sockfd, buffer, len, flags, to, tolen);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __sys_sendto(sockfd, buffer, len, flags, to, tolen);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--#elif defined(__NR_socketcall)
--/* send, sendto added by bir7@leland.stanford.edu */
--ssize_t __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,
-- const struct sockaddr *to, socklen_t tolen)
-+ssize_t __NC(sendto)(int sockfd, const void *buffer, size_t len, int flags,
-+ const struct sockaddr *to, socklen_t tolen)
- {
-+# if defined __NR_sendto && defined _syscall6
-+ return (ssize_t)INLINE_SYSCALL(sendto, 6, sockfd, buffer, len, flags, to, tolen);
-+# else
- unsigned long args[6];
-
- args[0] = sockfd;
-@@ -515,30 +317,21 @@
- args[3] = flags;
- args[4] = (unsigned long) to;
- args[5] = tolen;
--
-- if (SINGLE_THREAD_P)
-- return (__socketcall(SYS_SENDTO, args));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __socketcall(SYS_SENDTO, args);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
-+ return (ssize_t)__socketcall(SYS_SENDTO, args);
-+# endif
- }
--#endif
--weak_alias(__libc_sendto,sendto)
--libc_hidden_weak(sendto)
-+CANCELLABLE_SYSCALL(ssize_t, sendto, (int sockfd, const void *buffer, size_t len,
-+ int flags, const struct sockaddr *to, socklen_t tolen),
-+ (sockfd, buffer, len, flags, to, tolen))
-+lt_libc_hidden(sendto)
- #endif
-
- #ifdef L_setsockopt
--#ifdef __NR_setsockopt
--_syscall5(int, setsockopt, int, fd, int, level, int, optname, const void *, optval, socklen_t, optlen)
--#elif defined(__NR_socketcall)
--/* [sg]etsockoptions by bir7@leland.stanford.edu */
--int setsockopt(int fd, int level, int optname, const void *optval,
-- socklen_t optlen)
-+int setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen)
- {
-+# ifdef __NR_setsockopt
-+ return INLINE_SYSCALL(setsockopt, 5, fd, level, optname, optval, optlen);
-+# else
- unsigned long args[5];
-
- args[0] = fd;
-@@ -546,51 +339,50 @@
- args[2] = optname;
- args[3] = (unsigned long) optval;
- args[4] = optlen;
-- return (__socketcall(SYS_SETSOCKOPT, args));
-+ return __socketcall(SYS_SETSOCKOPT, args);
-+# endif
- }
--#endif
- libc_hidden_def(setsockopt)
- #endif
-
- #ifdef L_shutdown
--#ifdef __NR_shutdown
--_syscall2(int, shutdown, int, sockfd, int, how)
--#elif defined(__NR_socketcall)
--/* shutdown by bir7@leland.stanford.edu */
- int shutdown(int sockfd, int how)
- {
-+# ifdef __NR_shutdown
-+ return INLINE_SYSCALL(shutdown, 2, sockfd, how);
-+# else
- unsigned long args[2];
-
- args[0] = sockfd;
- args[1] = how;
-- return (__socketcall(SYS_SHUTDOWN, args));
-+ return __socketcall(SYS_SHUTDOWN, args);
-+# endif
- }
- #endif
--#endif
-
- #ifdef L_socket
--#ifdef __NR_socket
--_syscall3(int, socket, int, family, int, type, int, protocol)
--#elif defined(__NR_socketcall)
- int socket(int family, int type, int protocol)
- {
-+# ifdef __NR_socket
-+ return INLINE_SYSCALL(socket, 3, family, type, protocol);
-+# else
- unsigned long args[3];
-
- args[0] = family;
- args[1] = type;
- args[2] = (unsigned long) protocol;
- return __socketcall(SYS_SOCKET, args);
-+# endif
- }
--#endif
- libc_hidden_def(socket)
- #endif
-
- #ifdef L_socketpair
--#ifdef __NR_socketpair
--_syscall4(int, socketpair, int, family, int, type, int, protocol, int *, sockvec)
--#elif defined(__NR_socketcall)
- int socketpair(int family, int type, int protocol, int sockvec[2])
- {
-+# ifdef __NR_socketpair
-+ return INLINE_SYSCALL(socketpair, 4, family, type, protocol, sockvec);
-+# else
- unsigned long args[4];
-
- args[0] = family;
-@@ -598,7 +390,6 @@
- args[2] = protocol;
- args[3] = (unsigned long) sockvec;
- return __socketcall(SYS_SOCKETPAIR, args);
-+# endif
- }
- #endif
--#endif
--
-diff -Nur uClibc-0.9.33.2/libc/misc/assert/__assert.c uClibc-git/libc/misc/assert/__assert.c
---- uClibc-0.9.33.2/libc/misc/assert/__assert.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/assert/__assert.c 2014-07-25 20:36:05.609328415 +0200
-@@ -13,8 +13,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Oct 28, 2002
-diff -Nur uClibc-0.9.33.2/libc/misc/assert/Makefile.in uClibc-git/libc/misc/assert/Makefile.in
---- uClibc-0.9.33.2/libc/misc/assert/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/assert/Makefile.in 2014-07-25 20:36:05.609328415 +0200
-@@ -7,13 +7,13 @@
-
- subdirs += libc/misc/assert
-
--CSRC := __assert.c
-+CSRC-y := __assert.c
-
- MISC_ASSERT_DIR := $(top_srcdir)libc/misc/assert
- MISC_ASSERT_OUT := $(top_builddir)libc/misc/assert
-
--MISC_ASSERT_SRC := $(MISC_ASSERT_DIR)/__assert.c
--MISC_ASSERT_OBJ := $(MISC_ASSERT_OUT)/__assert.o
-+MISC_ASSERT_SRC := $(patsubst %.c,$(MISC_ASSERT_DIR)/%.c,$(CSRC-y))
-+MISC_ASSERT_OBJ := $(patsubst %.c,$(MISC_ASSERT_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_ASSERT_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/ctype/ctype.c uClibc-git/libc/misc/ctype/ctype.c
---- uClibc-0.9.33.2/libc/misc/ctype/ctype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ctype/ctype.c 2014-07-25 20:36:05.629328521 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -36,10 +36,6 @@
- #include <assert.h>
- #include <locale.h>
-
--#ifdef __UCLIBC_HAS_XLOCALE__
--# include <xlocale.h>
--#endif
--
- /**********************************************************************/
- #ifdef __UCLIBC_HAS_CTYPE_TABLES__
-
-diff -Nur uClibc-0.9.33.2/libc/misc/ctype/Makefile.in uClibc-git/libc/misc/ctype/Makefile.in
---- uClibc-0.9.33.2/libc/misc/ctype/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ctype/Makefile.in 2014-07-25 20:36:05.625328499 +0200
-@@ -8,31 +8,25 @@
- subdirs += libc/misc/ctype
-
- # multi source ctype.c
--COM_SRC := \
-+COM_SRC-y := \
- isalnum.c isalpha.c iscntrl.c isdigit.c \
- isgraph.c islower.c isprint.c ispunct.c isspace.c \
- isupper.c isxdigit.c tolower.c toupper.c \
- isblank.c
--ifeq ($(UCLIBC_SUSV4_LEGACY),y)
--COM_SRC += isascii.c toascii.c
--endif
--CSRC := $(COM_SRC)
-+COM_SRC-$(UCLIBC_SUSV4_LEGACY) += isascii.c toascii.c
-+CSRC-y := $(COM_SRC-y)
-
--ifeq ($(UCLIBC_HAS_CTYPE_TABLES),y)
--CSRC += __C_ctype_b.c __C_ctype_tolower.c __C_ctype_toupper.c \
-+CSRC-$(UCLIBC_HAS_CTYPE_TABLES) += \
-+ __C_ctype_b.c __C_ctype_tolower.c __C_ctype_toupper.c \
- __ctype_b_loc.c __ctype_tolower_loc.c __ctype_toupper_loc.c \
- __ctype_assert.c isctype.c
--endif
--
--ifeq ($(UCLIBC_HAS_XLOCALE),y)
--CSRC += $(patsubst %.c,%_l.c,$(COM_SRC))
--endif
-+CSRC-$(UCLIBC_HAS_XLOCALE) += $(patsubst %.c,%_l.c,$(COM_SRC-y))
-
- MISC_CTYPE_DIR := $(top_srcdir)libc/misc/ctype
- MISC_CTYPE_OUT := $(top_builddir)libc/misc/ctype
-
--MISC_CTYPE_SRC := $(patsubst %.c,$(MISC_CTYPE_DIR)/%.c,$(CSRC))
--MISC_CTYPE_OBJ := $(patsubst %.c,$(MISC_CTYPE_OUT)/%.o,$(CSRC))
-+MISC_CTYPE_SRC := $(patsubst %.c,$(MISC_CTYPE_DIR)/%.c,$(CSRC-y))
-+MISC_CTYPE_OBJ := $(patsubst %.c,$(MISC_CTYPE_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_CTYPE_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/alphasort64.c uClibc-git/libc/misc/dirent/alphasort64.c
---- uClibc-0.9.33.2/libc/misc/dirent/alphasort64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/alphasort64.c 2014-07-25 20:36:05.641328583 +0200
-@@ -5,12 +5,14 @@
- */
-
- #include <_lfs_64.h>
--
- #include <dirent.h>
--#include <string.h>
--#include "dirstream.h"
-+
-+#if __WORDSIZE != 64
-+# include <string.h>
-+# include "dirstream.h"
-
- int alphasort64(const struct dirent64 **a, const struct dirent64 **b)
- {
-- return strcmp((*a)->d_name, (*b)->d_name);
-+ return strcoll((*a)->d_name, (*b)->d_name);
- }
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/alphasort.c uClibc-git/libc/misc/dirent/alphasort.c
---- uClibc-0.9.33.2/libc/misc/dirent/alphasort.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/alphasort.c 2014-07-25 20:36:05.641328583 +0200
-@@ -10,6 +10,8 @@
-
- int alphasort(const struct dirent **a, const struct dirent **b)
- {
-- return strcmp((*a)->d_name, (*b)->d_name);
-+ return strcoll((*a)->d_name, (*b)->d_name);
- }
--
-+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias_untyped(alphasort,alphasort64)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/dirstream.h uClibc-git/libc/misc/dirent/dirstream.h
---- uClibc-0.9.33.2/libc/misc/dirent/dirstream.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/dirstream.h 2014-07-25 20:36:05.641328583 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 5.1.2 Directory Operations <dirent.h>
-@@ -29,18 +28,6 @@
-
- #include <bits/uClibc_mutex.h>
-
--/* For now, syscall readdir () only supports one entry at a time. It
-- * will be changed in the future.
--#define NUMENT 3
--*/
--#ifndef NUMENT
--#define NUMENT 1
--#endif
--
--#define SINGLE_READDIR 11
--#define MULTI_READDIR 12
--#define NEW_READDIR 13
--
- /* Directory stream type. */
- struct __dirstream {
- /* file descriptor */
-@@ -65,10 +52,4 @@
- __UCLIBC_MUTEX(dd_lock);
- }; /* stream data from opendir() */
-
--
--extern ssize_t __getdents(int fd, char *buf, size_t count) attribute_hidden;
--#ifdef __UCLIBC_HAS_LFS__
--extern ssize_t __getdents64 (int fd, char *buf, size_t count) attribute_hidden;
--#endif
--
- #endif /* dirent.h */
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/Makefile.in uClibc-git/libc/misc/dirent/Makefile.in
---- uClibc-0.9.33.2/libc/misc/dirent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/Makefile.in 2014-07-25 20:36:05.641328583 +0200
-@@ -7,18 +7,18 @@
-
- subdirs += libc/misc/dirent
-
--CSRC := alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c \
-- scandir.c seekdir.c telldir.c readdir_r.c versionsort.c
--
--ifeq ($(UCLIBC_HAS_LFS),y)
--CSRC += readdir64.c alphasort64.c scandir64.c readdir64_r.c versionsort64.c
--endif
-+CSRC := alphasort.c readdir.c scandir.c versionsort.c
-+CSRC_R := readdir_r.c
-+CSRC-y := closedir.c dirfd.c opendir.c rewinddir.c seekdir.c telldir.c $(CSRC) \
-+ $(CSRC_R)
-+CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC))
-+CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %_r.c,%64_r.c,$(CSRC_R))
-
- MISC_DIRENT_DIR := $(top_srcdir)libc/misc/dirent
- MISC_DIRENT_OUT := $(top_builddir)libc/misc/dirent
-
--MISC_DIRENT_SRC := $(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC))
--MISC_DIRENT_OBJ := $(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC))
-+MISC_DIRENT_SRC := $(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC-y))
-+MISC_DIRENT_OBJ := $(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_DIRENT_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir64.c uClibc-git/libc/misc/dirent/readdir64.c
---- uClibc-0.9.33.2/libc/misc/dirent/readdir64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/readdir64.c 2014-07-25 20:36:05.641328583 +0200
-@@ -5,52 +5,12 @@
- */
-
- #include <_lfs_64.h>
--
--#include <errno.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
- #include <dirent.h>
--#include "dirstream.h"
--
--struct dirent64 *readdir64(DIR * dir)
--{
-- ssize_t bytes;
-- struct dirent64 *de;
--
-- if (!dir) {
-- __set_errno(EBADF);
-- return NULL;
-- }
--
-- __UCLIBC_MUTEX_LOCK(dir->dd_lock);
--
-- do {
-- if (dir->dd_size <= dir->dd_nextloc) {
-- /* read dir->dd_max bytes of directory entries. */
-- bytes = __getdents64(dir->dd_fd, dir->dd_buf, dir->dd_max);
-- if (bytes <= 0) {
-- de = NULL;
-- goto all_done;
-- }
-- dir->dd_size = bytes;
-- dir->dd_nextloc = 0;
-- }
--
-- de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc);
--
-- /* Am I right? H.J. */
-- dir->dd_nextloc += de->d_reclen;
--
-- /* We have to save the next offset here. */
-- dir->dd_nextoff = de->d_off;
--
-- /* Skip deleted files. */
-- } while (de->d_ino == 0);
-
--all_done:
-- __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
-+#if __WORDSIZE != 64
-+# define __READDIR readdir64
-+# define __DIRENT_TYPE struct dirent64
-+# define __GETDENTS __getdents64
-
-- return de;
--}
--libc_hidden_def(readdir64)
-+# include "readdir.c"
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir64_r.c uClibc-git/libc/misc/dirent/readdir64_r.c
---- uClibc-0.9.33.2/libc/misc/dirent/readdir64_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/readdir64_r.c 2014-07-25 20:36:05.641328583 +0200
-@@ -5,62 +5,12 @@
- */
-
- #include <_lfs_64.h>
--
--#include <errno.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
- #include <dirent.h>
--#include "dirstream.h"
--
--
--int readdir64_r(DIR *dir, struct dirent64 *entry, struct dirent64 **result)
--{
-- int ret;
-- ssize_t bytes;
-- struct dirent64 *de;
--
-- if (!dir) {
-- __set_errno(EBADF);
-- return(EBADF);
-- }
-- de = NULL;
--
-- __UCLIBC_MUTEX_LOCK(dir->dd_lock);
--
-- do {
-- if (dir->dd_size <= dir->dd_nextloc) {
-- /* read dir->dd_max bytes of directory entries. */
-- bytes = __getdents64(dir->dd_fd, dir->dd_buf, dir->dd_max);
-- if (bytes <= 0) {
-- *result = NULL;
-- ret = (bytes==0)? 0 : errno;
-- goto all_done;
-- }
-- dir->dd_size = bytes;
-- dir->dd_nextloc = 0;
-- }
--
-- de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc);
--
-- /* Am I right? H.J. */
-- dir->dd_nextloc += de->d_reclen;
--
-- /* We have to save the next offset here. */
-- dir->dd_nextoff = de->d_off;
-- /* Skip deleted files. */
-- } while (de->d_ino == 0);
--
-- if (de == NULL) {
-- *result = NULL;
-- } else {
-- *result = memcpy (entry, de, de->d_reclen);
-- }
-- ret = 0;
-
--all_done:
-+#if __WORDSIZE != 64
-+# define __READDIR_R readdir64_r
-+# define __DIRENT_TYPE struct dirent64
-+# define __GETDENTS __getdents64
-
-- __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
-- return((de != NULL)? 0 : ret);
--}
--libc_hidden_def(readdir64_r)
-+# include "readdir_r.c"
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir.c uClibc-git/libc/misc/dirent/readdir.c
---- uClibc-0.9.33.2/libc/misc/dirent/readdir.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/readdir.c 2014-07-25 20:36:05.641328583 +0200
-@@ -4,20 +4,22 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--
--#include <errno.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
- #include <dirent.h>
-+#include <errno.h>
-+#define __need_NULL
-+#include <stddef.h>
- #include "dirstream.h"
-
-+#ifndef __READDIR
-+# define __READDIR readdir
-+# define __DIRENT_TYPE struct dirent
-+# define __GETDENTS __getdents
-+#endif
-
--struct dirent *readdir(DIR * dir)
-+__DIRENT_TYPE *__READDIR(DIR * dir)
- {
- ssize_t bytes;
-- struct dirent *de;
-+ __DIRENT_TYPE *de;
-
- if (!dir) {
- __set_errno(EBADF);
-@@ -29,7 +31,7 @@
- do {
- if (dir->dd_size <= dir->dd_nextloc) {
- /* read dir->dd_max bytes of directory entries. */
-- bytes = __getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);
-+ bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
- if (bytes <= 0) {
- de = NULL;
- goto all_done;
-@@ -38,7 +40,7 @@
- dir->dd_nextloc = 0;
- }
-
-- de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);
-+ de = (__DIRENT_TYPE *) (((char *) dir->dd_buf) + dir->dd_nextloc);
-
- /* Am I right? H.J. */
- dir->dd_nextloc += de->d_reclen;
-@@ -53,4 +55,8 @@
- __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
- return de;
- }
--libc_hidden_def(readdir)
-+libc_hidden_def(__READDIR)
-+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias_untyped(readdir,readdir64)
-+libc_hidden_def(readdir64)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir_r.c uClibc-git/libc/misc/dirent/readdir_r.c
---- uClibc-0.9.33.2/libc/misc/dirent/readdir_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/readdir_r.c 2014-07-25 20:36:05.641328583 +0200
-@@ -4,19 +4,24 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <dirent.h>
- #include <errno.h>
--#include <stdlib.h>
- #include <string.h>
--#include <unistd.h>
--#include <dirent.h>
-+#define __need_NULL
-+#include <stddef.h>
- #include "dirstream.h"
-
-+#ifndef __READDIR_R
-+# define __READDIR_R readdir_r
-+# define __DIRENT_TYPE struct dirent
-+# define __GETDENTS __getdents
-+#endif
-
--int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result)
-+int __READDIR_R(DIR *dir, __DIRENT_TYPE *entry, __DIRENT_TYPE **result)
- {
- int ret;
- ssize_t bytes;
-- struct dirent *de;
-+ __DIRENT_TYPE *de;
-
- if (!dir) {
- __set_errno(EBADF);
-@@ -29,7 +34,7 @@
- do {
- if (dir->dd_size <= dir->dd_nextloc) {
- /* read dir->dd_max bytes of directory entries. */
-- bytes = __getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);
-+ bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
- if (bytes <= 0) {
- *result = NULL;
- ret = (bytes==0)? 0 : errno;
-@@ -39,7 +44,7 @@
- dir->dd_nextloc = 0;
- }
-
-- de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);
-+ de = (__DIRENT_TYPE *) (((char *) dir->dd_buf) + dir->dd_nextloc);
-
- /* Am I right? H.J. */
- dir->dd_nextloc += de->d_reclen;
-@@ -61,4 +66,8 @@
- __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
- return((de != NULL)? 0 : ret);
- }
--libc_hidden_def(readdir_r)
-+libc_hidden_def(__READDIR_R)
-+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias_untyped(readdir_r,readdir64_r)
-+libc_hidden_def(readdir64_r)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/scandir64.c uClibc-git/libc/misc/dirent/scandir64.c
---- uClibc-0.9.33.2/libc/misc/dirent/scandir64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/scandir64.c 2014-07-25 20:36:05.641328583 +0200
-@@ -1,111 +1,16 @@
--/* Copyright (C) 1992-1998, 2000 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-- */
--
--/* Modified for uClibc by Erik Andersen
-- */
-+/*
-+ * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-
- #include <_lfs_64.h>
--
- #include <dirent.h>
--#include <stdio.h>
--#include <string.h>
--#include <stdlib.h>
--#include <errno.h>
--#include <sys/types.h>
--#include "dirstream.h"
--
--int scandir64(const char *dir, struct dirent64 ***namelist,
-- int (*selector) (const struct dirent64 *),
-- int (*compar) (const struct dirent64 **, const struct dirent64 **))
--{
-- DIR *dp = opendir (dir);
-- struct dirent64 *current;
-- struct dirent64 **names = NULL;
-- size_t names_size = 0, pos;
-- int save;
--
-- if (dp == NULL)
-- return -1;
--
-- save = errno;
-- __set_errno (0);
--
-- pos = 0;
-- while ((current = readdir64 (dp)) != NULL) {
-- int use_it = selector == NULL;
--
-- if (! use_it)
-- {
-- use_it = (*selector) (current);
-- /* The selector function might have changed errno.
-- * It was zero before and it need to be again to make
-- * the latter tests work. */
-- if (! use_it)
-- __set_errno (0);
-- }
-- if (use_it)
-- {
-- struct dirent64 *vnew;
-- size_t dsize;
--
-- /* Ignore errors from selector or readdir64 */
-- __set_errno (0);
--
-- if (unlikely(pos == names_size))
-- {
-- struct dirent64 **new;
-- if (names_size == 0)
-- names_size = 10;
-- else
-- names_size *= 2;
-- new = (struct dirent64 **) realloc (names,
-- names_size * sizeof (struct dirent64 *));
-- if (new == NULL)
-- break;
-- names = new;
-- }
--
-- dsize = &current->d_name[_D_ALLOC_NAMLEN(current)] - (char*)current;
-- vnew = (struct dirent64 *) malloc (dsize);
-- if (vnew == NULL)
-- break;
--
-- names[pos++] = (struct dirent64 *) memcpy (vnew, current, dsize);
-- }
-- }
-- if (unlikely(errno != 0))
-- {
-- save = errno;
-- closedir (dp);
-- while (pos > 0)
-- free (names[--pos]);
-- free (names);
-- __set_errno (save);
-- return -1;
-- }
-
-- closedir (dp);
-- __set_errno (save);
-+#if __WORDSIZE != 64
-+# define __SCANDIR scandir64
-+# define __DIRENT_TYPE struct dirent64
-+# define __READDIR readdir64
-
-- /* Sort the list if we have a comparison function to sort with. */
-- if (compar != NULL)
-- qsort (names, pos, sizeof (struct dirent64 *), (comparison_fn_t) compar);
-- *namelist = names;
-- return pos;
--}
-+# include "scandir.c"
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/scandir.c uClibc-git/libc/misc/dirent/scandir.c
---- uClibc-0.9.33.2/libc/misc/dirent/scandir.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/scandir.c 2014-07-25 20:36:05.641328583 +0200
-@@ -1,24 +1,29 @@
-+/* vi: set sw=4 ts=4: */
- /*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
- #include <dirent.h>
--#include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <errno.h>
--#include <sys/types.h>
- #include "dirstream.h"
-
--int scandir(const char *dir, struct dirent ***namelist,
-- int (*selector) (const struct dirent *),
-- int (*compar) (const struct dirent **, const struct dirent **))
-+#ifndef __SCANDIR
-+# define __SCANDIR scandir
-+# define __DIRENT_TYPE struct dirent
-+# define __READDIR readdir
-+#endif
-+
-+int __SCANDIR(const char *dir, __DIRENT_TYPE ***namelist,
-+ int (*selector) (const __DIRENT_TYPE *),
-+ int (*compar) (const __DIRENT_TYPE **, const __DIRENT_TYPE **))
- {
- DIR *dp = opendir (dir);
-- struct dirent *current;
-- struct dirent **names = NULL;
-+ __DIRENT_TYPE *current;
-+ __DIRENT_TYPE **names = NULL;
- size_t names_size = 0, pos;
- int save;
-
-@@ -29,7 +34,7 @@
- __set_errno (0);
-
- pos = 0;
-- while ((current = readdir (dp)) != NULL) {
-+ while ((current = __READDIR (dp)) != NULL) {
- int use_it = selector == NULL;
-
- if (! use_it)
-@@ -43,7 +48,7 @@
- }
- if (use_it)
- {
-- struct dirent *vnew;
-+ __DIRENT_TYPE *vnew;
- size_t dsize;
-
- /* Ignore errors from selector or readdir */
-@@ -51,24 +56,24 @@
-
- if (unlikely(pos == names_size))
- {
-- struct dirent **new;
-+ __DIRENT_TYPE **new;
- if (names_size == 0)
- names_size = 10;
- else
- names_size *= 2;
-- new = (struct dirent **) realloc (names,
-- names_size * sizeof (struct dirent *));
-+ new = (__DIRENT_TYPE **) realloc (names,
-+ names_size * sizeof (__DIRENT_TYPE *));
- if (new == NULL)
- break;
- names = new;
- }
-
- dsize = &current->d_name[_D_ALLOC_NAMLEN(current)] - (char*)current;
-- vnew = (struct dirent *) malloc (dsize);
-+ vnew = (__DIRENT_TYPE *) malloc (dsize);
- if (vnew == NULL)
- break;
-
-- names[pos++] = (struct dirent *) memcpy (vnew, current, dsize);
-+ names[pos++] = (__DIRENT_TYPE *) memcpy (vnew, current, dsize);
- }
- }
-
-@@ -88,7 +93,10 @@
-
- /* Sort the list if we have a comparison function to sort with. */
- if (compar != NULL)
-- qsort (names, pos, sizeof (struct dirent *), (comparison_fn_t) compar);
-+ qsort (names, pos, sizeof (__DIRENT_TYPE *), (comparison_fn_t) compar);
- *namelist = names;
- return pos;
- }
-+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias_untyped(scandir,scandir64)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/versionsort64.c uClibc-git/libc/misc/dirent/versionsort64.c
---- uClibc-0.9.33.2/libc/misc/dirent/versionsort64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/versionsort64.c 2014-07-25 20:36:05.641328583 +0200
-@@ -5,12 +5,14 @@
- */
-
- #include <_lfs_64.h>
--
- #include <dirent.h>
--#include <string.h>
--#include "dirstream.h"
-+
-+#if __WORDSIZE != 64
-+# include <string.h>
-+# include "dirstream.h"
-
- int versionsort64(const struct dirent64 **a, const struct dirent64 **b)
- {
- return strverscmp((*a)->d_name, (*b)->d_name);
- }
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/dirent/versionsort.c uClibc-git/libc/misc/dirent/versionsort.c
---- uClibc-0.9.33.2/libc/misc/dirent/versionsort.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/dirent/versionsort.c 2014-07-25 20:36:05.641328583 +0200
-@@ -12,3 +12,6 @@
- {
- return strverscmp((*a)->d_name, (*b)->d_name);
- }
-+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias_untyped(versionsort,versionsort64)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/elf/dl-iterate-phdr.c uClibc-git/libc/misc/elf/dl-iterate-phdr.c
---- uClibc-0.9.33.2/libc/misc/elf/dl-iterate-phdr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/elf/dl-iterate-phdr.c 2014-07-25 20:36:05.657328667 +0200
-@@ -18,10 +18,7 @@
- /* we want this in libc but nowhere else */
- #ifdef __USE_GNU
-
--extern __typeof(dl_iterate_phdr) __dl_iterate_phdr;
--
--hidden_proto(__dl_iterate_phdr)
--int
-+static int
- __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data)
- {
- int ret = 0;
-@@ -41,7 +38,6 @@
- #endif
- return ret;
- }
--hidden_def (__dl_iterate_phdr)
-
- # ifdef SHARED
-
-diff -Nur uClibc-0.9.33.2/libc/misc/elf/dl-support.c uClibc-git/libc/misc/elf/dl-support.c
---- uClibc-0.9.33.2/libc/misc/elf/dl-support.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/elf/dl-support.c 2014-07-25 20:36:05.657328667 +0200
-@@ -19,6 +19,7 @@
- #include <ldsodefs.h>
- #include <string.h>
- #endif
-+#include <bits/uClibc_page.h>
-
- #if defined(USE_TLS) && USE_TLS
-
-@@ -28,6 +29,7 @@
-
- ElfW(Phdr) *_dl_phdr;
- size_t _dl_phnum;
-+size_t _dl_pagesize;
-
- void internal_function _dl_aux_init (ElfW(auxv_t) *av);
- void internal_function _dl_aux_init (ElfW(auxv_t) *av)
-@@ -37,6 +39,9 @@
-
- /* Get the number of program headers from the aux vect */
- _dl_phnum = (size_t) av[AT_PHNUM].a_un.a_val;
-+
-+ /* Get the pagesize from the aux vect */
-+ _dl_pagesize = (av[AT_PAGESZ].a_un.a_val) ? (size_t) av[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
- }
-
- #if defined(USE_TLS) && USE_TLS
-diff -Nur uClibc-0.9.33.2/libc/misc/error/err.c uClibc-git/libc/misc/error/err.c
---- uClibc-0.9.33.2/libc/misc/error/err.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/error/err.c 2014-07-25 20:36:05.665328709 +0200
-@@ -11,9 +11,6 @@
- #include <stdarg.h>
- #include <errno.h>
- #include <err.h>
--#ifdef __UCLIBC_HAS_THREADS__
--#include <pthread.h>
--#endif
-
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning REMINDER: Deal with wide oriented stderr case.
-@@ -50,68 +47,68 @@
- __STDIO_AUTO_THREADUNLOCK(stderr);
- }
-
--void vwarn(const char *format, va_list args)
-+static void __vwarn(const char *format, va_list args)
- {
- vwarn_work(format, args, 1);
- }
--libc_hidden_def(vwarn)
-+strong_alias(__vwarn,vwarn)
-
- void warn(const char *format, ...)
- {
- va_list args;
-
- va_start(args, format);
-- vwarn(format, args);
-+ __vwarn(format, args);
- va_end(args);
- }
-
--void vwarnx(const char *format, va_list args)
-+static void __vwarnx(const char *format, va_list args)
- {
- vwarn_work(format, args, 0);
- }
--libc_hidden_def(vwarnx)
-+strong_alias(__vwarnx,vwarnx)
-
- void warnx(const char *format, ...)
- {
- va_list args;
-
- va_start(args, format);
-- vwarnx(format, args);
-+ __vwarnx(format, args);
- va_end(args);
- }
-
--void verr(int status, const char *format, va_list args)
-+static void attribute_noreturn __verr(int status, const char *format, va_list args)
- {
-- vwarn(format, args);
-+ __vwarn(format, args);
- exit(status);
- }
--libc_hidden_def(verr)
-+strong_alias(__verr,verr)
-
--void attribute_noreturn err(int status, const char *format, ...)
-+void err(int status, const char *format, ...)
- {
- va_list args;
-
- va_start(args, format);
-- verr(status, format, args);
-+ __verr(status, format, args);
- /* This should get optimized away. We'll leave it now for safety. */
- /* The loop is added only to keep gcc happy. */
- while(1)
- va_end(args);
- }
-
--void verrx(int status, const char *format, va_list args)
-+static void attribute_noreturn __verrx(int status, const char *format, va_list args)
- {
-- vwarnx(format, args);
-+ __vwarnx(format, args);
- exit(status);
- }
--libc_hidden_def(verrx)
-+strong_alias(__verrx,verrx)
-
--void attribute_noreturn errx(int status, const char *format, ...)
-+void errx(int status, const char *format, ...)
- {
- va_list args;
-
- va_start(args, format);
-- verrx(status, format, args);
-+ __verrx(status, format, args);
- /* This should get optimized away. We'll leave it now for safety. */
- /* The loop is added only to keep gcc happy. */
- while(1)
-diff -Nur uClibc-0.9.33.2/libc/misc/error/error.c uClibc-git/libc/misc/error/error.c
---- uClibc-0.9.33.2/libc/misc/error/error.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/error/error.c 2014-07-25 20:36:05.665328709 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
- /* Adjusted slightly by Erik Andersen <andersen@uclibc.org> */
-@@ -37,8 +36,7 @@
- function without parameters instead. */
- void (*error_print_progname) (void) = NULL;
-
--extern __typeof(error) __error attribute_hidden;
--void __error (int status, int errnum, const char *message, ...)
-+void error (int status, int errnum, const char *message, ...)
- {
- va_list args;
-
-@@ -60,11 +58,9 @@
- if (status)
- exit (status);
- }
--weak_alias(__error,error)
-
--extern __typeof(error_at_line) __error_at_line attribute_hidden;
--void __error_at_line (int status, int errnum, const char *file_name,
-- unsigned int line_number, const char *message, ...)
-+void error_at_line (int status, int errnum, const char *file_name,
-+ unsigned int line_number, const char *message, ...)
- {
- va_list args;
-
-@@ -103,4 +99,3 @@
- if (status)
- exit (status);
- }
--weak_alias(__error_at_line,error_at_line)
-diff -Nur uClibc-0.9.33.2/libc/misc/error/Makefile.in uClibc-git/libc/misc/error/Makefile.in
---- uClibc-0.9.33.2/libc/misc/error/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/error/Makefile.in 2014-07-25 20:36:05.665328709 +0200
-@@ -7,19 +7,15 @@
-
- subdirs += libc/misc/error
-
--CSRC :=
--ifeq ($(UCLIBC_HAS_BSD_ERR),y)
--CSRC += err.c
--endif
--ifeq ($(UCLIBC_HAS_GNU_ERROR),y)
--CSRC += error.c
--endif
-+CSRC-y :=
-+CSRC-$(UCLIBC_HAS_BSD_ERR) += err.c
-+CSRC-$(UCLIBC_HAS_GNU_ERROR) += error.c
-
- MISC_ERROR_DIR := $(top_srcdir)libc/misc/error
- MISC_ERROR_OUT := $(top_builddir)libc/misc/error
-
--MISC_ERROR_SRC := $(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC))
--MISC_ERROR_OBJ := $(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC))
-+MISC_ERROR_SRC := $(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC-y))
-+MISC_ERROR_OBJ := $(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_ERROR_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/file/isfdtype.c uClibc-git/libc/misc/file/isfdtype.c
---- uClibc-0.9.33.2/libc/misc/file/isfdtype.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/misc/file/isfdtype.c 2014-07-25 20:36:05.677328772 +0200
-@@ -0,0 +1,40 @@
-+/* Determine whether descriptor has given property.
-+ Copyright (C) 1996-2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <errno.h>
-+#include <sys/stat.h>
-+#include <sys/socket.h>
-+#include <sys/types.h>
-+#ifdef __UCLIBC_HAS_LFS__
-+# include <_lfs_64.h>
-+#else
-+# define stat64 stat
-+# define fstat64 fstat
-+#endif
-+
-+int
-+isfdtype (int fildes, int fdtype)
-+{
-+ struct stat64 st;
-+ int save_error = errno;
-+ int result = fstat64 (fildes, &st);
-+ __set_errno (save_error);
-+ if (result)
-+ return result;
-+ return (st.st_mode & S_IFMT) == (mode_t) fdtype;
-+}
-diff -Nur uClibc-0.9.33.2/libc/misc/file/lockf64.c uClibc-git/libc/misc/file/lockf64.c
---- uClibc-0.9.33.2/libc/misc/file/lockf64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/file/lockf64.c 2014-07-25 20:36:05.677328772 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
-
-@@ -90,4 +89,3 @@
-
- return fcntl(fd, cmd, &fl);
- }
--libc_hidden_def(lockf64)
-diff -Nur uClibc-0.9.33.2/libc/misc/file/lockf.c uClibc-git/libc/misc/file/lockf.c
---- uClibc-0.9.33.2/libc/misc/file/lockf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/file/lockf.c 2014-07-25 20:36:05.677328772 +0200
-@@ -13,19 +13,15 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
--
- #include <sys/types.h>
--#include <unistd.h>
- #include <fcntl.h>
-+#include <unistd.h>
- #include <errno.h>
- #include <string.h>
-
--
--
- /* lockf is a simplified interface to fcntl's locking facilities. */
-
- int lockf (int fd, int cmd, off_t len)
-diff -Nur uClibc-0.9.33.2/libc/misc/file/Makefile.in uClibc-git/libc/misc/file/Makefile.in
---- uClibc-0.9.33.2/libc/misc/file/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/file/Makefile.in 2014-07-25 20:36:05.677328772 +0200
-@@ -10,12 +10,12 @@
- MISC_FILE_DIR := $(top_srcdir)libc/misc/file
- MISC_FILE_OUT := $(top_builddir)libc/misc/file
-
--MISC_FILE_SRC := $(wildcard $(MISC_FILE_DIR)/*.c)
--ifneq ($(UCLIBC_HAS_LFS),y)
--MISC_FILE_SRC := $(filter-out $(MISC_FILE_DIR)/lockf64.c,$(MISC_FILE_SRC))
--endif
--MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(MISC_FILE_SRC))
-+CSRC-y := $(wildcard $(MISC_FILE_DIR)/*.c)
-+CSRC_LFS := $(wildcard $(MISC_FILE_DIR)/*64.c)
-+CSRC-y := $(filter-out $(CSRC_LFS),$(CSRC-y))
-+CSRC-$(UCLIBC_HAS_LFS) += $(CSRC_LFS)
-
-+MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(CSRC-y))
- libc-y += $(MISC_FILE_OBJ)
-
- libc-nomulti-$(UCLIBC_HAS_LFS) += $(MISC_FILE_OUT)/lockf64.o
-diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch.c uClibc-git/libc/misc/fnmatch/fnmatch.c
---- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/fnmatch/fnmatch.c 2014-07-25 20:36:05.689328835 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-@@ -54,10 +53,6 @@
- # include <stdlib.h>
- #endif
-
--#ifdef __UCLIBC__
--# define __memset memset
--#endif
--
- /* For platform which support the ISO C amendement 1 functionality we
- support user defined character classes. */
- #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
-@@ -347,7 +342,7 @@
- wchar_t *wstring = NULL;
-
- /* Convert the strings into wide characters. */
-- __memset (&ps, '\0', sizeof (ps));
-+ memset (&ps, '\0', sizeof (ps));
- p = pattern;
- #ifdef _LIBC
- n = strnlen (pattern, 1024);
-@@ -364,7 +359,7 @@
- already done? */
- return -1;
- if (p)
-- __memset (&ps, '\0', sizeof (ps));
-+ memset (&ps, '\0', sizeof (ps));
- }
- if (__builtin_expect (p != NULL, 0))
- {
-@@ -396,7 +391,7 @@
- already done? */
- return -1;
- if (p)
-- __memset (&ps, '\0', sizeof (ps));
-+ memset (&ps, '\0', sizeof (ps));
- }
- if (__builtin_expect (p != NULL, 0))
- {
-diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_loop.c uClibc-git/libc/misc/fnmatch/fnmatch_loop.c
---- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_loop.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/fnmatch/fnmatch_loop.c 2014-07-25 20:36:05.689328835 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Match STRING against the filename pattern PATTERN, returning zero if
- it matches, nonzero if not. */
-@@ -508,7 +507,7 @@
- if (symb_table[2 * elem] == hash
- && (c1
- == extra[symb_table[2 * elem + 1]])
-- && __memcmp (str,
-+ && memcmp (str,
- &extra[symb_table[2 * elem
- + 1]
- + 1], c1) == 0)
-@@ -729,7 +728,7 @@
- if (symb_table[2 * elem] == hash
- && (c1
- == extra[symb_table[2 * elem + 1]])
-- && __memcmp (str,
-+ && memcmp (str,
- &extra[symb_table[2 * elem + 1]
- + 1], c1) == 0)
- {
-diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_old.c uClibc-git/libc/misc/fnmatch/fnmatch_old.c
---- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_old.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/fnmatch/fnmatch_old.c 2014-07-25 20:36:05.689328835 +0200
-@@ -12,8 +12,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with this library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/Makefile.in uClibc-git/libc/misc/fnmatch/Makefile.in
---- uClibc-0.9.33.2/libc/misc/fnmatch/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/fnmatch/Makefile.in 2014-07-25 20:36:05.689328835 +0200
-@@ -7,17 +7,13 @@
-
- subdirs += libc/misc/fnmatch
-
--ifeq ($(UCLIBC_HAS_FNMATCH_OLD),y)
--CSRC := fnmatch_old.c
--else
--CSRC := fnmatch.c
--endif
-+CSRC-y := $(if $(UCLIBC_HAS_FNMATCH_OLD),fnmatch_old.c,fnmatch.c)
-
- MISC_FNMATCH_DIR := $(top_srcdir)libc/misc/fnmatch
- MISC_FNMATCH_OUT := $(top_builddir)libc/misc/fnmatch
-
--MISC_FNMATCH_SRC := $(patsubst %.c,$(MISC_FNMATCH_DIR)/%.c,$(CSRC))
--MISC_FNMATCH_OBJ := $(patsubst %.c,$(MISC_FNMATCH_OUT)/%.o,$(CSRC))
-+MISC_FNMATCH_SRC := $(patsubst %.c,$(MISC_FNMATCH_DIR)/%.c,$(CSRC-y))
-+MISC_FNMATCH_OBJ := $(patsubst %.c,$(MISC_FNMATCH_OUT)/%.o,$(CSRC-y))
-
- libc-$(UCLIBC_HAS_FNMATCH) += $(MISC_FNMATCH_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/fts/fts.c uClibc-git/libc/misc/fts/fts.c
---- uClibc-0.9.33.2/libc/misc/fts/fts.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/fts/fts.c 2014-07-25 20:36:05.705328919 +0200
-@@ -38,6 +38,7 @@
- #include <unistd.h>
-
- #ifdef __UCLIBC_HAS_LFS__
-+/* this is wrong, either you include this header as first, or not at all */
- # include <_lfs_64.h>
- #else
- # define stat64 stat
-@@ -576,7 +577,7 @@
- FTSENT *cur, *tail;
- DIR *dirp;
- void *oldaddr;
-- int cderrno, descend, len, level, nlinks, saved_errno,
-+ int /*cderrno,*/ descend, len, level, nlinks, saved_errno,
- nostat, doadjust;
- size_t maxlen;
- char *cp;
-@@ -641,14 +642,14 @@
- * needed sorted entries or stat information, they had better be
- * checking FTS_NS on the returned nodes.
- */
-- cderrno = 0;
-+ /* cderrno = 0; */
- if (nlinks || type == BREAD) {
- if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
- if (nlinks && type == BREAD)
- cur->fts_errno = errno;
- cur->fts_flags |= FTS_DONTCHDIR;
- descend = 0;
-- cderrno = errno;
-+ /* cderrno = errno; */
- (void)closedir(dirp);
- dirp = NULL;
- } else
-diff -Nur uClibc-0.9.33.2/libc/misc/fts/Makefile.in uClibc-git/libc/misc/fts/Makefile.in
---- uClibc-0.9.33.2/libc/misc/fts/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/fts/Makefile.in 2014-07-25 20:36:05.705328919 +0200
-@@ -7,13 +7,13 @@
- #
-
- subdirs += libc/misc/fts
--CSRC := fts.c
-+CSRC-y := fts.c
-
- MISC_FTS_DIR := $(top_srcdir)libc/misc/fts
- MISC_FTS_OUT := $(top_builddir)libc/misc/fts
-
--MISC_FTS_SRC := $(patsubst %.c,$(MISC_FTS_DIR)/%.c,$(CSRC))
--MISC_FTS_OBJ := $(patsubst %.c,$(MISC_FTS_OUT)/%.o,$(CSRC))
-+MISC_FTS_SRC := $(patsubst %.c,$(MISC_FTS_DIR)/%.c,$(CSRC-y))
-+MISC_FTS_OBJ := $(patsubst %.c,$(MISC_FTS_OUT)/%.o,$(CSRC-y))
-
- libc-$(UCLIBC_HAS_FTS) += $(MISC_FTS_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/ftw/ftw64.c uClibc-git/libc/misc/ftw/ftw64.c
---- uClibc-0.9.33.2/libc/misc/ftw/ftw64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ftw/ftw64.c 2014-07-25 20:36:05.713328961 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FTW_NAME ftw64
- #define NFTW_NAME nftw64
-diff -Nur uClibc-0.9.33.2/libc/misc/ftw/ftw.c uClibc-git/libc/misc/ftw/ftw.c
---- uClibc-0.9.33.2/libc/misc/ftw/ftw.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ftw/ftw.c 2014-07-25 20:36:05.713328961 +0200
-@@ -14,15 +14,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-
- #include <features.h>
-+/* need errno.h before undefining _LIBC */
-+#include <errno.h>
- #ifdef __UCLIBC__
- #undef _LIBC
- #define HAVE_DIRENT_H 1
-@@ -32,6 +33,7 @@
- #endif
-
- #if __GNUC__
-+# undef alloca
- # define alloca __builtin_alloca
- #else
- # if HAVE_ALLOCA_H
-@@ -67,7 +69,6 @@
- # endif
- #endif
-
--#include <errno.h>
- #include <ftw.h>
- #include <limits.h>
- #include <search.h>
-@@ -77,11 +78,7 @@
- #if HAVE_SYS_PARAM_H || defined _LIBC
- # include <sys/param.h>
- #endif
--#ifdef _LIBC
--# include <include/sys/stat.h>
--#else
--# include <sys/stat.h>
--#endif
-+#include <sys/stat.h>
-
- #if !defined _LIBC && !HAVE_DECL_STPCPY && !defined stpcpy
- char *stpcpy ();
-diff -Nur uClibc-0.9.33.2/libc/misc/ftw/Makefile.in uClibc-git/libc/misc/ftw/Makefile.in
---- uClibc-0.9.33.2/libc/misc/ftw/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ftw/Makefile.in 2014-07-25 20:36:05.713328961 +0200
-@@ -7,16 +7,14 @@
-
- subdirs += libc/misc/ftw
-
--CSRC := ftw.c
--ifeq ($(UCLIBC_HAS_LFS),y)
--CSRC += ftw64.c
--endif
-+CSRC-y := ftw.c
-+CSRC-$(UCLIBC_HAS_LFS) += ftw64.c
-
- MISC_FTW_DIR := $(top_srcdir)libc/misc/ftw
- MISC_FTW_OUT := $(top_builddir)libc/misc/ftw
-
--MISC_FTW_SRC := $(patsubst %.c,$(MISC_FTW_DIR)/%.c,$(CSRC))
--MISC_FTW_OBJ := $(patsubst %.c,$(MISC_FTW_OUT)/%.o,$(CSRC))
-+MISC_FTW_SRC := $(patsubst %.c,$(MISC_FTW_DIR)/%.c,$(CSRC-y))
-+MISC_FTW_OBJ := $(patsubst %.c,$(MISC_FTW_OUT)/%.o,$(CSRC-y))
-
- libc-$(findstring y,$(UCLIBC_HAS_FTW)$(UCLIBC_HAS_NFTW)) += $(MISC_FTW_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/glob/glob.c uClibc-git/libc/misc/glob/glob.c
---- uClibc-0.9.33.2/libc/misc/glob/glob.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/glob/glob.c 2014-07-25 20:36:05.729329044 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #undef ENABLE_GLOB_BRACE_EXPANSION
- #undef ENABLE_GLOB_TILDE_EXPANSION
-diff -Nur uClibc-0.9.33.2/libc/misc/glob/Makefile.in uClibc-git/libc/misc/glob/Makefile.in
---- uClibc-0.9.33.2/libc/misc/glob/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/glob/Makefile.in 2014-07-25 20:36:05.729329044 +0200
-@@ -7,23 +7,15 @@
-
- subdirs += libc/misc/glob
-
--ifeq ($(UCLIBC_HAS_GNU_GLOB),y)
--CSRC := glob.c
--ifeq ($(UCLIBC_HAS_LFS),y)
--CSRC += glob64.c
--endif
--else
--CSRC := glob-susv3.c
--ifeq ($(UCLIBC_HAS_LFS),y)
--CSRC += glob64-susv3.c
--endif
--endif
-+VARIANT := $(if $(UCLIBC_HAS_GNU_GLOB),,-susv3)
-+CSRC-y := glob$(VARIANT).c
-+CSRC-$(UCLIBC_HAS_LFS) += glob64$(VARIANT).c
-
- MISC_GLOB_DIR := $(top_srcdir)libc/misc/glob
- MISC_GLOB_OUT := $(top_builddir)libc/misc/glob
-
--MISC_GLOB_SRC := $(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC))
--MISC_GLOB_OBJ := $(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC))
-+MISC_GLOB_SRC := $(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC-y))
-+MISC_GLOB_OBJ := $(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC-y))
-
- libc-$(UCLIBC_HAS_GLOB) += $(MISC_GLOB_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/gnu/Makefile.in uClibc-git/libc/misc/gnu/Makefile.in
---- uClibc-0.9.33.2/libc/misc/gnu/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/gnu/Makefile.in 2014-07-25 20:36:05.745329128 +0200
-@@ -7,13 +7,14 @@
-
- subdirs += libc/misc/gnu
-
--CSRC := obstack.c
-+CSRC-y :=
-+CSRC-$(UCLIBC_HAS_OBSTACK) := obstack.c obprintf.c
-
- MISC_GNU_DIR := $(top_srcdir)libc/misc/gnu
- MISC_GNU_OUT := $(top_builddir)libc/misc/gnu
-
--MISC_GNU_SRC := $(MISC_GNU_DIR)/obstack.c
--MISC_GNU_OBJ := $(MISC_GNU_OUT)/obstack.o
-+MISC_GNU_SRC := $(patsubst %.c,$(MISC_GNU_DIR)/%.c,$(CSRC-y))
-+MISC_GNU_OBJ := $(patsubst %.c,$(MISC_GNU_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_GNU_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/gnu/obprintf.c uClibc-git/libc/misc/gnu/obprintf.c
---- uClibc-0.9.33.2/libc/misc/gnu/obprintf.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/misc/gnu/obprintf.c 2014-07-25 20:36:05.745329128 +0200
-@@ -0,0 +1,29 @@
-+/* Copyright (C) 2013 Gentoo Foundation
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <stdio.h>
-+#include <stdarg.h>
-+#include <obstack.h>
-+
-+int
-+obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
-+{
-+ int n;
-+ char *s;
-+ n = vasprintf(&s, format, args);
-+ obstack_grow(obstack, s, n);
-+ return n;
-+}
-+libc_hidden_def(obstack_vprintf)
-+
-+int
-+obstack_printf (struct obstack *obstack, const char *format, ...)
-+{
-+ int n;
-+ va_list ap;
-+ va_start (ap, format);
-+ n = obstack_vprintf (obstack, format, ap);
-+ va_end (ap);
-+ return n;
-+}
-diff -Nur uClibc-0.9.33.2/libc/misc/gnu/obstack.c uClibc-git/libc/misc/gnu/obstack.c
---- uClibc-0.9.33.2/libc/misc/gnu/obstack.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/gnu/obstack.c 2014-07-25 20:36:05.745329128 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #ifdef HAVE_CONFIG_H
-@@ -30,11 +29,6 @@
- #else
- # define HAVE_INTTYPES_H 1
- # define HAVE_STDINT_H 1
--# define SHLIB_COMPAT(x,y,z) 0
--# undef libc_hidden_def
--# define libc_hidden_def(x)
--# undef strong_alias
--# define strong_alias(x,y)
- #endif
- #else
- # include "obstack.h"
-@@ -112,19 +106,19 @@
- `print_and_abort'. */
- static void print_and_abort (void);
- static void (*__obstack_alloc_failed_handler) (void) = print_and_abort;
--weak_alias(__obstack_alloc_failed_handler,obstack_alloc_failed_handler)
-+strong_alias(__obstack_alloc_failed_handler,obstack_alloc_failed_handler)
-
- /* Exit value used when `print_and_abort' is used. */
- # include <stdlib.h>
- # ifdef _LIBC
- static int __obstack_exit_failure = EXIT_FAILURE;
--weak_alias(__obstack_exit_failure,obstack_exit_failure)
-+strong_alias(__obstack_exit_failure,obstack_exit_failure)
- # else
- # include "exitfail.h"
- # define __obstack_exit_failure exit_failure
- # endif
-
--# ifdef _LIBC
-+# if 0
- # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
- /* A looong time ago (before 1994, anyway; we're not sure) this global variable
- was used by non-GNU-C macros to avoid multiple evaluation. The GNU C
-@@ -328,9 +322,7 @@
- /* The new chunk certainly contains no empty object yet. */
- h->maybe_empty_object = 0;
- }
--# ifdef _LIBC
--libc_hidden_def (_obstack_newchunk)
--# endif
-+libc_hidden_def(_obstack_newchunk)
-
- /* Return nonzero if object OBJ has been allocated from obstack H.
- This is here for debugging.
-@@ -393,7 +385,7 @@
- abort ();
- }
-
--# ifdef _LIBC
-+# if 0
- /* Older versions of libc used a function _obstack_free intended to be
- called by non-GCC compilers. */
- strong_alias (obstack_free, _obstack_free)
-@@ -418,9 +410,6 @@
- # else
- # include "gettext.h"
- # endif
--/* NLS: Disable gettext in obstack for now: */
--# undef _
--# define _(Str) (Str)
- # ifndef _
- # define _(msgid) gettext (msgid)
- # endif
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/errno.c uClibc-git/libc/misc/internals/errno.c
---- uClibc-0.9.33.2/libc/misc/internals/errno.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/errno.c 2014-07-25 20:36:05.769329254 +0200
-@@ -1,21 +1,14 @@
- #include <features.h>
-+#include <errno.h>
-+#undef errno
-
- #ifdef __UCLIBC_HAS_TLS__
- __thread int errno;
--__thread int h_errno;
--
- extern __thread int __libc_errno __attribute__ ((alias ("errno"))) attribute_hidden;
--extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden;
--#define h_errno __libc_h_errno
--
- #else
--#include "internal_errno.h"
-+extern int errno;
- int errno = 0;
--int h_errno = 0;
--#ifdef __UCLIBC_HAS_THREADS__
--libc_hidden_def(errno)
--weak_alias(errno, _errno)
--libc_hidden_def(h_errno)
--weak_alias(h_errno, _h_errno)
--#endif
-+# ifdef __UCLIBC_HAS_THREADS__
-+strong_alias(errno,_errno)
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/__errno_location.c uClibc-git/libc/misc/internals/__errno_location.c
---- uClibc-0.9.33.2/libc/misc/internals/__errno_location.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/__errno_location.c 2014-07-25 20:36:05.769329254 +0200
-@@ -4,17 +4,15 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "internal_errno.h"
-+#include <features.h>
-+#include <errno.h>
-
--/* psm: moved to bits/errno.h: */
--int *
--#ifndef __UCLIBC_HAS_THREADS__
--weak_const_function
-+#ifndef __UCLIBC_HAS_TLS__
-+# undef errno
-+extern int errno;
- #endif
--__errno_location (void)
-+
-+int weak_const_function *__errno_location(void)
- {
- return &errno;
- }
--#ifdef IS_IN_libc /* not really need, only to keep in sync w/ libc_hidden_proto */
--libc_hidden_weak(__errno_location)
--#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/h_errno.c uClibc-git/libc/misc/internals/h_errno.c
---- uClibc-0.9.33.2/libc/misc/internals/h_errno.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/misc/internals/h_errno.c 2014-07-25 20:36:05.769329254 +0200
-@@ -0,0 +1,14 @@
-+#include <features.h>
-+#include <netdb.h>
-+#undef h_errno
-+
-+#ifdef __UCLIBC_HAS_TLS__
-+__thread int h_errno;
-+extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden;
-+#else
-+extern int h_errno;
-+int h_errno = 0;
-+# ifdef __UCLIBC_HAS_THREADS__
-+strong_alias(h_errno,_h_errno)
-+# endif
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/__h_errno_location.c uClibc-git/libc/misc/internals/__h_errno_location.c
---- uClibc-0.9.33.2/libc/misc/internals/__h_errno_location.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/__h_errno_location.c 2014-07-25 20:36:05.769329254 +0200
-@@ -4,10 +4,15 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "internal_errno.h"
-+#include <features.h>
-+#include <netdb.h>
-
--int * weak_const_function __h_errno_location (void)
-+#ifndef __UCLIBC_HAS_TLS__
-+# undef h_errno
-+extern int h_errno;
-+#endif
-+
-+int weak_const_function *__h_errno_location(void)
- {
- return &h_errno;
- }
--libc_hidden_weak(__h_errno_location)
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/internal_errno.h uClibc-git/libc/misc/internals/internal_errno.h
---- uClibc-0.9.33.2/libc/misc/internals/internal_errno.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/internal_errno.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,21 +0,0 @@
--/*
-- *
-- */
--
--#include <features.h>
--#include <errno.h>
--#include <netdb.h>
--
--#ifndef __UCLIBC_HAS_TLS__
--
--#undef errno
--#undef h_errno
--
--extern int h_errno;
--extern int errno;
--
--#ifdef __UCLIBC_HAS_THREADS__
--libc_hidden_proto(h_errno)
--libc_hidden_proto(errno)
--#endif
--#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/Makefile.in uClibc-git/libc/misc/internals/Makefile.in
---- uClibc-0.9.33.2/libc/misc/internals/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/Makefile.in 2014-07-25 20:36:05.769329254 +0200
-@@ -7,14 +7,14 @@
-
- subdirs += libc/misc/internals
-
--CSRC := tempname.c errno.c __errno_location.c __h_errno_location.c \
-+CSRC-y := tempname.c errno.c h_errno.c __errno_location.c __h_errno_location.c \
- parse_config.c
-
- MISC_INTERNALS_DIR := $(top_srcdir)libc/misc/internals
- MISC_INTERNALS_OUT := $(top_builddir)libc/misc/internals
-
--MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC))
--MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC))
-+MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC-y))
-+MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC-y))
-
- CFLAGS-__uClibc_main.c := $(SSP_DISABLE_FLAGS)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/parse_config.c uClibc-git/libc/misc/internals/parse_config.c
---- uClibc-0.9.33.2/libc/misc/internals/parse_config.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/parse_config.c 2014-07-25 20:36:05.769329254 +0200
-@@ -129,7 +129,7 @@
- return parser;
- }
-
--parser_t attribute_hidden * FAST_FUNC config_open(const char *filename)
-+parser_t * FAST_FUNC config_open(const char *filename)
- {
- return config_open2(filename, fopen_or_warn_stdin);
- }
-@@ -142,7 +142,7 @@
- }
- #endif
-
--void attribute_hidden FAST_FUNC config_close(parser_t *parser)
-+void FAST_FUNC config_close(parser_t *parser)
- {
- if (parser) {
- fclose(parser->fp);
-@@ -176,7 +176,7 @@
- (but more than 0) are found. Empty lines are always skipped (not warned about).
- */
- #undef config_read
--int attribute_hidden FAST_FUNC config_read(parser_t *parser, char ***tokens,
-+int FAST_FUNC config_read(parser_t *parser, char ***tokens,
- unsigned flags, const char *delims)
- {
- char *line;
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/tempname.c uClibc-git/libc/misc/internals/tempname.c
---- uClibc-0.9.33.2/libc/misc/internals/tempname.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/tempname.c 2014-07-25 20:36:05.769329254 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* March 11, 2002 Manuel Novoa III
- *
-@@ -58,7 +57,7 @@
- for use with mk[s]temp. Will fail (-1) if DIR is non-null and
- doesn't exist, none of the searched dirs exists, or there's not
- enough space in TMPL. */
--int attribute_hidden ___path_search (char *tmpl, size_t tmpl_len, const char *dir,
-+int ___path_search (char *tmpl, size_t tmpl_len, const char *dir,
- const char *pfx /*, int try_tmpdir*/)
- {
- /*const char *d; */
-diff -Nur uClibc-0.9.33.2/libc/misc/internals/__uClibc_main.c uClibc-git/libc/misc/internals/__uClibc_main.c
---- uClibc-0.9.33.2/libc/misc/internals/__uClibc_main.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/internals/__uClibc_main.c 2014-07-25 20:36:05.769329254 +0200
-@@ -15,9 +15,6 @@
- */
-
- #include <features.h>
--#ifndef __UCLIBC_HAS_THREADS_NATIVE__
--#define _ERRNO_H
--#endif
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -25,20 +22,23 @@
- #include <link.h>
- #include <bits/uClibc_page.h>
- #include <paths.h>
--#include <unistd.h>
--#include <asm/errno.h>
-+#include <errno.h>
-+#include <netdb.h>
-+#include <stdio.h>
-+#ifndef __ARCH_HAS_NO_LDSO__
- #include <fcntl.h>
--#include <sys/stat.h>
--#include <sys/sysmacros.h>
-+#endif
- #ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <errno.h>
- #include <pthread-functions.h>
- #include <not-cancel.h>
- #include <atomic.h>
- #endif
- #ifdef __UCLIBC_HAS_THREADS__
- #include <pthread.h>
--#endif
-+#endif
-+#ifdef __UCLIBC_HAS_LOCALE__
-+#include <locale.h>
-+#endif
-
- #ifndef SHARED
- void *__libc_stack_end = NULL;
-@@ -116,12 +116,6 @@
- /*
- * Prototypes.
- */
--extern int *weak_const_function __errno_location(void);
--extern int *weak_const_function __h_errno_location(void);
--extern void weak_function _stdio_init(void) attribute_hidden;
--#ifdef __UCLIBC_HAS_LOCALE__
--extern void weak_function _locale_init(void) attribute_hidden;
--#endif
- #ifdef __UCLIBC_HAS_THREADS__
- #if !defined (__UCLIBC_HAS_THREADS_NATIVE__) || defined (SHARED)
- extern void weak_function __pthread_initialize_minimal(void);
-@@ -146,18 +140,24 @@
- # endif
- #endif
-
--#if defined (__LDSO_STANDALONE_SUPPORT__) && defined (SHARED) && defined __sh__
--extern unsigned long _dl_skip_args;
-+#ifdef SHARED
-+extern int _dl_secure;
- #endif
-+extern size_t _dl_pagesize;
-
--attribute_hidden const char *__uclibc_progname = "";
--#ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
--const char *program_invocation_short_name = "";
--const char *program_invocation_name = "";
--#endif
--#ifdef __UCLIBC_HAS___PROGNAME__
--weak_alias (program_invocation_short_name, __progname)
--weak_alias (program_invocation_name, __progname_full)
-+const char *__uclibc_progname = "";
-+#if !defined __UCLIBC_HAS___PROGNAME__ && defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
-+# define __progname program_invocation_short_name
-+# define __progname_full program_invocation_name
-+#endif
-+#if defined __UCLIBC_HAS___PROGNAME__ || (defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__)
-+const char *__progname = "";
-+/* psm: why have a visible __progname_full? */
-+const char *__progname_full = "";
-+# if defined __UCLIBC_HAS___PROGNAME__ && defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
-+weak_alias (__progname, program_invocation_short_name)
-+weak_alias (__progname_full, program_invocation_name)
-+# endif
- #endif
-
- /*
-@@ -167,7 +167,6 @@
- char **__environ = 0;
- weak_alias(__environ, environ)
-
--/* TODO: don't export __pagesize; we cant now because libpthread uses it */
- size_t __pagesize = 0;
-
- #ifndef O_NOFOLLOW
-@@ -192,6 +191,7 @@
- }
- }
-
-+#ifndef SHARED
- static int __check_suid(void)
- {
- uid_t uid, euid;
-@@ -208,6 +208,7 @@
- return 0; /* we are not suid */
- }
- #endif
-+#endif
-
- /* __uClibc_init completely initialize uClibc so it is ready to use.
- *
-@@ -222,8 +223,7 @@
- * __uClibc_main.
- */
-
--extern void __uClibc_init(void);
--libc_hidden_proto(__uClibc_init)
-+extern void __uClibc_init(void) attribute_hidden;
- void __uClibc_init(void)
- {
- /* Don't recurse */
-@@ -276,7 +276,6 @@
- _stdio_init();
-
- }
--libc_hidden_def(__uClibc_init)
-
- #ifdef __UCLIBC_CTOR_DTOR__
- void attribute_hidden (*__app_fini)(void) = NULL;
-@@ -284,8 +283,7 @@
-
- void attribute_hidden (*__rtld_fini)(void) = NULL;
-
--extern void __uClibc_fini(void);
--libc_hidden_proto(__uClibc_fini)
-+extern void __uClibc_fini(void) attribute_hidden;
- void __uClibc_fini(void)
- {
- #ifdef __UCLIBC_CTOR_DTOR__
-@@ -304,7 +302,6 @@
- if (__rtld_fini != NULL)
- (__rtld_fini)();
- }
--libc_hidden_def(__uClibc_fini)
-
- #ifndef SHARED
- extern void __nptl_deallocate_tsd (void) __attribute ((weak));
-@@ -323,7 +320,7 @@
- char **argv, void (*app_init)(void), void (*app_fini)(void),
- void (*rtld_fini)(void), void *stack_end attribute_unused)
- {
--#ifndef __ARCH_HAS_NO_LDSO__
-+#if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
- unsigned long *aux_dat;
- ElfW(auxv_t) auxvt[AT_EGID + 1];
- #endif
-@@ -339,18 +336,6 @@
-
- __rtld_fini = rtld_fini;
-
--#if defined __LDSO_STANDALONE_SUPPORT__ && defined SHARED && defined __sh__
-- /*
-- * Skip ld.so and its arguments
-- * Other archs except for SH do this in _dl_start before passing
-- * control to the application.
-- * FIXME: align SH _dl_start to other archs and remove this from here,
-- * so that we can keep the visibility hidden.
-- */
-- argc -= _dl_skip_args;
-- argv += _dl_skip_args;
--#endif
--
- /* The environment begins right after argv. */
- __environ = &argv[argc + 1];
-
-@@ -361,7 +346,7 @@
- __environ = &argv[argc];
- }
-
--#ifndef __ARCH_HAS_NO_LDSO__
-+#if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
- /* Pull stuff from the ELF header when possible */
- memset(auxvt, 0x00, sizeof(auxvt));
- aux_dat = (unsigned long*)__environ;
-@@ -376,13 +361,11 @@
- }
- aux_dat += 2;
- }
--#ifndef SHARED
- /* Get the program headers (_dl_phdr) from the aux vector
- It will be used into __libc_setup_tls. */
-
- _dl_aux_init (auxvt);
- #endif
--#endif
-
- /* We need to initialize uClibc. If we are dynamically linked this
- * may have already been completed by the shared lib loader. We call
-@@ -390,15 +373,20 @@
- __uClibc_init();
-
- #ifndef __ARCH_HAS_NO_LDSO__
-- /* Make certain getpagesize() gives the correct answer */
-- __pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
-+ /* Make certain getpagesize() gives the correct answer.
-+ * _dl_pagesize is defined into ld.so if SHARED or into libc.a otherwise. */
-+ __pagesize = _dl_pagesize;
-
-+#ifndef SHARED
- /* Prevent starting SUID binaries where the stdin. stdout, and
- * stderr file descriptors are not already opened. */
- if ((auxvt[AT_UID].a_un.a_val == (size_t)-1 && __check_suid()) ||
- (auxvt[AT_UID].a_un.a_val != (size_t)-1 &&
- (auxvt[AT_UID].a_un.a_val != auxvt[AT_EUID].a_un.a_val ||
- auxvt[AT_GID].a_un.a_val != auxvt[AT_EGID].a_un.a_val)))
-+#else
-+ if (_dl_secure)
-+#endif
- {
- __check_one_fd (STDIN_FILENO, O_RDONLY | O_NOFOLLOW);
- __check_one_fd (STDOUT_FILENO, O_RDWR | O_NOFOLLOW);
-@@ -407,14 +395,14 @@
- #endif
-
- __uclibc_progname = *argv;
--#ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
-+#if defined __UCLIBC_HAS___PROGNAME__ || (defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__)
- if (*argv != NULL) {
-- program_invocation_name = *argv;
-- program_invocation_short_name = strrchr(*argv, '/');
-- if (program_invocation_short_name != NULL)
-- ++program_invocation_short_name;
-+ __progname_full = *argv;
-+ __progname = strrchr(*argv, '/');
-+ if (__progname != NULL)
-+ ++__progname;
- else
-- program_invocation_short_name = program_invocation_name;
-+ __progname = *argv;
- }
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/misc/locale/locale.c uClibc-git/libc/misc/locale/locale.c
---- uClibc-0.9.33.2/libc/misc/locale/locale.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/locale/locale.c 2014-07-25 20:36:05.785329337 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Nov. 1, 2002
-@@ -85,19 +85,17 @@
- #endif
- #endif
-
--/* Need to include this before locale.h and xlocale.h! */
-+/* Need to include this before locale.h! */
- #include <bits/uClibc_locale.h>
-
- #undef CODESET_LIST
- #define CODESET_LIST (__locale_mmap->codeset_list)
-
- #ifdef __UCLIBC_HAS_XLOCALE__
--#include <xlocale.h>
- #include <locale.h>
- #else /* __UCLIBC_HAS_XLOCALE__ */
- /* We need this internally... */
- #define __UCLIBC_HAS_XLOCALE__ 1
--#include <xlocale.h>
- #include <locale.h>
- #undef __UCLIBC_HAS_XLOCALE__
- #endif /* __UCLIBC_HAS_XLOCALE__ */
-@@ -908,7 +906,6 @@
- _locale_set_l((unsigned char*) C_LOCALE_SELECTOR, base);
- }
-
--void _locale_init(void) attribute_hidden;
- void _locale_init(void)
- {
- /* TODO: mmap the locale file */
-@@ -1396,6 +1393,7 @@
- {
- return __curlocale_var; /* This is overriden by the thread version. */
- }
-+libc_hidden_weak(__curlocale)
-
- __locale_t weak_function __curlocale_set(__locale_t newloc)
- {
-@@ -1404,6 +1402,7 @@
- __curlocale_var = newloc;
- return oldloc;
- }
-+libc_hidden_weak(__curlocale_set)
-
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/misc/locale/Makefile.in uClibc-git/libc/misc/locale/Makefile.in
---- uClibc-0.9.33.2/libc/misc/locale/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/locale/Makefile.in 2014-07-25 20:36:05.785329337 +0200
-@@ -8,19 +8,16 @@
- subdirs += libc/misc/locale
-
- # multi source locale.c
--CSRC := setlocale.c localeconv.c _locale_init.c nl_langinfo.c
--ifeq ($(UCLIBC_HAS_LOCALE),y)
--CSRC += newlocale.c __locale_mbrtowc_l.c
--endif
--ifeq ($(UCLIBC_HAS_XLOCALE),y)
--CSRC += nl_langinfo_l.c duplocale.c freelocale.c uselocale.c __curlocale.c
--endif
-+CSRC-y := setlocale.c localeconv.c _locale_init.c nl_langinfo.c
-+CSRC-$(UCLIBC_HAS_LOCALE) += newlocale.c __locale_mbrtowc_l.c
-+CSRC-$(UCLIBC_HAS_XLOCALE) += nl_langinfo_l.c duplocale.c freelocale.c \
-+ uselocale.c __curlocale.c
-
- MISC_LOCALE_DIR := $(top_srcdir)libc/misc/locale
- MISC_LOCALE_OUT := $(top_builddir)libc/misc/locale
-
--MISC_LOCALE_SRC := $(patsubst %.c,$(MISC_LOCALE_DIR)/%.c,$(CSRC))
--MISC_LOCALE_OBJ := $(patsubst %.c,$(MISC_LOCALE_OUT)/%.o,$(CSRC))
-+MISC_LOCALE_SRC := $(patsubst %.c,$(MISC_LOCALE_DIR)/%.c,$(CSRC-y))
-+MISC_LOCALE_OBJ := $(patsubst %.c,$(MISC_LOCALE_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_LOCALE_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/mntent/Makefile.in uClibc-git/libc/misc/mntent/Makefile.in
---- uClibc-0.9.33.2/libc/misc/mntent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/mntent/Makefile.in 2014-07-25 20:36:05.813329484 +0200
-@@ -7,13 +7,13 @@
-
- subdirs += libc/misc/mntent
-
--CSRC := mntent.c
-+CSRC-y := mntent.c
-
- MISC_MNTENT_DIR := $(top_srcdir)libc/misc/mntent
- MISC_MNTENT_OUT := $(top_builddir)libc/misc/mntent
-
--MISC_MNTENT_SRC := $(MISC_MNTENT_DIR)/mntent.c
--MISC_MNTENT_OBJ := $(MISC_MNTENT_OUT)/mntent.o
-+MISC_MNTENT_SRC := $(patsubst %.c,$(MISC_MNTENT_DIR)/%.c,$(CSRC-y))
-+MISC_MNTENT_OBJ := $(patsubst %.c,$(MISC_MNTENT_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_MNTENT_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/pthread/tsd.c uClibc-git/libc/misc/pthread/tsd.c
---- uClibc-0.9.33.2/libc/misc/pthread/tsd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/pthread/tsd.c 2014-07-25 20:36:05.833329589 +0200
-@@ -1,5 +1,5 @@
- /* libpthread sets _dl_error_catch_tsd to point to this function.
-- We define it here instead of in libpthread so t here instead of in libpthread so that it doesn't
-+ We define it here instead of in libpthread so that it doesn't
- need to have a TLS segment of its own just for this one pointer. */
-
- void **__libc_dl_error_tsd(void) __attribute__ ((const));
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/Makefile.in uClibc-git/libc/misc/regex/Makefile.in
---- uClibc-0.9.33.2/libc/misc/regex/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/Makefile.in 2014-07-25 20:36:05.845329652 +0200
-@@ -7,17 +7,14 @@
-
- subdirs += libc/misc/regex
-
--ifeq ($(UCLIBC_HAS_REGEX_OLD),y)
--CSRC := regex_old.c
--else
--CSRC := regex.c
--endif
-+VARIANT := $(if $(UCLIBC_HAS_REGEX_OLD),_old)
-+CSRC-y := regex$(VARIANT).c
-
- MISC_REGEX_DIR := $(top_srcdir)libc/misc/regex
- MISC_REGEX_OUT := $(top_builddir)libc/misc/regex
-
--MISC_REGEX_SRC := $(patsubst %.c,$(MISC_REGEX_DIR)/%.c,$(CSRC))
--MISC_REGEX_OBJ := $(patsubst %.c,$(MISC_REGEX_OUT)/%.o,$(CSRC))
-+MISC_REGEX_SRC := $(patsubst %.c,$(MISC_REGEX_DIR)/%.c,$(CSRC-y))
-+MISC_REGEX_OBJ := $(patsubst %.c,$(MISC_REGEX_OUT)/%.o,$(CSRC-y))
-
- libc-$(UCLIBC_HAS_REGEX) += $(MISC_REGEX_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/regcomp.c uClibc-git/libc/misc/regex/regcomp.c
---- uClibc-0.9.33.2/libc/misc/regex/regcomp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/regcomp.c 2014-07-25 20:36:05.845329652 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
- size_t length, reg_syntax_t syntax);
-@@ -91,7 +90,7 @@
- re_charset_t *mbcset,
- int *equiv_class_alloc,
- const unsigned char *name);
--static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
-+static reg_errcode_t build_charclass (__RE_TRANSLATE_TYPE trans,
- bitset_t sbcset,
- re_charset_t *mbcset,
- int *char_class_alloc,
-@@ -100,13 +99,13 @@
- #else /* not RE_ENABLE_I18N */
- static reg_errcode_t build_equiv_class (bitset_t sbcset,
- const unsigned char *name);
--static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
-+static reg_errcode_t build_charclass (__RE_TRANSLATE_TYPE trans,
- bitset_t sbcset,
- const unsigned char *class_name,
- reg_syntax_t syntax);
- #endif /* not RE_ENABLE_I18N */
- static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
-- RE_TRANSLATE_TYPE trans,
-+ __RE_TRANSLATE_TYPE trans,
- const unsigned char *class_name,
- const unsigned char *extra,
- int non_match, reg_errcode_t *err);
-@@ -3414,11 +3413,11 @@
-
- static reg_errcode_t
- #ifdef RE_ENABLE_I18N
--build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
-+build_charclass (__RE_TRANSLATE_TYPE trans, bitset_t sbcset,
- re_charset_t *mbcset, int *char_class_alloc,
- const unsigned char *class_name, reg_syntax_t syntax)
- #else
--build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
-+build_charclass (__RE_TRANSLATE_TYPE trans, bitset_t sbcset,
- const unsigned char *class_name, reg_syntax_t syntax)
- #endif
- {
-@@ -3496,7 +3495,7 @@
- }
-
- static bin_tree_t *
--build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
-+build_charclass_op (re_dfa_t *dfa, __RE_TRANSLATE_TYPE trans,
- const unsigned char *class_name,
- const unsigned char *extra, int non_match,
- reg_errcode_t *err)
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex.c uClibc-git/libc/misc/regex/regex.c
---- uClibc-0.9.33.2/libc/misc/regex/regex.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/regex.c 2014-07-25 20:36:05.845329652 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-@@ -30,7 +29,12 @@
- # include <stdlib.h>
- # ifdef __UCLIBC_HAS_WCHAR__
- # define RE_ENABLE_I18N
-+# define HAVE_WCHAR_H 1
-+# define HAVE_WCRTOMB 1
-+# define HAVE_MBRTOWC 1
-+# define HAVE_WCSCOLL 1
- # include <wchar.h>
-+# define HAVE_WCTYPE_H 1
- # include <wctype.h>
- # define __iswctype iswctype
- # define __wcrtomb wcrtomb
-@@ -38,6 +42,9 @@
- # define __wctype wctype
- # endif
- # include <ctype.h>
-+# ifdef __UCLIBC_HAS_LOCALE__
-+# define HAVE_LOCALE_H 1
-+# endif
- #endif
-
- /* Make sure noone compiles this code with a C++ compiler. */
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/regexec.c uClibc-git/libc/misc/regex/regexec.c
---- uClibc-0.9.33.2/libc/misc/regex/regexec.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/regexec.c 2014-07-25 20:36:05.849329673 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
- int n) internal_function;
-@@ -564,7 +563,7 @@
- re_match_context_t mctx;
- char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate
- && range && !preg->can_be_null) ? preg->fastmap : NULL;
-- RE_TRANSLATE_TYPE t = preg->translate;
-+ __RE_TRANSLATE_TYPE t = preg->translate;
-
- memset (&mctx, '\0', sizeof (re_match_context_t));
- mctx.dfa = dfa;
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_internal.c uClibc-git/libc/misc/regex/regex_internal.c
---- uClibc-0.9.33.2/libc/misc/regex/regex_internal.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/regex_internal.c 2014-07-25 20:36:05.845329652 +0200
-@@ -14,13 +14,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- static void re_string_construct_common (const char *str, int len,
- re_string_t *pstr,
-- RE_TRANSLATE_TYPE trans, int icase,
-+ __RE_TRANSLATE_TYPE trans, int icase,
- const re_dfa_t *dfa) internal_function;
- static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
- const re_node_set *nodes,
-@@ -38,7 +37,7 @@
- static reg_errcode_t
- internal_function
- re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len,
-- RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
-+ __RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
- {
- reg_errcode_t ret;
- int init_buf_len;
-@@ -66,7 +65,7 @@
- static reg_errcode_t
- internal_function
- re_string_construct (re_string_t *pstr, const char *str, int len,
-- RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
-+ __RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
- {
- reg_errcode_t ret;
- memset (pstr, '\0', sizeof (re_string_t));
-@@ -162,7 +161,7 @@
- static void
- internal_function
- re_string_construct_common (const char *str, int len, re_string_t *pstr,
-- RE_TRANSLATE_TYPE trans, int icase,
-+ __RE_TRANSLATE_TYPE trans, int icase,
- const re_dfa_t *dfa)
- {
- pstr->raw_mbs = (const unsigned char *) str;
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_internal.h uClibc-git/libc/misc/regex/regex_internal.h
---- uClibc-0.9.33.2/libc/misc/regex/regex_internal.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/regex_internal.h 2014-07-25 20:36:05.845329652 +0200
-@@ -14,16 +14,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _REGEX_INTERNAL_H
- #define _REGEX_INTERNAL_H 1
-
- #include <assert.h>
- #include <ctype.h>
--#include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
-@@ -315,7 +313,7 @@
- the beginning of the input string. */
- unsigned int tip_context;
- /* The translation passed as a part of an argument of re_compile_pattern. */
-- RE_TRANSLATE_TYPE trans;
-+ __RE_TRANSLATE_TYPE trans;
- /* Copy of re_dfa_t's word_char. */
- re_const_bitset_ptr_t word_char;
- /* 1 if REG_ICASE. */
-diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_old.c uClibc-git/libc/misc/regex/regex_old.c
---- uClibc-0.9.33.2/libc/misc/regex/regex_old.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/regex/regex_old.c 2014-07-25 20:36:05.849329673 +0200
-@@ -16,25 +16,25 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* To exclude some unwanted junk.... */
- #undef emacs
- #include <features.h>
- /* unistd.h must be included with _LIBC defined: we need smallint */
- #include <unistd.h>
-+#include <stdio.h>
- #ifdef __UCLIBC__
- # undef _LIBC
- # define _REGEX_RE_COMP
- # define STDC_HEADERS
--# define RE_TRANSLATE_TYPE char *
-+# define __RE_TRANSLATE_TYPE char *
-+# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE
- #endif
- #include <stdlib.h>
- #include <stdint.h>
- #include <string.h>
--#include <stdio.h>
-
- /* AIX requires this to be the first thing in the file. */
- #if defined _AIX && !defined REGEX_MALLOC
-@@ -64,10 +64,9 @@
- # include <wctype.h>
- # endif
-
--# if defined _LIBC || defined __UCLIBC__
-+# ifdef _LIBC
- /* We have to keep the namespace clean. */
-
--# ifndef __UCLIBC__
- # define btowc __btowc
-
- /* We are also using some library internals. */
-@@ -76,7 +75,6 @@
- # include <langinfo.h>
- # include <locale/coll-lookup.h>
- # endif
--# endif
-
- /* This is for other GNU distributions with internationalized messages. */
- # if defined HAVE_LIBINTL_H || defined _LIBC
-@@ -177,6 +175,7 @@
-
- /* Get the interface, including the syntax bits. */
- # include <regex.h>
-+# define translate __REPB_PREFIX(translate)
-
- /* isalpha etc. are used for the character classes. */
- # include <ctype.h>
-@@ -1896,7 +1895,7 @@
- static reg_errcode_t wcs_compile_range (CHAR_T range_start,
- const CHAR_T **p_ptr,
- const CHAR_T *pend,
-- char *translate,
-+ __RE_TRANSLATE_TYPE translate,
- reg_syntax_t syntax,
- UCHAR_T *b,
- CHAR_T *char_set);
-@@ -1905,7 +1904,7 @@
- static reg_errcode_t byte_compile_range (unsigned int range_start,
- const char **p_ptr,
- const char *pend,
-- char *translate,
-+ __RE_TRANSLATE_TYPE translate,
- reg_syntax_t syntax,
- unsigned char *b);
- # endif /* WCHAR */
-@@ -2338,7 +2337,7 @@
- #endif /* WCHAR */
-
- /* How to translate the characters in the pattern. */
-- RE_TRANSLATE_TYPE translate = bufp->translate;
-+ __RE_TRANSLATE_TYPE translate = bufp->translate;
-
- /* Address of the count-byte of the most recently inserted `exactn'
- command. This makes it possible to tell if a new exact-match
-@@ -4402,7 +4401,7 @@
- wcs_compile_range (
- CHAR_T range_start_char,
- const CHAR_T **p_ptr, const CHAR_T *pend,
-- RE_TRANSLATE_TYPE translate,
-+ __RE_TRANSLATE_TYPE translate,
- reg_syntax_t syntax,
- CHAR_T *b, CHAR_T *char_set)
- {
-@@ -4488,7 +4487,7 @@
- byte_compile_range (
- unsigned int range_start_char,
- const char **p_ptr, const char *pend,
-- RE_TRANSLATE_TYPE translate,
-+ __RE_TRANSLATE_TYPE translate,
- reg_syntax_t syntax,
- unsigned char *b)
- {
-@@ -5060,7 +5059,7 @@
- {
- int val;
- register char *fastmap = bufp->fastmap;
-- register RE_TRANSLATE_TYPE translate = bufp->translate;
-+ register __RE_TRANSLATE_TYPE translate = bufp->translate;
- int total_size = size1 + size2;
- int endpos = startpos + range;
- #ifdef WCHAR
-@@ -5477,7 +5476,7 @@
- UCHAR_T *end,
- PREFIX(register_info_type) *reg_info);
- static int PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2,
-- int len, char *translate);
-+ int len, __RE_TRANSLATE_TYPE translate);
- #else /* not INSIDE_RECURSION */
-
- /* re_match_2 matches the compiled pattern in BUFP against the
-@@ -5637,7 +5636,7 @@
- UCHAR_T *just_past_start_mem = 0;
-
- /* We use this to map every character in the string. */
-- RE_TRANSLATE_TYPE translate = bufp->translate;
-+ __RE_TRANSLATE_TYPE translate = bufp->translate;
-
- /* Failure point stack. Each place that can handle a failure further
- down the line pushes a failure point on this stack. It consists of
-@@ -7212,6 +7211,10 @@
- POP_FAILURE_POINT (sdummy, pdummy,
- dummy_low_reg, dummy_high_reg,
- reg_dummy, reg_dummy, reg_info_dummy);
-+
-+ /* Silence 'set but not used' warnings. */
-+ (void) pdummy;
-+ (void) sdummy;
- }
- /* Note fall through. */
-
-@@ -7802,7 +7805,7 @@
- PREFIX(bcmp_translate) (
- const CHAR_T *s1, const CHAR_T *s2,
- register int len,
-- RE_TRANSLATE_TYPE translate)
-+ __RE_TRANSLATE_TYPE translate)
- {
- register const UCHAR_T *p1 = (const UCHAR_T *) s1;
- register const UCHAR_T *p2 = (const UCHAR_T *) s2;
-@@ -8002,8 +8005,8 @@
- unsigned i;
-
- preg->translate
-- = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
-- * sizeof (*(RE_TRANSLATE_TYPE)0));
-+ = (__RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
-+ * sizeof (*(__RE_TRANSLATE_TYPE)0));
- if (preg->translate == NULL)
- return (int) REG_ESPACE;
-
-diff -Nur uClibc-0.9.33.2/libc/misc/search/hsearch.c uClibc-git/libc/misc/search/hsearch.c
---- uClibc-0.9.33.2/libc/misc/search/hsearch.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/search/hsearch.c 2014-07-25 20:36:05.869329778 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <search.h>
-
-diff -Nur uClibc-0.9.33.2/libc/misc/search/_hsearch_r.c uClibc-git/libc/misc/search/_hsearch_r.c
---- uClibc-0.9.33.2/libc/misc/search/_hsearch_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/search/_hsearch_r.c 2014-07-25 20:36:05.865329757 +0200
-@@ -13,12 +13,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
--#include <malloc.h>
-+#include <stdlib.h>
- #include <string.h>
-
- #include <search.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/search/insremque.c uClibc-git/libc/misc/search/insremque.c
---- uClibc-0.9.33.2/libc/misc/search/insremque.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/search/insremque.c 2014-07-25 20:36:05.869329778 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <stddef.h>
-@@ -27,12 +26,20 @@
- void
- insque (void *elem, void *prev)
- {
-- struct qelem *next = ((struct qelem *) prev)->q_forw;
-- ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
-- if (next != NULL)
-- next->q_back = (struct qelem *) elem;
-- ((struct qelem *) elem)->q_forw = next;
-- ((struct qelem *) elem)->q_back = (struct qelem *) prev;
-+ if (prev == NULL)
-+ {
-+ ((struct qelem *) elem)->q_forw = NULL;
-+ ((struct qelem *) elem)->q_back = NULL;
-+ }
-+ else
-+ {
-+ struct qelem *next = ((struct qelem *) prev)->q_forw;
-+ ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
-+ if (next != NULL)
-+ next->q_back = (struct qelem *) elem;
-+ ((struct qelem *) elem)->q_forw = next;
-+ ((struct qelem *) elem)->q_back = (struct qelem *) prev;
-+ }
- }
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/misc/search/Makefile.in uClibc-git/libc/misc/search/Makefile.in
---- uClibc-0.9.33.2/libc/misc/search/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/search/Makefile.in 2014-07-25 20:36:05.865329757 +0200
-@@ -7,25 +7,25 @@
-
- subdirs += libc/misc/search
-
--CSRC := hsearch.c
-+CSRC-y := hsearch.c
-
- # multi source _tsearch.c
--CSRC += tsearch.c tfind.c tdelete.c twalk.c tdestroy.c
-+CSRC-y += tsearch.c tfind.c tdelete.c twalk.c tdestroy.c
-
- # multi source _lsearch.c
--CSRC += lfind.c lsearch.c
-+CSRC-y += lfind.c lsearch.c
-
- # multi source insremque.c
--CSRC += insque.c remque.c
-+CSRC-y += insque.c remque.c
-
- # multi source _hsearch_r.c
--CSRC += hcreate_r.c hdestroy_r.c hsearch_r.c
-+CSRC-y += hcreate_r.c hdestroy_r.c hsearch_r.c
-
- MISC_SEARCH_DIR := $(top_srcdir)libc/misc/search
- MISC_SEARCH_OUT := $(top_builddir)libc/misc/search
-
--MISC_SEARCH_SRC := $(patsubst %.c,$(MISC_SEARCH_DIR)/%.c,$(CSRC))
--MISC_SEARCH_OBJ := $(patsubst %.c,$(MISC_SEARCH_OUT)/%.o,$(CSRC))
-+MISC_SEARCH_SRC := $(patsubst %.c,$(MISC_SEARCH_DIR)/%.c,$(CSRC-y))
-+MISC_SEARCH_OBJ := $(patsubst %.c,$(MISC_SEARCH_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_SEARCH_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/search/_tsearch.c uClibc-git/libc/misc/search/_tsearch.c
---- uClibc-0.9.33.2/libc/misc/search/_tsearch.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/search/_tsearch.c 2014-07-25 20:36:05.869329778 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- /*
- * Tree search generalized from Knuth (6.2.2) Algorithm T just like
-@@ -50,7 +49,7 @@
- int (*compar)(); ordering function
- */
-
--void *tsearch(__const void *key, void **vrootp, __compar_fn_t compar)
-+void *tsearch(const void *key, void **vrootp, __compar_fn_t compar)
- {
- register node *q;
- register node **rootp = (node **) vrootp;
-@@ -80,7 +79,7 @@
- #endif
-
- #ifdef L_tfind
--void *tfind(__const void *key, void * __const *vrootp, __compar_fn_t compar)
-+void *tfind(const void *key, void * const *vrootp, __compar_fn_t compar)
- {
- register node **rootp = (node **) vrootp;
-
-@@ -107,7 +106,7 @@
- register node **rootp; address of the root of tree
- int (*compar)(); comparison function
- */
--void *tdelete(__const void *key, void ** vrootp, __compar_fn_t compar)
-+void *tdelete(const void *key, void ** vrootp, __compar_fn_t compar)
- {
- node *p;
- register node *q;
-@@ -157,7 +156,7 @@
- register void (*action)(); Function to be called at each node
- register int level;
- */
--static void trecurse(__const void *vroot, __action_fn_t action, int level)
-+static void trecurse(const void *vroot, __action_fn_t action, int level)
- {
- register node *root = (node *) vroot;
-
-@@ -180,9 +179,9 @@
- void (*action)(); Function to be called at each node
- PTR
- */
--void twalk(__const void *vroot, __action_fn_t action)
-+void twalk(const void *vroot, __action_fn_t action)
- {
-- register __const node *root = (node *) vroot;
-+ register const node *root = (node *) vroot;
-
- if (root != (node *)0 && action != (__action_fn_t) 0)
- trecurse(root, action, 0);
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatfs64.c uClibc-git/libc/misc/statfs/fstatfs64.c
---- uClibc-0.9.33.2/libc/misc/statfs/fstatfs64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/fstatfs64.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
-
-@@ -23,8 +22,10 @@
- #include <string.h>
- #include <sys/statfs.h>
- #include <sys/statvfs.h>
-+#include <sys/syscall.h>
- #include <stddef.h>
-
-+#if defined __NR_fstatfs
- extern __typeof(fstatfs) __libc_fstatfs;
-
- /* Return information about the filesystem on which FD resides. */
-@@ -43,9 +44,24 @@
- buf->f_files = buf32.f_files;
- buf->f_ffree = buf32.f_ffree;
- buf->f_fsid = buf32.f_fsid;
-+# ifdef _STATFS_F_FRSIZE
-+ buf->f_frsize = buf32.f_frsize;
-+# endif
- buf->f_namelen = buf32.f_namelen;
- memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
-
- return 0;
- }
-+#else
-+/*
-+ * Use the fstatfs64 system call if fstatfs is not defined
-+ * This is for backwards compatibility and it should be
-+ * made default in the future
-+ */
-+int fstatfs64(int fd, struct statfs64 *buf)
-+{
-+ /* Signature has 2 arguments but syscalls wants 3 */
-+ return INLINE_SYSCALL(fstatfs64, 3, fd, sizeof(*buf), buf);
-+}
-+#endif
- libc_hidden_def(fstatfs64)
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatvfs64.c uClibc-git/libc/misc/statfs/fstatvfs64.c
---- uClibc-0.9.33.2/libc/misc/statfs/fstatvfs64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/fstatvfs64.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
-
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatvfs.c uClibc-git/libc/misc/statfs/fstatvfs.c
---- uClibc-0.9.33.2/libc/misc/statfs/fstatvfs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/fstatvfs.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/internal_statvfs.c uClibc-git/libc/misc/statfs/internal_statvfs.c
---- uClibc-0.9.33.2/libc/misc/statfs/internal_statvfs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/internal_statvfs.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,14 +13,20 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* The kernel hints us if the f_flags is valid */
-+#define ST_VALID 0x0020
-
- /* Now fill in the fields we have information for. */
- buf->f_bsize = fsbuf.f_bsize;
-- /* Linux does not support f_frsize, so set it to the full block size. */
-+#ifdef _STATFS_F_FRSIZE
-+ buf->f_frsize = fsbuf.f_frsize;
-+#else
-+ /* No support for f_frsize so set it to the full block size. */
- buf->f_frsize = fsbuf.f_bsize;
-+#endif
- buf->f_blocks = fsbuf.f_blocks;
- buf->f_bfree = fsbuf.f_bfree;
- buf->f_bavail = fsbuf.f_bavail;
-@@ -28,7 +34,7 @@
- buf->f_ffree = fsbuf.f_ffree;
- if (sizeof (buf->f_fsid) == sizeof (fsbuf.f_fsid))
- buf->f_fsid = (fsbuf.f_fsid.__val[0]
-- | ((unsigned long int) fsbuf.f_fsid.__val[1]
-+ | ((unsigned long long int) fsbuf.f_fsid.__val[1]
- << (8 * (sizeof (buf->f_fsid)
- - sizeof (fsbuf.f_fsid.__val[0])))));
- else
-@@ -39,10 +45,7 @@
- buf->__f_unused = 0;
- #endif
- buf->f_namemax = fsbuf.f_namelen;
-- memset (buf->__f_spare, '\0', 6 * sizeof (int));
--
-- /* What remains to do is to fill the fields f_favail and f_flag. */
--
-+ memset (buf->__f_spare, '\0', sizeof(buf->__f_spare));
- /* XXX I have no idea how to compute f_favail. Any idea??? */
- buf->f_favail = buf->f_ffree;
-
-@@ -51,61 +54,63 @@
- file. The way we can test for matching filesystem is using the
- device number. */
- buf->f_flag = 0;
-- if (STAT (&st) >= 0)
-- {
-- int save_errno = errno;
-- struct mntent mntbuf;
-- FILE *mtab;
--
-- mtab = setmntent ("/proc/mounts", "r");
-- if (mtab == NULL)
-- mtab = setmntent (_PATH_MOUNTED, "r");
--
-- if (mtab != NULL)
-- {
-- char tmpbuf[1024];
--
-- while (getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
-- {
-- struct stat fsst;
--
-- /* Find out about the device the current entry is for. */
-- if (stat (mntbuf.mnt_dir, &fsst) >= 0
-- && st.st_dev == fsst.st_dev)
-- {
-- /* Bingo, we found the entry for the device FD is on.
-- Now interpret the option string. */
-- char *cp = mntbuf.mnt_opts;
-- char *opt;
--
-- while ((opt = strsep (&cp, ",")) != NULL)
-- if (strcmp (opt, "ro") == 0)
-- buf->f_flag |= ST_RDONLY;
-- else if (strcmp (opt, "nosuid") == 0)
-- buf->f_flag |= ST_NOSUID;
-+ if (STAT (&st) >= 0
-+#ifdef _STATFS_F_FLAGS
-+ && (fsbuf.f_flags & ST_VALID) == 0
-+#endif
-+ ) {
-+ int save_errno = errno;
-+ struct mntent mntbuf;
-+ FILE *mtab;
-+
-+ mtab = setmntent ("/proc/mounts", "r");
-+ if (mtab == NULL)
-+ mtab = setmntent (_PATH_MOUNTED, "r");
-+ if (mtab != NULL) {
-+ char tmpbuf[1024];
-+
-+ while (getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf))) {
-+ struct stat fsst;
-+
-+ /* Find out about the device the current entry is for. */
-+ if (stat (mntbuf.mnt_dir, &fsst) >= 0
-+ && st.st_dev == fsst.st_dev) {
-+ /* Bingo, we found the entry for the device FD is on.
-+ Now interpret the option string. */
-+ char *cp = mntbuf.mnt_opts;
-+ char *opt;
-+
-+ while ((opt = strsep (&cp, ",")) != NULL)
-+ if (strcmp (opt, "ro") == 0)
-+ buf->f_flag |= ST_RDONLY;
-+ else if (strcmp (opt, "nosuid") == 0)
-+ buf->f_flag |= ST_NOSUID;
- #ifdef __USE_GNU
-- else if (strcmp (opt, "noexec") == 0)
-- buf->f_flag |= ST_NOEXEC;
-- else if (strcmp (opt, "nodev") == 0)
-- buf->f_flag |= ST_NODEV;
-- else if (strcmp (opt, "sync") == 0)
-- buf->f_flag |= ST_SYNCHRONOUS;
-- else if (strcmp (opt, "mand") == 0)
-- buf->f_flag |= ST_MANDLOCK;
-- else if (strcmp (opt, "noatime") == 0)
-- buf->f_flag |= ST_NOATIME;
-- else if (strcmp (opt, "nodiratime") == 0)
-- buf->f_flag |= ST_NODIRATIME;
-+ else if (strcmp (opt, "noexec") == 0)
-+ buf->f_flag |= ST_NOEXEC;
-+ else if (strcmp (opt, "nodev") == 0)
-+ buf->f_flag |= ST_NODEV;
-+ else if (strcmp (opt, "sync") == 0)
-+ buf->f_flag |= ST_SYNCHRONOUS;
-+ else if (strcmp (opt, "mand") == 0)
-+ buf->f_flag |= ST_MANDLOCK;
-+ else if (strcmp (opt, "noatime") == 0)
-+ buf->f_flag |= ST_NOATIME;
-+ else if (strcmp (opt, "nodiratime") == 0)
-+ buf->f_flag |= ST_NODIRATIME;
-+ else if (strcmp (opt, "relatime") == 0)
-+ buf->f_flag |= ST_RELATIME;
- #endif
--
-- /* We can stop looking for more entries. */
-- break;
-+ /* We can stop looking for more entries. */
-+ break;
-+ }
- }
-- }
--
-- /* Close the file. */
-- endmntent (mtab);
-- }
--
-- __set_errno (save_errno);
-- }
-+ /* Close the file. */
-+ endmntent (mtab);
-+ }
-+ __set_errno (save_errno);
-+ }
-+#ifdef _STATFS_F_FLAGS
-+ else
-+ buf->f_flag = fsbuf.f_flags ^ ST_VALID;
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/Makefile.in uClibc-git/libc/misc/statfs/Makefile.in
---- uClibc-0.9.33.2/libc/misc/statfs/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/Makefile.in 2014-07-25 20:36:05.881329841 +0200
-@@ -7,19 +7,16 @@
-
- subdirs += libc/misc/statfs
-
--CSRC := statvfs.c fstatvfs.c
--ifeq ($(UCLIBC_HAS_LFS),y)
--ifeq ($(UCLIBC_LINUX_SPECIFIC),y)
--CSRC += fstatfs64.c statfs64.c
--endif
--CSRC += statvfs64.c fstatvfs64.c
--endif
-+CSRC-y := statvfs.c fstatvfs.c
-+CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC-y))
-+CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_LINUX_SPECIFIC)),y) += \
-+ fstatfs64.c statfs64.c
-
- MISC_STATFS_DIR := $(top_srcdir)libc/misc/statfs
- MISC_STATFS_OUT := $(top_builddir)libc/misc/statfs
-
--MISC_STATFS_SRC := $(patsubst %.c,$(MISC_STATFS_DIR)/%.c,$(CSRC))
--MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC))
-+MISC_STATFS_SRC := $(patsubst %.c,$(MISC_STATFS_DIR)/%.c,$(CSRC-y))
-+MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_STATFS_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statfs64.c uClibc-git/libc/misc/statfs/statfs64.c
---- uClibc-0.9.33.2/libc/misc/statfs/statfs64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/statfs64.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,18 +13,19 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
-
- #include <string.h>
- #include <stddef.h>
- #include <sys/statfs.h>
-+#include <sys/syscall.h>
-
- extern __typeof(statfs) __libc_statfs;
-
-+#if defined __NR_statfs
- /* Return information about the filesystem on which FILE resides. */
- int statfs64 (const char *file, struct statfs64 *buf)
- {
-@@ -42,8 +43,21 @@
- buf->f_ffree = buf32.f_ffree;
- buf->f_fsid = buf32.f_fsid;
- buf->f_namelen = buf32.f_namelen;
-+#ifdef _STATFS_F_FRSIZE
-+ buf->f_frsize = buf32.f_frsize;
-+#endif
-+#ifdef _STATFS_F_FLAGS
-+ buf->f_flags = buf32.f_flags;
-+#endif
- memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
-
- return 0;
- }
-+#else
-+int statfs64 (const char *file, struct statfs64 *buf)
-+{
-+ return INLINE_SYSCALL(statfs64, 3, file, sizeof(*buf), buf);
-+}
-+#endif
-+
- libc_hidden_def(statfs64)
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statvfs64.c uClibc-git/libc/misc/statfs/statvfs64.c
---- uClibc-0.9.33.2/libc/misc/statfs/statvfs64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/statvfs64.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
-
-diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statvfs.c uClibc-git/libc/misc/statfs/statvfs.c
---- uClibc-0.9.33.2/libc/misc/statfs/statvfs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/statfs/statvfs.c 2014-07-25 20:36:05.881329841 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/syslog/Makefile.in uClibc-git/libc/misc/syslog/Makefile.in
---- uClibc-0.9.33.2/libc/misc/syslog/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/syslog/Makefile.in 2014-07-25 20:36:05.897329925 +0200
-@@ -7,13 +7,13 @@
-
- subdirs += libc/misc/syslog
-
--CSRC := syslog.c
-+CSRC-y := syslog.c
-
- MISC_SYSLOG_DIR := $(top_srcdir)libc/misc/syslog
- MISC_SYSLOG_OUT := $(top_builddir)libc/misc/syslog
-
--MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC))
--MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC))
-+MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC-y))
-+MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC-y))
-
- ifeq ($(UCLIBC_HAS_SYSLOG),y)
- libc-y += $(MISC_SYSLOG_OBJ)
-diff -Nur uClibc-0.9.33.2/libc/misc/syslog/syslog.c uClibc-git/libc/misc/syslog/syslog.c
---- uClibc-0.9.33.2/libc/misc/syslog/syslog.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/syslog/syslog.c 2014-07-25 20:36:05.897329925 +0200
-@@ -58,8 +58,6 @@
- * - Major code cleanup.
- */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/file.h>
-@@ -177,14 +175,17 @@
- openlog_intern(ident, logstat, logfac);
- __UCLIBC_MUTEX_UNLOCK(mylock);
- }
--libc_hidden_def(openlog)
-
- /*
- * syslog, vsyslog --
- * print message on log file; output is intended for syslogd(8).
- */
-+static
-+#ifndef __USE_BSD
-+__always_inline
-+#endif
- void
--vsyslog(int pri, const char *fmt, va_list ap)
-+__vsyslog(int pri, const char *fmt, va_list ap)
- {
- register char *p;
- char *last_chr, *head_end, *end, *stdp;
-@@ -303,7 +304,9 @@
- getout:
- __UCLIBC_MUTEX_UNLOCK(mylock);
- }
--libc_hidden_def(vsyslog)
-+#ifdef __USE_BSD
-+strong_alias(__vsyslog,vsyslog)
-+#endif
-
- void
- syslog(int pri, const char *fmt, ...)
-@@ -311,7 +314,7 @@
- va_list ap;
-
- va_start(ap, fmt);
-- vsyslog(pri, fmt, ap);
-+ __vsyslog(pri, fmt, ap);
- va_end(ap);
- }
- libc_hidden_def(syslog)
-@@ -326,7 +329,6 @@
- closelog_intern(0); /* 0: reset LogXXX globals to default */
- __UCLIBC_MUTEX_UNLOCK(mylock);
- }
--libc_hidden_def(closelog)
-
- /* setlogmask -- set the log mask level */
- int setlogmask(int pmask)
-@@ -335,9 +337,9 @@
-
- omask = LogMask;
- if (pmask != 0) {
-- __UCLIBC_MUTEX_LOCK(mylock);
-+/* __UCLIBC_MUTEX_LOCK(mylock);*/
- LogMask = pmask;
-- __UCLIBC_MUTEX_UNLOCK(mylock);
-+/* __UCLIBC_MUTEX_UNLOCK(mylock);*/
- }
- return omask;
- }
-diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/ftok.c uClibc-git/libc/misc/sysvipc/ftok.c
---- uClibc-0.9.33.2/libc/misc/sysvipc/ftok.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/sysvipc/ftok.c 2014-07-25 20:36:05.909329987 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <sys/ipc.h>
- #include <sys/stat.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/ipc.h uClibc-git/libc/misc/sysvipc/ipc.h
---- uClibc-0.9.33.2/libc/misc/sysvipc/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/sysvipc/ipc.h 2014-07-25 20:36:05.909329987 +0200
-@@ -3,10 +3,14 @@
- #include <syscall.h>
- #include <bits/wordsize.h>
-
--#if __WORDSIZE == 32 || defined __alpha__ || defined __mips__
--# define __IPC_64 0x100
-+#ifndef __ARCH_HAS_DEPRECATED_SYSCALLS__
-+# define __IPC_64 0x0
- #else
--# define __IPC_64 0x0
-+# if __WORDSIZE == 32 || defined __alpha__ || defined __mips__
-+# define __IPC_64 0x100
-+# else
-+# define __IPC_64 0x0
-+# endif
- #endif
-
- #ifdef __NR_ipc
-diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/Makefile.in uClibc-git/libc/misc/sysvipc/Makefile.in
---- uClibc-0.9.33.2/libc/misc/sysvipc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/sysvipc/Makefile.in 2014-07-25 20:36:05.909329987 +0200
-@@ -7,22 +7,22 @@
-
- subdirs += libc/misc/sysvipc
-
--CSRC := ftok.c __syscall_ipc.c
-+CSRC-y := ftok.c __syscall_ipc.c
-
- # multi source sem.c
--CSRC += semget.c semctl.c semop.c semtimedop.c
-+CSRC-y += semget.c semctl.c semop.c semtimedop.c
-
- # multi source shm.c
--CSRC += shmat.c shmctl.c shmdt.c shmget.c
-+CSRC-y += shmat.c shmctl.c shmdt.c shmget.c
-
- # multi source msgq.c
--CSRC += msgctl.c msgget.c msgrcv.c msgsnd.c
-+CSRC-y += msgctl.c msgget.c msgrcv.c msgsnd.c
-
- MISC_SYSVIPC_DIR := $(top_srcdir)libc/misc/sysvipc
- MISC_SYSVIPC_OUT := $(top_builddir)libc/misc/sysvipc
-
--MISC_SYSVIPC_SRC := $(patsubst %.c,$(MISC_SYSVIPC_DIR)/%.c,$(CSRC))
--MISC_SYSVIPC_OBJ := $(patsubst %.c,$(MISC_SYSVIPC_OUT)/%.o,$(CSRC))
-+MISC_SYSVIPC_SRC := $(patsubst %.c,$(MISC_SYSVIPC_DIR)/%.c,$(CSRC-y))
-+MISC_SYSVIPC_OBJ := $(patsubst %.c,$(MISC_SYSVIPC_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_SYSVIPC_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/sem.c uClibc-git/libc/misc/sysvipc/sem.c
---- uClibc-0.9.33.2/libc/misc/sysvipc/sem.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/sysvipc/sem.c 2014-07-25 20:36:05.909329987 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sys/sem.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/shm.c uClibc-git/libc/misc/sysvipc/shm.c
---- uClibc-0.9.33.2/libc/misc/sysvipc/shm.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/sysvipc/shm.c 2014-07-25 20:36:05.909329987 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* SHMLBA uses it on most of the archs (not mips) */
- #define __getpagesize getpagesize
-@@ -54,13 +53,13 @@
- #ifdef L_shmctl
- /* Provide operations to control over shared memory segments. */
- #ifdef __NR_shmctl
--#define __NR___libc_shmctl __NR_shmctl
--static __inline__ _syscall3(int, __libc_shmctl, int, shmid, int, cmd, struct shmid_ds *, buf)
-+#define __NR___syscall_shmctl __NR_shmctl
-+static __always_inline _syscall3(int, __syscall_shmctl, int, shmid, int, cmd, struct shmid_ds *, buf)
- #endif
- int shmctl(int shmid, int cmd, struct shmid_ds *buf)
- {
- #ifdef __NR_shmctl
-- return __libc_shmctl(shmid, cmd | __IPC_64, buf);
-+ return __syscall_shmctl(shmid, cmd | __IPC_64, buf);
- #else
- return __syscall_ipc(IPCOP_shmctl, shmid, cmd | __IPC_64, 0, buf, 0);
- #endif
-diff -Nur uClibc-0.9.33.2/libc/misc/time/ftime.c uClibc-git/libc/misc/time/ftime.c
---- uClibc-0.9.33.2/libc/misc/time/ftime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/time/ftime.c 2014-07-25 20:36:05.929330092 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/timeb.h>
- #include <sys/time.h>
-diff -Nur uClibc-0.9.33.2/libc/misc/time/Makefile.in uClibc-git/libc/misc/time/Makefile.in
---- uClibc-0.9.33.2/libc/misc/time/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/time/Makefile.in 2014-07-25 20:36:05.929330092 +0200
-@@ -7,33 +7,24 @@
-
- subdirs += libc/misc/time
-
--CSRC := adjtime.c
--ifeq ($(UCLIBC_SUSV3_LEGACY),y)
--CSRC += ftime.c
--endif
-+CSRC-y := adjtime.c
-+CSRC-$(UCLIBC_SUSV3_LEGACY) += ftime.c
- # multi source time.c
--CSRC += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \
-+CSRC-y += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \
- localtime.c localtime_r.c mktime.c strftime.c strptime.c tzset.c \
- _time_t2tm.c __time_tm.c _time_mktime.c dysize.c timegm.c \
- _time_mktime_tzi.c _time_localtime_tzi.c
--ifeq ($(UCLIBC_HAS_FLOATS),y)
--CSRC += difftime.c
--endif
--ifeq ($(UCLIBC_HAS_XLOCALE),y)
--CSRC += strftime_l.c strptime_l.c
--endif
--ifeq ($(UCLIBC_HAS_WCHAR),y)
--CSRC += wcsftime.c
--ifeq ($(UCLIBC_HAS_XLOCALE),y)
--CSRC += wcsftime_l.c
--endif
--endif
-+CSRC-$(UCLIBC_HAS_FLOATS) += difftime.c
-+CSRC-$(UCLIBC_HAS_XLOCALE) += strftime_l.c strptime_l.c
-+CSRC-$(UCLIBC_HAS_WCHAR) += wcsftime.c
-+CSRC-$(if $(findstring yy,$(UCLIBC_HAS_WCHAR)$(UCLIBC_HAS_XLOCALE)),y) += \
-+ wcsftime_l.c
-
- MISC_TIME_DIR := $(top_srcdir)libc/misc/time
- MISC_TIME_OUT := $(top_builddir)libc/misc/time
-
--MISC_TIME_SRC := $(patsubst %.c,$(MISC_TIME_DIR)/%.c,$(CSRC))
--MISC_TIME_OBJ := $(patsubst %.c,$(MISC_TIME_OUT)/%.o,$(CSRC))
-+MISC_TIME_SRC := $(patsubst %.c,$(MISC_TIME_DIR)/%.c,$(CSRC-y))
-+MISC_TIME_OBJ := $(patsubst %.c,$(MISC_TIME_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_TIME_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/time/time.c uClibc-git/libc/misc/time/time.c
---- uClibc-0.9.33.2/libc/misc/time/time.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/time/time.c 2014-07-25 20:36:05.929330092 +0200
-@@ -149,10 +149,6 @@
- #ifdef __UCLIBC_HAS_WCHAR__
- #include <wchar.h>
- #endif
--#ifdef __UCLIBC_HAS_XLOCALE__
--#include <xlocale.h>
--#endif
--
-
- #ifndef __isleap
- #define __isleap(y) ( !((y) % 4) && ( ((y) % 100) || !((y) % 400) ) )
-@@ -212,7 +208,7 @@
- char tzname[TZNAME_MAX+1];
- } rule_struct;
-
--__UCLIBC_MUTEX_EXTERN(_time_tzlock);
-+__UCLIBC_MUTEX_EXTERN(_time_tzlock) attribute_hidden;
-
- extern rule_struct _time_tzinfo[2] attribute_hidden;
-
-@@ -605,11 +601,11 @@
- } ll_tzname_item_t;
-
- /* Structures form a list "UTC" -> "???" -> "tzname1" -> "tzname2"... */
--struct {
-+static struct {
- struct ll_tzname_item *next;
- char tzname[4];
- } ll_tzname_UNKNOWN = { NULL, "???" };
--const struct {
-+static const struct {
- struct ll_tzname_item *next;
- char tzname[4];
- } ll_tzname_UTC = { (void*)&ll_tzname_UNKNOWN, "UTC" };
-@@ -671,7 +667,7 @@
- isleap = __isleap(i);
- --i;
- day0 = (1
-- + i /* Normal years increment 1 wday. */
-+ + i /* Normal years increment 1 wday. */
- + (i/4)
- - (i/100)
- + (i/400) ) % 7;
-@@ -684,20 +680,22 @@
- }
- } else if (r->rule_type == 'M') {
- /* Find 0-based day number for 1st of the month. */
-- day = 31*r->month - day_cor[r->month -1];
-+ day = 31 * r->month - day_cor[r->month - 1];
- if (isleap && (day >= 59)) {
- ++day;
- }
-- monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
-+ monlen = 31 + day_cor[r->month - 1] - day_cor[r->month];
- if (isleap && (r->month == 2)) {
- ++monlen;
- }
-- /* Wweekday (0 is Sunday) of 1st of the month
-+ /* Weekday (0 is Sunday) of 1st of the month
- * is (day0 + day) % 7. */
-- if ((mday = r->day - ((day0 + day) % 7)) >= 0) {
-- mday -= 7; /* Back up into prev month since r->week>0. */
-+ mday = r->day - ((day0 + day) % 7);
-+ if (mday >= 0) {
-+ mday -= 7; /* Back up into prev month since r->week > 0. */
- }
-- if ((mday += 7 * r->week) >= monlen) {
-+ mday += 7 * r->week;
-+ if (mday >= monlen) {
- mday -= 7;
- }
- /* So, 0-based day number is... */
-@@ -2100,7 +2098,8 @@
- daylight = !!_time_tzinfo[1].tzname[0];
- timezone = _time_tzinfo[0].gmt_offset;
-
--#if defined(__UCLIBC_HAS_TZ_FILE__) || defined(__UCLIBC_HAS_TZ_CACHING__)
-+#if (defined(__UCLIBC_HAS_TZ_FILE__) && !defined(__UCLIBC_HAS_TZ_FILE_READ_MANY__)) || \
-+ defined(__UCLIBC_HAS_TZ_CACHING__)
- FAST_DONE:
- #endif
- __UCLIBC_MUTEX_UNLOCK(_time_tzlock);
-diff -Nur uClibc-0.9.33.2/libc/misc/ttyent/getttyent.c uClibc-git/libc/misc/ttyent/getttyent.c
---- uClibc-0.9.33.2/libc/misc/ttyent/getttyent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ttyent/getttyent.c 2014-07-25 20:36:05.953330218 +0200
-@@ -30,12 +30,11 @@
- #include <features.h>
- #include <ttyent.h>
- #include <stdio.h>
--#include <stdio_ext.h>
- #include <ctype.h>
- #include <string.h>
- #include <stdlib.h>
- #ifdef __UCLIBC_HAS_THREADS__
--# include <pthread.h>
-+# include <stdio_ext.h>
- #endif
-
- static char zapchar;
-diff -Nur uClibc-0.9.33.2/libc/misc/ttyent/Makefile.in uClibc-git/libc/misc/ttyent/Makefile.in
---- uClibc-0.9.33.2/libc/misc/ttyent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/ttyent/Makefile.in 2014-07-25 20:36:05.953330218 +0200
-@@ -7,13 +7,13 @@
-
- subdirs += libc/misc/ttyent
-
--CSRC := getttyent.c
-+CSRC-y := getttyent.c
-
- MISC_TTYENT_DIR := $(top_srcdir)libc/misc/ttyent
- MISC_TTYENT_OUT := $(top_builddir)libc/misc/ttyent
-
--MISC_TTYENT_SRC := $(patsubst %.c,$(MISC_TTYENT_DIR)/%.c,$(CSRC))
--MISC_TTYENT_OBJ := $(patsubst %.c,$(MISC_TTYENT_OUT)/%.o,$(CSRC))
-+MISC_TTYENT_SRC := $(patsubst %.c,$(MISC_TTYENT_DIR)/%.c,$(CSRC-y))
-+MISC_TTYENT_OBJ := $(patsubst %.c,$(MISC_TTYENT_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_TTYENT_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/utmp/Makefile.in uClibc-git/libc/misc/utmp/Makefile.in
---- uClibc-0.9.33.2/libc/misc/utmp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/utmp/Makefile.in 2014-07-25 20:36:05.957330238 +0200
-@@ -7,17 +7,14 @@
-
- subdirs += libc/misc/utmp
-
--CSRC := utent.c wtent.c
--
--ifeq ($(UCLIBC_HAS_UTMPX),y)
--CSRC += utxent.c
--endif
-+CSRC-y := utent.c wtent.c
-+CSRC-$(UCLIBC_HAS_UTMPX) += utxent.c
-
- MISC_UTMP_DIR := $(top_srcdir)libc/misc/utmp
- MISC_UTMP_OUT := $(top_builddir)libc/misc/utmp
-
--MISC_UTMP_SRC := $(patsubst %.c,$(MISC_UTMP_DIR)/%.c,$(CSRC))
--MISC_UTMP_OBJ := $(patsubst %.c,$(MISC_UTMP_OUT)/%.o,$(CSRC))
-+MISC_UTMP_SRC := $(patsubst %.c,$(MISC_UTMP_DIR)/%.c,$(CSRC-y))
-+MISC_UTMP_OBJ := $(patsubst %.c,$(MISC_UTMP_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_UTMP_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/utmp/utent.c uClibc-git/libc/misc/utmp/utent.c
---- uClibc-0.9.33.2/libc/misc/utmp/utent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/utmp/utent.c 2014-07-25 20:36:05.957330238 +0200
-@@ -19,32 +19,22 @@
- #include <errno.h>
- #include <string.h>
- #include <utmp.h>
-+#ifdef __UCLIBC_HAS_UTMPX__
-+# include <utmpx.h>
-+#endif
- #include <not-cancel.h>
-
- #include <bits/uClibc_mutex.h>
- __UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER);
-
--
--/* Do not create extra unlocked functions if no locking is needed */
--#if defined __UCLIBC_HAS_THREADS__
--# define static_if_threaded static
--#else
--# define static_if_threaded /* nothing */
--# define __setutent setutent
--# define __getutent getutent
--# define __getutid getutid
--#endif
--
--
- /* Some global crap */
- static int static_fd = -1;
- static struct utmp static_utmp;
- static const char default_file_name[] = _PATH_UTMP;
- static const char *static_ut_name = default_file_name;
-
--
- /* This function must be called with the LOCK held */
--static_if_threaded void __setutent(void)
-+static void __setutent_unlocked(void)
- {
- if (static_fd < 0) {
- static_fd = open_not_cancel_2(static_ut_name, O_RDWR | O_CLOEXEC);
-@@ -63,17 +53,24 @@
- lseek(static_fd, 0, SEEK_SET);
- }
- #if defined __UCLIBC_HAS_THREADS__
--void setutent(void)
-+static void __setutent(void)
- {
- __UCLIBC_MUTEX_LOCK(utmplock);
-- __setutent();
-+ __setutent_unlocked();
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- }
-+#else
-+static void __setutent(void);
-+strong_alias(__setutent_unlocked,__setutent)
-+#endif
-+strong_alias(__setutent,setutent)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+strong_alias(__setutent,setutxent)
- #endif
--libc_hidden_def(setutent)
-
- /* This function must be called with the LOCK held */
--static_if_threaded struct utmp *__getutent(void)
-+static struct utmp *__getutent_unlocked(void)
- {
- if (static_fd < 0) {
- __setutent();
-@@ -89,19 +86,29 @@
- return NULL;
- }
- #if defined __UCLIBC_HAS_THREADS__
--struct utmp *getutent(void)
-+static struct utmp *__getutent(void)
- {
- struct utmp *ret;
-
- __UCLIBC_MUTEX_LOCK(utmplock);
-- ret = __getutent();
-+ ret = __getutent_unlocked();
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- return ret;
- }
-+#else
-+static struct utmp *__getutent(void);
-+strong_alias(__getutent_unlocked,__getutent)
-+#endif
-+strong_alias(__getutent,getutent)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+struct utmpx *getutxent(void)
-+{
-+ return (struct utmpx *) __getutent ();
-+}
- #endif
--libc_hidden_def(getutent)
-
--void endutent(void)
-+static void __endutent(void)
- {
- __UCLIBC_MUTEX_LOCK(utmplock);
- if (static_fd >= 0)
-@@ -109,10 +116,14 @@
- static_fd = -1;
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- }
--libc_hidden_def(endutent)
-+strong_alias(__endutent,endutent)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+strong_alias(__endutent,endutxent)
-+#endif
-
- /* This function must be called with the LOCK held */
--static_if_threaded struct utmp *__getutid(const struct utmp *utmp_entry)
-+static struct utmp *__getutid_unlocked(const struct utmp *utmp_entry)
- {
- struct utmp *lutmp;
- unsigned type;
-@@ -122,7 +133,7 @@
- type = utmp_entry->ut_type - 1;
- type /= 4;
-
-- while ((lutmp = __getutent()) != NULL) {
-+ while ((lutmp = __getutent_unlocked()) != NULL) {
- if (type == 0 && lutmp->ut_type == utmp_entry->ut_type) {
- /* one of RUN_LVL, BOOT_TIME, NEW_TIME, OLD_TIME */
- return lutmp;
-@@ -136,24 +147,34 @@
- return NULL;
- }
- #if defined __UCLIBC_HAS_THREADS__
--struct utmp *getutid(const struct utmp *utmp_entry)
-+static struct utmp *__getutid(const struct utmp *utmp_entry)
- {
- struct utmp *ret;
-
- __UCLIBC_MUTEX_LOCK(utmplock);
-- ret = __getutid(utmp_entry);
-+ ret = __getutid_unlocked(utmp_entry);
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- return ret;
- }
-+#else
-+static struct utmp *__getutid(const struct utmp *utmp_entry);
-+strong_alias(__getutid_unlocked,__getutid)
-+#endif
-+strong_alias(__getutid,getutid)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+struct utmpx *getutxid(const struct utmpx *utmp_entry)
-+{
-+ return (struct utmpx *) __getutid ((const struct utmp *) utmp_entry);
-+}
- #endif
--libc_hidden_def(getutid)
-
--struct utmp *getutline(const struct utmp *utmp_entry)
-+static struct utmp *__getutline(const struct utmp *utmp_entry)
- {
- struct utmp *lutmp;
-
- __UCLIBC_MUTEX_LOCK(utmplock);
-- while ((lutmp = __getutent()) != NULL) {
-+ while ((lutmp = __getutent_unlocked()) != NULL) {
- if (lutmp->ut_type == USER_PROCESS || lutmp->ut_type == LOGIN_PROCESS) {
- if (strncmp(lutmp->ut_line, utmp_entry->ut_line, sizeof(lutmp->ut_line)) == 0) {
- break;
-@@ -163,16 +184,23 @@
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- return lutmp;
- }
--libc_hidden_def(getutline)
-+strong_alias(__getutline,getutline)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+struct utmpx *getutxline(const struct utmpx *utmp_entry)
-+{
-+ return (struct utmpx *) __getutline ((const struct utmp *) utmp_entry);
-+}
-+#endif
-
--struct utmp *pututline(const struct utmp *utmp_entry)
-+static struct utmp *__pututline(const struct utmp *utmp_entry)
- {
- __UCLIBC_MUTEX_LOCK(utmplock);
- /* Ignore the return value. That way, if they've already positioned
- the file pointer where they want it, everything will work out. */
- lseek(static_fd, (off_t) - sizeof(struct utmp), SEEK_CUR);
-
-- if (__getutid(utmp_entry) != NULL)
-+ if (__getutid_unlocked(utmp_entry) != NULL)
- lseek(static_fd, (off_t) - sizeof(struct utmp), SEEK_CUR);
- else
- lseek(static_fd, (off_t) 0, SEEK_END);
-@@ -182,9 +210,16 @@
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- return (struct utmp *)utmp_entry;
- }
--libc_hidden_def(pututline)
-+strong_alias(__pututline,pututline)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+struct utmpx *pututxline (const struct utmpx *utmp_entry)
-+{
-+ return (struct utmpx *) __pututline ((const struct utmp *) utmp_entry);
-+}
-+#endif
-
--int utmpname(const char *new_ut_name)
-+static int __utmpname(const char *new_ut_name)
- {
- __UCLIBC_MUTEX_LOCK(utmplock);
- if (new_ut_name != NULL) {
-@@ -205,4 +240,8 @@
- __UCLIBC_MUTEX_UNLOCK(utmplock);
- return 0; /* or maybe return -(static_ut_name != new_ut_name)? */
- }
--libc_hidden_def(utmpname)
-+strong_alias(__utmpname,utmpname)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+strong_alias(__utmpname,utmpxname)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/utmp/utxent.c uClibc-git/libc/misc/utmp/utxent.c
---- uClibc-0.9.33.2/libc/misc/utmp/utxent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/utmp/utxent.c 2014-07-25 20:36:05.957330238 +0200
-@@ -13,6 +13,7 @@
- #include <utmpx.h>
- #include <utmp.h>
-
-+#if 0 /* moved to utent.c */
- void setutxent(void)
- {
- setutent ();
-@@ -48,10 +49,12 @@
- return utmpname (new_ut_name);
- }
-
-+/* moved to wtent.c */
- void updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
- {
- updwtmp (wtmpx_file, (const struct utmp *) utmpx);
- }
-+#endif
-
- /* Copy the information in UTMPX to UTMP. */
- void getutmp (const struct utmpx *utmpx, struct utmp *utmp)
-@@ -104,4 +107,3 @@
- utmpx->ut_time = utmp->ut_time;
- #endif
- }
--
-diff -Nur uClibc-0.9.33.2/libc/misc/utmp/wtent.c uClibc-git/libc/misc/utmp/wtent.c
---- uClibc-0.9.33.2/libc/misc/utmp/wtent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/utmp/wtent.c 2014-07-25 20:36:05.957330238 +0200
-@@ -11,6 +11,9 @@
- #include <time.h>
- #include <unistd.h>
- #include <utmp.h>
-+#ifdef __UCLIBC_HAS_UTMPX__
-+# include <utmpx.h>
-+#endif
- #include <fcntl.h>
- #include <sys/file.h>
- #include <not-cancel.h>
-@@ -33,11 +36,11 @@
- }
- #endif
-
--void updwtmp(const char *wtmp_file, const struct utmp *lutmp)
-+static void __updwtmp(const char *wtmp_file, const struct utmp *lutmp)
- {
- int fd;
-
-- fd = open_not_cancel(wtmp_file, O_APPEND | O_WRONLY, 0);
-+ fd = open_not_cancel_2(wtmp_file, O_APPEND | O_WRONLY);
- if (fd >= 0) {
- if (lockf(fd, F_LOCK, 0) == 0) {
- write_not_cancel(fd, lutmp, sizeof(struct utmp));
-@@ -46,4 +49,11 @@
- }
- }
- }
--libc_hidden_def(updwtmp)
-+strong_alias(__updwtmp,updwtmp)
-+
-+#ifdef __UCLIBC_HAS_UTMPX__
-+void updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
-+{
-+ __updwtmp (wtmpx_file, (const struct utmp *) utmpx);
-+}
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/misc/wchar/Makefile.in uClibc-git/libc/misc/wchar/Makefile.in
---- uClibc-0.9.33.2/libc/misc/wchar/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/wchar/Makefile.in 2014-07-25 20:36:05.969330302 +0200
-@@ -19,19 +19,17 @@
- subdirs += libc/misc/wchar
-
- # multi source wchar.c
--CSRC := btowc.c wctob.c mbsinit.c mbrlen.c mbrtowc.c wcrtomb.c mbsrtowcs.c \
-+CSRC-y := btowc.c wctob.c mbsinit.c mbrlen.c mbrtowc.c wcrtomb.c mbsrtowcs.c \
- wcsrtombs.c _wchar_utf8sntowcs.c _wchar_wcsntoutf8s.c \
- mbsnrtowcs.c wcsnrtombs.c wcwidth.c wcswidth.c
-
--ifeq ($(UCLIBC_HAS_LOCALE),y)
--CSRC += iconv.c
--endif
-+CSRC-$(UCLIBC_HAS_LOCALE) += iconv.c
-
- MISC_WCHAR_DIR := $(top_srcdir)libc/misc/wchar
- MISC_WCHAR_OUT := $(top_builddir)libc/misc/wchar
-
--MISC_WCHAR_SRC := $(patsubst %.c,$(MISC_WCHAR_DIR)/%.c,$(CSRC))
--MISC_WCHAR_OBJ := $(patsubst %.c,$(MISC_WCHAR_OUT)/%.o,$(CSRC))
-+MISC_WCHAR_SRC := $(patsubst %.c,$(MISC_WCHAR_DIR)/%.c,$(CSRC-y))
-+MISC_WCHAR_OBJ := $(patsubst %.c,$(MISC_WCHAR_OUT)/%.o,$(CSRC-y))
-
- libc-$(UCLIBC_HAS_WCHAR) += $(MISC_WCHAR_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/wchar/wchar.c uClibc-git/libc/misc/wchar/wchar.c
---- uClibc-0.9.33.2/libc/misc/wchar/wchar.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/wchar/wchar.c 2014-07-25 20:36:05.969330302 +0200
-@@ -12,8 +12,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -1196,6 +1196,9 @@
- #endif
-
- #if defined L_iconv || defined L_iconv_main
-+# ifdef L_iconv_main
-+static
-+# endif
- const unsigned char __iconv_codesets[] =
- "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */
- #if __BYTE_ORDER == __BIG_ENDIAN
-diff -Nur uClibc-0.9.33.2/libc/misc/wctype/Makefile.in uClibc-git/libc/misc/wctype/Makefile.in
---- uClibc-0.9.33.2/libc/misc/wctype/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/wctype/Makefile.in 2014-07-25 20:36:05.985330385 +0200
-@@ -14,19 +14,15 @@
- iswxdigit.c iswblank.c wctrans.c towctrans.c \
- wctype.c iswctype.c towlower.c towupper.c
-
--CSRC :=
--ifeq ($(UCLIBC_HAS_WCHAR),y)
--CSRC += $(COM_SRC)
--endif
--ifeq ($(UCLIBC_HAS_XLOCALE),y)
--CSRC += $(patsubst %.c,%_l.c,$(COM_SRC))
--endif
-+CSRC-y :=
-+CSRC-$(UCLIBC_HAS_WCHAR) += $(COM_SRC)
-+CSRC-$(UCLIBC_HAS_XLOCALE) += $(patsubst %.c,%_l.c,$(COM_SRC))
-
- MISC_WCTYPE_DIR := $(top_srcdir)libc/misc/wctype
- MISC_WCTYPE_OUT := $(top_builddir)libc/misc/wctype
-
--MISC_WCTYPE_SRC := $(patsubst %.c,$(MISC_WCTYPE_DIR)/%.c,$(CSRC))
--MISC_WCTYPE_OBJ := $(patsubst %.c,$(MISC_WCTYPE_OUT)/%.o,$(CSRC))
-+MISC_WCTYPE_SRC := $(patsubst %.c,$(MISC_WCTYPE_DIR)/%.c,$(CSRC-y))
-+MISC_WCTYPE_OBJ := $(patsubst %.c,$(MISC_WCTYPE_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(MISC_WCTYPE_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/wctype/_wctype.c uClibc-git/libc/misc/wctype/_wctype.c
---- uClibc-0.9.33.2/libc/misc/wctype/_wctype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/wctype/_wctype.c 2014-07-25 20:36:05.985330385 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -41,10 +41,6 @@
- # error xlocale functionality is not supported in stub locale mode.
- #endif
-
--#ifdef __UCLIBC_HAS_XLOCALE__
--# include <xlocale.h>
--#endif
--
- /* We know wide char support is enabled. We wouldn't be here otherwise. */
-
- /* Define this if you want to unify the towupper and towlower code in the
-diff -Nur uClibc-0.9.33.2/libc/misc/wordexp/Makefile.in uClibc-git/libc/misc/wordexp/Makefile.in
---- uClibc-0.9.33.2/libc/misc/wordexp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/wordexp/Makefile.in 2014-07-25 20:36:05.997330448 +0200
-@@ -7,13 +7,13 @@
-
- subdirs += libc/misc/wordexp
-
--CSRC := wordexp.c
-+CSRC-y := wordexp.c
-
- MISC_WORDEXP_DIR := $(top_srcdir)libc/misc/wordexp
- MISC_WORDEXP_OUT := $(top_builddir)libc/misc/wordexp
-
--MISC_WORDEXP_SRC := $(patsubst %.c,$(MISC_WORDEXP_DIR)/%.c,$(CSRC))
--MISC_WORDEXP_OBJ := $(patsubst %.c,$(MISC_WORDEXP_OUT)/%.o,$(CSRC))
-+MISC_WORDEXP_SRC := $(patsubst %.c,$(MISC_WORDEXP_DIR)/%.c,$(CSRC-y))
-+MISC_WORDEXP_OBJ := $(patsubst %.c,$(MISC_WORDEXP_OUT)/%.o,$(CSRC-y))
-
- libc-$(UCLIBC_HAS_WORDEXP) += $(MISC_WORDEXP_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/misc/wordexp/wordexp.c uClibc-git/libc/misc/wordexp/wordexp.c
---- uClibc-0.9.33.2/libc/misc/wordexp/wordexp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/misc/wordexp/wordexp.c 2014-07-25 20:36:05.997330448 +0200
-@@ -16,11 +16,11 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <bits/kernel-features.h>
-+#include <ctype.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <fcntl.h>
-@@ -36,6 +36,10 @@
- #include <glob.h>
- #include <wordexp.h>
-
-+#ifndef __ARCH_USE_MMU__
-+# define fork vfork
-+#endif
-+
- #define __WORDEXP_FULL
-
- /*
-diff -Nur uClibc-0.9.33.2/libc/pwd_grp/lckpwdf.c uClibc-git/libc/pwd_grp/lckpwdf.c
---- uClibc-0.9.33.2/libc/pwd_grp/lckpwdf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/pwd_grp/lckpwdf.c 2014-07-25 20:36:06.017330553 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <fcntl.h>
-@@ -51,6 +50,7 @@
- struct sigaction new_act; /* New signal action. */
- struct flock fl; /* Information struct for locking. */
- int result;
-+ int rv = -1;
-
- if (lock_fd != -1)
- /* Still locked by own process. */
-@@ -111,11 +111,13 @@
- if (result < 0) {
- close(lock_fd);
- lock_fd = -1;
-+ goto DONE;
- }
-+ rv = 0;
-
- DONE:
- __UCLIBC_MUTEX_UNLOCK(mylock);
-- return 0; /* TODO: return result? */
-+ return rv;
- }
-
-
-diff -Nur uClibc-0.9.33.2/libc/pwd_grp/Makefile.in uClibc-git/libc/pwd_grp/Makefile.in
---- uClibc-0.9.33.2/libc/pwd_grp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/pwd_grp/Makefile.in 2014-07-25 20:36:06.009330510 +0200
-@@ -10,20 +10,17 @@
- PWDGRP_DIR := $(top_srcdir)libc/pwd_grp
- PWDGRP_OUT := $(top_builddir)libc/pwd_grp
-
--CSRC := $(notdir $(wildcard $(PWDGRP_DIR)/*.c))
--CSRC := $(filter-out pwd_grp.c pwd_grp_internal.c,$(CSRC))
--
--ifneq ($(UCLIBC_HAS_SHADOW),y)
--SHADOW_CSRC := \
-- fgetspent_r.c fgetspent.c getspent_r.c getspent.c \
-+CSRC-y := $(notdir $(wildcard $(PWDGRP_DIR)/*.c))
-+CSRC- := pwd_grp.c pwd_grp_internal.c # multi-source and helper
-+CSRC-$(UCLIBC_HAS_SHADOW) += fgetspent_r.c fgetspent.c getspent_r.c getspent.c \
- getspnam_r.c getspnam.c lckpwdf.c putspent.c \
- sgetspent_r.c sgetspent.c __parsespent.c
- # getspuid_r.c getspuid.c
--CSRC := $(filter-out $(SHADOW_CSRC),$(CSRC))
--endif
-
--PWDGRP_SRC := $(patsubst %.c,$(PWDGRP_DIR)/%.c,$(CSRC))
--PWDGRP_OBJ := $(patsubst %.c,$(PWDGRP_OUT)/%.o,$(CSRC))
-+CSRC-y := $(filter-out $(CSRC-),$(CSRC-y))
-+
-+PWDGRP_SRC := $(patsubst %.c,$(PWDGRP_DIR)/%.c,$(CSRC-y))
-+PWDGRP_OBJ := $(patsubst %.c,$(PWDGRP_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(PWDGRP_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/pwd_grp/pwd_grp.c uClibc-git/libc/pwd_grp/pwd_grp.c
---- uClibc-0.9.33.2/libc/pwd_grp/pwd_grp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/pwd_grp/pwd_grp.c 2014-07-25 20:36:06.017330553 +0200
-@@ -354,6 +354,7 @@
- getpwnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
- return result;
- }
-+libc_hidden_def(getpwnam)
-
- #endif
- /**********************************************************************/
-diff -Nur uClibc-0.9.33.2/libc/pwd_grp/pwd_grp_internal.c uClibc-git/libc/pwd_grp/pwd_grp_internal.c
---- uClibc-0.9.33.2/libc/pwd_grp/pwd_grp_internal.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/pwd_grp/pwd_grp_internal.c 2014-07-25 20:36:06.017330553 +0200
-@@ -34,9 +34,6 @@
- #ifdef __UCLIBC_HAS_SHADOW__
- #include <shadow.h>
- #endif
--#ifdef __UCLIBC_HAS_THREADS__
--#include <pthread.h>
--#endif
-
- /**********************************************************************/
- /* Sizes for statically allocated buffers. */
-diff -Nur uClibc-0.9.33.2/libc/signal/allocrtsig.c uClibc-git/libc/signal/allocrtsig.c
---- uClibc-0.9.33.2/libc/signal/allocrtsig.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/allocrtsig.c 2014-07-25 20:36:06.033330637 +0200
-@@ -14,13 +14,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <signal.h>
--#include <sys/types.h>
- #include <sys/syscall.h>
-
- /* Only enable rt signals when it is supported at compile time */
-@@ -34,6 +32,13 @@
- #else
- # ifdef __UCLIBC_HAS_THREADS_NATIVE__
- static int current_rtmin = __SIGRTMIN + 2;
-+# elif defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
-+/* psm: might be good for LT old as well, do not want to break it for now */
-+/* Sanity check */
-+# if !defined __SIGRTMIN || (__SIGRTMAX - __SIGRTMIN) < 3
-+# error "This must not happen"
-+# endif
-+static int current_rtmin = __SIGRTMIN + 3;
- # else
- static int current_rtmin = __SIGRTMIN;
- # endif
-@@ -52,6 +57,7 @@
- return current_rtmax;
- }
-
-+#if 0
- /* Allocate real-time signal with highest/lowest available
- priority. Please note that we don't use a lock since we assume
- this function to be called at program start. */
-@@ -64,3 +70,4 @@
-
- return high ? current_rtmin++ : current_rtmax--;
- }
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/signal/killpg.c uClibc-git/libc/signal/killpg.c
---- uClibc-0.9.33.2/libc/signal/killpg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/killpg.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,14 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-
--
- /* Send SIG to all processes in process group PGRP.
- If PGRP is zero, send SIG to all processes in
- the current process's process group. */
-diff -Nur uClibc-0.9.33.2/libc/signal/Makefile.in uClibc-git/libc/signal/Makefile.in
---- uClibc-0.9.33.2/libc/signal/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/Makefile.in 2014-07-25 20:36:06.033330637 +0200
-@@ -8,20 +8,18 @@
- subdirs += libc/signal
-
- CSRC-y := allocrtsig.c killpg.c raise.c sigaction.c sigaddset.c sigandset.c \
-- sigblock.c sigdelset.c sigempty.c sigfillset.c siggetmask.c \
-+ sigdelset.c sigempty.c sigfillset.c \
- sigisempty.c sigismem.c sigjmp.c signal.c \
-- sigorset.c sigsetmask.c sigsetops.c sigwait.c
-+ sigorset.c sigsetops.c sigwait.c
- CSRC-$(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL) += \
- sighold.c sigignore.c sigrelse.c sigset.c
- CSRC-$(UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL) += sysv_signal.c
- CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c sigpause.c
-
--ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC-y:=$(filter-out raise.c,$(CSRC-y))
--endif
-+CSRC-$(UCLIBC_HAS_THREADS_NATIVE):=$(filter-out raise.c,$(CSRC-y))
-
--ifneq ($(strip $(ARCH_OBJS)),)
--CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)),$(CSRC-y))
-+ifneq ($(strip $(ARCH_OBJS-y)),)
-+CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)),$(CSRC-y))
- endif
-
- ifneq ($(UCLIBC_HAS_BACKTRACE),)
-diff -Nur uClibc-0.9.33.2/libc/signal/raise.c uClibc-git/libc/signal/raise.c
---- uClibc-0.9.33.2/libc/signal/raise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/raise.c 2014-07-25 20:36:06.033330637 +0200
-@@ -3,9 +3,7 @@
- */
-
- #include <unistd.h>
--#include <string.h>
- #include <signal.h>
--#include <sys/types.h>
-
- int raise(int signo)
- {
-diff -Nur uClibc-0.9.33.2/libc/signal/sigaction.c uClibc-git/libc/signal/sigaction.c
---- uClibc-0.9.33.2/libc/signal/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigaction.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,23 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#include <errno.h>
- #include <signal.h>
--#include <string.h>
- #include <sys/syscall.h>
-
--#include <bits/kernel_sigaction.h>
--
--#ifndef LIBC_SIGACTION
--extern __typeof(sigaction) __libc_sigaction;
--#endif
--
--
- #if defined __NR_rt_sigaction
-
- /* If ACT is not NULL, change the action for SIG to *ACT.
-@@ -47,6 +36,9 @@
- }
-
- #else
-+# define __need_NULL
-+# include <stddef.h>
-+# include <bits/kernel_sigaction.h>
-
- /* If ACT is not NULL, change the action for SIG to *ACT.
- If OACT is not NULL, put the old action for SIG in *OACT. */
-diff -Nur uClibc-0.9.33.2/libc/signal/sigaddset.c uClibc-git/libc/signal/sigaddset.c
---- uClibc-0.9.33.2/libc/signal/sigaddset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigaddset.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,11 +12,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "sigsetops.h"
-+#define __need_NULL
-+#include <stddef.h>
-+#include <signal.h>
-+#include <errno.h>
-
- /* Add SIGNO to SET. */
- int
-diff -Nur uClibc-0.9.33.2/libc/signal/sigandset.c uClibc-git/libc/signal/sigandset.c
---- uClibc-0.9.33.2/libc/signal/sigandset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigandset.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libc/signal/sigblock.c uClibc-git/libc/signal/sigblock.c
---- uClibc-0.9.33.2/libc/signal/sigblock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigblock.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,18 +12,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __UCLIBC_HIDE_DEPRECATED__
--#include <errno.h>
-+/*#define __UCLIBC_HIDE_DEPRECATED__*/
- #include <signal.h>
-
- #include "sigset-cvt-mask.h"
-
- /* Block signals in MASK, returning the old mask. */
--int sigblock (int mask)
-+static int sigblock (int mask)
- {
- sigset_t set, oset;
-
-@@ -31,4 +29,3 @@
- sigprocmask (SIG_BLOCK, &set, &oset); /* can't fail */
- return sigset_get_old_mask (&oset);
- }
--libc_hidden_def(sigblock)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigdelset.c uClibc-git/libc/signal/sigdelset.c
---- uClibc-0.9.33.2/libc/signal/sigdelset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigdelset.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,11 +12,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "sigsetops.h"
-+#define __need_NULL
-+#include <stddef.h>
-+#include <signal.h>
-+#include <errno.h>
-
- /* Add SIGNO to SET. */
- int sigdelset (sigset_t *set, int signo)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigempty.c uClibc-git/libc/signal/sigempty.c
---- uClibc-0.9.33.2/libc/signal/sigempty.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigempty.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,14 +12,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <errno.h>
- #include <signal.h>
--#include <string.h>
--
-+#if 0
-+#define __need_NULL
-+#include <stddef.h>
-+#include <errno.h>
-+#endif
-
- /* Clear all signals from SET. */
- int sigemptyset (sigset_t *set)
-@@ -36,4 +37,3 @@
-
- return 0;
- }
--libc_hidden_def(sigemptyset)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigfillset.c uClibc-git/libc/signal/sigfillset.c
---- uClibc-0.9.33.2/libc/signal/sigfillset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigfillset.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,17 +12,18 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <errno.h>
- #include <signal.h>
--#include <string.h>
- #ifdef __UCLIBC_HAS_THREADS_NATIVE__
- # include <pthreadP.h> /* SIGCANCEL */
- #endif
--
-+#if 0
-+#define __need_NULL
-+#include <stddef.h>
-+#include <errno.h>
-+#endif
-
- /* Set all signals in SET. */
- int
-@@ -49,4 +50,3 @@
-
- return 0;
- }
--libc_hidden_def(sigfillset)
-diff -Nur uClibc-0.9.33.2/libc/signal/siggetmask.c uClibc-git/libc/signal/siggetmask.c
---- uClibc-0.9.33.2/libc/signal/siggetmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/siggetmask.c 2014-07-25 20:36:06.033330637 +0200
-@@ -13,14 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __UCLIBC_HIDE_DEPRECATED__
- #include <signal.h>
-
--
- int
- siggetmask (void)
- {
-diff -Nur uClibc-0.9.33.2/libc/signal/sighold.c uClibc-git/libc/signal/sighold.c
---- uClibc-0.9.33.2/libc/signal/sighold.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sighold.c 2014-07-25 20:36:06.033330637 +0200
-@@ -14,15 +14,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __need_NULL
- #include <stddef.h>
- #include <signal.h>
-
--
- int sighold (int sig)
- {
- sigset_t set;
-diff -Nur uClibc-0.9.33.2/libc/signal/sigignore.c uClibc-git/libc/signal/sigignore.c
---- uClibc-0.9.33.2/libc/signal/sigignore.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigignore.c 2014-07-25 20:36:06.033330637 +0200
-@@ -14,16 +14,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <errno.h>
- #define __need_NULL
- #include <stddef.h>
- #include <signal.h>
--#include <string.h> /* For the real memset prototype. */
--
-+#include <string.h>
-
- int sigignore (int sig)
- {
-diff -Nur uClibc-0.9.33.2/libc/signal/sigintr.c uClibc-git/libc/signal/sigintr.c
---- uClibc-0.9.33.2/libc/signal/sigintr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigintr.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,20 +12,19 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <stddef.h>
- #include <signal.h>
--#include <errno.h>
--
-
- /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
- (causing them to fail with EINTR); if INTERRUPT is zero, make system
- calls be restarted after signal SIG. */
- #ifdef SA_RESTART
--extern sigset_t _sigintr attribute_hidden; /* Defined in signal.c. */
-+# define __need_NULL
-+# include <stddef.h>
-+#else
-+# include <errno.h>
- #endif
-
- int siginterrupt (int sig, int interrupt)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigisempty.c uClibc-git/libc/signal/sigisempty.c
---- uClibc-0.9.33.2/libc/signal/sigisempty.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigisempty.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libc/signal/sigismem.c uClibc-git/libc/signal/sigismem.c
---- uClibc-0.9.33.2/libc/signal/sigismem.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigismem.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,11 +12,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "sigsetops.h"
-+#define __need_NULL
-+#include <stddef.h>
-+#include <signal.h>
-+#include <errno.h>
-
- /* Return 1 if SIGNO is in SET, 0 if not. */
- int sigismember (const sigset_t *set, int signo)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigjmp.c uClibc-git/libc/signal/sigjmp.c
---- uClibc-0.9.33.2/libc/signal/sigjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigjmp.c 2014-07-25 20:36:06.033330637 +0200
-@@ -12,21 +12,18 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-+#define __need_NULL
- #include <stddef.h>
- #include <setjmp.h>
- #include <signal.h>
--#include <libc-internal.h>
--
-
- /* This function is called by the `sigsetjmp' macro
- before doing a `__setjmp' on ENV[0].__jmpbuf.
- Always return zero. */
-
--int __sigjmp_save (sigjmp_buf env, int savemask) attribute_hidden;
- int __sigjmp_save (sigjmp_buf env, int savemask)
- {
- env[0].__mask_was_saved = (savemask &&
-diff -Nur uClibc-0.9.33.2/libc/signal/signal.c uClibc-git/libc/signal/signal.c
---- uClibc-0.9.33.2/libc/signal/signal.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/signal.c 2014-07-25 20:36:06.033330637 +0200
-@@ -14,15 +14,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
- #include <string.h> /* For the real memset prototype. */
-
--sigset_t _sigintr attribute_hidden; /* Set by siginterrupt. */
-+sigset_t _sigintr; /* Set by siginterrupt. */
-
- /* Set the handler for the signal SIG to HANDLER,
- returning the old handler, or SIG_ERR on error. */
-diff -Nur uClibc-0.9.33.2/libc/signal/sigorset.c uClibc-git/libc/signal/sigorset.c
---- uClibc-0.9.33.2/libc/signal/sigorset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigorset.c 2014-07-25 20:36:06.037330658 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libc/signal/sigpause.c uClibc-git/libc/signal/sigpause.c
---- uClibc-0.9.33.2/libc/signal/sigpause.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigpause.c 2014-07-25 20:36:06.037330658 +0200
-@@ -13,25 +13,19 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define __UCLIBC_HIDE_DEPRECATED__
--/* psm: need the BSD version of sigpause here */
--#include <errno.h>
--#define __FAVOR_BSD
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
- #include <signal.h>
--#include <stddef.h> /* For NULL. */
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#endif
-+#define __need_NULL
-+#include <stddef.h>
-+#include <cancel.h>
-
- #include "sigset-cvt-mask.h"
-
- /* Set the mask of blocked signals to MASK,
- wait for a signal to arrive, and then restore the mask. */
--int __sigpause (int sig_or_mask, int is_sig)
-+static int __sigpause (int sig_or_mask, int is_sig)
- {
- sigset_t set;
-
-@@ -49,29 +43,21 @@
- /* Note the sigpause() is a cancellation point. But since we call
- sigsuspend() which itself is a cancellation point we do not have
- to do anything here. */
-- return sigsuspend (&set);
-+ /* uClibc note: not true on uClibc, we call the non-cancellable version */
-+ return __NC(sigsuspend)(&set);
- }
--libc_hidden_def(__sigpause)
-
--#undef sigpause
-+int __bsd_sigpause(int mask);
-+int __bsd_sigpause(int mask)
-+{
-+ return __sigpause(mask, 0);
-+}
-
- /* We have to provide a default version of this function since the
- standards demand it. The version which is a bit more reasonable is
- the BSD version. So make this the default. */
--int sigpause (int mask)
-+static int __NC(sigpause)(int sig)
- {
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- if (SINGLE_THREAD_P)
-- return __sigpause (mask, 0);
--
-- int oldtype = LIBC_CANCEL_ASYNC ();
--
-- int result = __sigpause (mask, 0);
--
-- LIBC_CANCEL_RESET (oldtype);
--
-- return result;
--#else
-- return __sigpause (mask, 0);
--#endif
-+ return __sigpause(sig, 1);
- }
-+CANCELLABLE_SYSCALL(int, sigpause, (int sig), (sig))
-diff -Nur uClibc-0.9.33.2/libc/signal/sigrelse.c uClibc-git/libc/signal/sigrelse.c
---- uClibc-0.9.33.2/libc/signal/sigrelse.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigrelse.c 2014-07-25 20:36:06.037330658 +0200
-@@ -14,15 +14,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __need_NULL
- #include <stddef.h>
- #include <signal.h>
-
--
- int sigrelse (int sig)
- {
- sigset_t set;
-diff -Nur uClibc-0.9.33.2/libc/signal/sigset.c uClibc-git/libc/signal/sigset.c
---- uClibc-0.9.33.2/libc/signal/sigset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigset.c 2014-07-25 20:36:06.037330658 +0200
-@@ -12,16 +12,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #define __need_NULL
- #include <stddef.h>
- #include <signal.h>
--#include <string.h> /* For the real memset prototype. */
--
-+#include <string.h>
-
- /* Set the disposition for SIG. */
- __sighandler_t sigset (int sig, __sighandler_t disp)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigset-cvt-mask.h uClibc-git/libc/signal/sigset-cvt-mask.h
---- uClibc-0.9.33.2/libc/signal/sigset-cvt-mask.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigset-cvt-mask.h 2014-07-25 20:36:06.037330658 +0200
-@@ -15,9 +15,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SIGSET_CVT_MASK_H
-+#define _SIGSET_CVT_MASK_H
-
- #include <string.h>
-
-@@ -36,3 +38,5 @@
- {
- return (unsigned int) set->__val[0];
- }
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/signal/sigsetmask.c uClibc-git/libc/signal/sigsetmask.c
---- uClibc-0.9.33.2/libc/signal/sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigsetmask.c 2014-07-25 20:36:06.037330658 +0200
-@@ -12,18 +12,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __UCLIBC_HIDE_DEPRECATED__
--#include <errno.h>
-+/*#define __UCLIBC_HIDE_DEPRECATED__*/
- #include <signal.h>
-
- #include "sigset-cvt-mask.h"
-
- /* Set the mask of blocked signals to MASK, returning the old mask. */
--int
-+static int
- sigsetmask (int mask)
- {
- sigset_t set, oset;
-@@ -32,4 +30,3 @@
- sigprocmask (SIG_SETMASK, &set, &oset); /* can't fail */
- return sigset_get_old_mask (&oset);
- }
--libc_hidden_def(sigsetmask)
-diff -Nur uClibc-0.9.33.2/libc/signal/sigsetops.h uClibc-git/libc/signal/sigsetops.h
---- uClibc-0.9.33.2/libc/signal/sigsetops.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigsetops.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,33 +0,0 @@
--/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--/* Definitions relevant to functions that operate on `sigset_t's. */
--
--#include <errno.h>
--#include <signal.h>
--#include <string.h>
--
--#define BITS (_NSIG - 1)
--#define ELT(signo) (((signo) - 1) / BITS)
--#define MASK(signo) (1 << (((signo) - 1) % BITS))
--
--#undef sigemptyset
--#undef sigfillset
--#undef sigaddset
--#undef sigdelset
--#undef sigismember
-diff -Nur uClibc-0.9.33.2/libc/signal/sigwait.c uClibc-git/libc/signal/sigwait.c
---- uClibc-0.9.33.2/libc/signal/sigwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sigwait.c 2014-07-25 20:36:06.037330658 +0200
-@@ -15,96 +15,42 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA. */
--
--#include <errno.h>
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#define __need_NULL
-+#include <stddef.h>
-+#include <sys/syscall.h>
- #include <signal.h>
--#include <string.h>
--#include <unistd.h>
-+#include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
-+#if defined __NR_rt_sigtimedwait && defined __UCLIBC_HAS_REALTIME__
-
--# ifdef __NR_rt_sigtimedwait
-+#include <string.h>
-
- /* Return any pending signal or wait for one for the given time. */
--static int do_sigwait(const sigset_t *set, int *sig)
-+static int __NC(sigwait)(const sigset_t *set, int *sig)
- {
- int ret;
-
--# ifdef SIGCANCEL
-- sigset_t tmpset;
-- if (set != NULL
-- && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
--# ifdef SIGSETXID
-- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
--# endif
-- ))
-- {
-- /* Create a temporary mask without the bit for SIGCANCEL set. */
-- // We are not copying more than we have to.
-- memcpy(&tmpset, set, _NSIG / 8);
-- __sigdelset(&tmpset, SIGCANCEL);
--# ifdef SIGSETXID
-- __sigdelset(&tmpset, SIGSETXID);
--# endif
-- set = &tmpset;
-- }
--# endif
--
-- /* XXX The size argument hopefully will have to be changed to the
-- real size of the user-level sigset_t. */
-- INTERNAL_SYSCALL_DECL(err);
- do
-- ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, set, NULL,
-- NULL, _NSIG / 8);
-- while (INTERNAL_SYSCALL_ERROR_P (ret, err)
-- && INTERNAL_SYSCALL_ERRNO (ret, err) == EINTR);
-- if (! INTERNAL_SYSCALL_ERROR_P (ret, err))
-- {
-+ /* we might as well use sigtimedwait and do not care about cancellation */
-+ ret = __NC(sigtimedwait)(set, NULL, NULL);
-+ while (ret == -1 && errno == EINTR);
-+ if (ret != -1) {
- *sig = ret;
- ret = 0;
-- }
--else
-- ret = INTERNAL_SYSCALL_ERRNO (ret, err);
-+ } else
-+ ret = errno;
-
- return ret;
- }
-
--int sigwait (const sigset_t *set, int *sig)
--{
-- if(SINGLE_THREAD_P)
-- return do_sigwait(set, sig);
--
-- int oldtype = LIBC_CANCEL_ASYNC();
--
-- int result = do_sigwait(set, sig);
-+#else /* __NR_rt_sigtimedwait */
-
-- LIBC_CANCEL_RESET(oldtype);
--
-- return result;
--}
--# else /* __NR_rt_sigtimedwait */
--# error We must have rt_sigtimedwait defined!!!
--# endif
--#else /* __UCLIBC_HAS_THREADS_NATIVE__ */
--
--# if defined __UCLIBC_HAS_REALTIME__
--
--int sigwait (const sigset_t *set, int *sig)
--{
-- int ret = 1;
-- if ((ret = sigwaitinfo(set, NULL)) != -1) {
-- *sig = ret;
-- return 0;
-- }
-- return 1;
--}
--
--# else /* __UCLIBC_HAS_REALTIME__ */
- /* variant without REALTIME extensions */
-+#include <unistd.h> /* smallint */
-
- static smallint was_sig; /* obviously not thread-safe */
-
-@@ -113,7 +59,7 @@
- was_sig = sig;
- }
-
--int sigwait (const sigset_t *set, int *sig)
-+static int __NC(sigwait)(const sigset_t *set, int *sig)
- {
- sigset_t tmp_mask;
- struct sigaction saved[NSIG];
-@@ -147,7 +93,7 @@
- }
-
- /* Now we can wait for signals. */
-- sigsuspend (&tmp_mask);
-+ __NC(sigsuspend)(&tmp_mask);
-
- restore_handler:
- save_errno = errno;
-@@ -163,5 +109,6 @@
- *sig = was_sig;
- return was_sig == -1 ? -1 : 0;
- }
--# endif /* __UCLIBC_HAS_REALTIME__ */
--#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
-+#endif /* __NR_rt_sigtimedwait */
-+
-+CANCELLABLE_SYSCALL(int, sigwait, (const sigset_t *set, int *sig), (set, sig))
-diff -Nur uClibc-0.9.33.2/libc/signal/sysv_signal.c uClibc-git/libc/signal/sysv_signal.c
---- uClibc-0.9.33.2/libc/signal/sysv_signal.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/signal/sysv_signal.c 2014-07-25 20:36:06.037330658 +0200
-@@ -12,14 +12,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
--#include <string.h> /* For the real memset prototype. */
--
-
- /* Tolerate non-threads versions of Posix */
- #ifndef SA_ONESHOT
-diff -Nur uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.c uClibc-git/libc/stdio/_fpmaxtostr.c
---- uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_fpmaxtostr.c 2014-07-25 20:36:06.045330699 +0200
-@@ -1,6 +1,7 @@
--/* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
-+/*
-+ * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
- *
-- * GNU Library General Public License (LGPL) version 2 or later.
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- *
- * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
- */
-@@ -9,15 +10,9 @@
- #include <printf.h>
- #include <float.h>
- #include <locale.h>
--#include <bits/uClibc_fpmax.h>
-+#include "_fpmaxtostr.h"
-
--
--typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
-- intptr_t buf);
--
--
--/* Copyright (C) 2000, 2001, 2003 Manuel Novoa III
-- *
-+/*
- * Function:
- *
- * ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
-@@ -40,7 +35,6 @@
- * It should also be fairly portable, as no assumptions are made about the
- * bit-layout of doubles. Of course, that does make it less efficient than
- * it could be.
-- *
- */
-
- /*****************************************************************************/
-@@ -67,9 +61,6 @@
-
- #define NUM_HEX_DIGITS ((FPMAX_MANT_DIG + 3)/ 4)
-
--/* WARNING: Adjust _fp_out_wide() below if this changes! */
--/* With 32 bit ints, we can get 9 decimal digits per block. */
--#define DIGITS_PER_BLOCK 9
- #define HEX_DIGITS_PER_BLOCK 8
-
- /* Maximum number of subcases to output double is...
-@@ -87,15 +78,9 @@
-
- /*****************************************************************************/
-
--#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
- #define NUM_HEX_DIGIT_BLOCKS \
- ((NUM_HEX_DIGITS+HEX_DIGITS_PER_BLOCK-1)/HEX_DIGITS_PER_BLOCK)
-
--/* WARNING: Adjust _fp_out_wide() below if this changes! */
--
--/* extra space for '-', '.', 'e+###', and nul */
--#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
--
- /*****************************************************************************/
-
- static const char fmt[] = "inf\0INF\0nan\0NAN\0.\0,";
-@@ -200,8 +185,6 @@
- #define FPO_STR_PREC 'p'
-
- ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
-- __fp_outfunc_t fp_outfunc) attribute_hidden;
--ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
- __fp_outfunc_t fp_outfunc)
- {
- #ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
-@@ -219,8 +202,8 @@
- #ifdef __UCLIBC_HAS_GLIBC_DIGIT_GROUPING__
- int num_groups = 0;
- int initial_group; /* This does not need to be initialized. */
-- int tslen; /* This does not need to be initialized. */
-- int nblk2; /* This does not need to be initialized. */
-+ int tslen; /* This does not need to be initialized. */
-+ int nblk2; /* This does not need to be initialized. */
- const char *ts; /* This does not need to be initialized. */
- #endif /* __UCLIBC_HAS_GLIBC_DIGIT_GROUPING__ */
- int round, o_exp;
-diff -Nur uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.h uClibc-git/libc/stdio/_fpmaxtostr.h
---- uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/stdio/_fpmaxtostr.h 2014-07-25 20:36:06.045330699 +0200
-@@ -0,0 +1,49 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ *
-+ * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
-+ */
-+
-+#ifndef _FPMAXTOSTR_H
-+#define _FPMAXTOSTR_H 1
-+
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_FLOATS__
-+
-+#define __need_size_t
-+#include <stddef.h>
-+#include <stdint.h>
-+#include <stdio.h>
-+#include <printf.h>
-+#include <sys/types.h>
-+#include <float.h>
-+#include <bits/uClibc_fpmax.h>
-+
-+/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
-+/* With 32 bit ints, we can get 9 decimal digits per block. */
-+#define DIGITS_PER_BLOCK 9
-+
-+#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
-+
-+/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
-+/* extra space for '-', '.', 'e+###', and nul */
-+#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
-+
-+/* psm: why do these internals differ? */
-+#ifdef __USE_OLD_VFPRINTF__
-+typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
-+
-+extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
-+ __fp_outfunc_t fp_outfunc) attribute_hidden;
-+#else
-+typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
-+
-+extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
-+ __fp_outfunc_t fp_outfunc) attribute_hidden;
-+#endif
-+
-+#endif /* __UCLIBC_HAS_FLOATS__ */
-+#endif /* _FPMAXTOSTR_H */
-diff -Nur uClibc-0.9.33.2/libc/stdio/fputc.c uClibc-git/libc/stdio/fputc.c
---- uClibc-0.9.33.2/libc/stdio/fputc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/fputc.c 2014-07-25 20:36:06.049330721 +0200
-@@ -72,16 +72,13 @@
- libc_hidden_def(__fputc_unlocked)
-
- strong_alias(__fputc_unlocked,fputc_unlocked)
--libc_hidden_def(fputc_unlocked)
-
- strong_alias(__fputc_unlocked,putc_unlocked)
--libc_hidden_def(putc_unlocked)
- #ifndef __UCLIBC_HAS_THREADS__
- strong_alias(__fputc_unlocked,fputc)
- libc_hidden_def(fputc)
-
- strong_alias(__fputc_unlocked,putc)
--libc_hidden_def(putc)
- #endif
-
- #elif defined __UCLIBC_HAS_THREADS__
-@@ -101,6 +98,5 @@
- libc_hidden_def(fputc)
-
- strong_alias(fputc,putc)
--libc_hidden_def(putc)
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdio/fputwc.c uClibc-git/libc/stdio/fputwc.c
---- uClibc-0.9.33.2/libc/stdio/fputwc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/fputwc.c 2014-07-25 20:36:06.049330721 +0200
-@@ -19,6 +19,7 @@
- strong_alias(fputwc_unlocked,putwc_unlocked)
- #ifndef __UCLIBC_HAS_THREADS__
- strong_alias(fputwc_unlocked,fputwc)
-+libc_hidden_def(fputwc)
- strong_alias(fputwc_unlocked,putwc)
- #endif
-
-@@ -37,6 +38,7 @@
-
- return retval;
- }
-+libc_hidden_def(fputwc)
-
- strong_alias(fputwc,putwc)
-
-diff -Nur uClibc-0.9.33.2/libc/stdio/fseeko.c uClibc-git/libc/stdio/fseeko.c
---- uClibc-0.9.33.2/libc/stdio/fseeko.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/fseeko.c 2014-07-25 20:36:06.049330721 +0200
-@@ -77,5 +77,5 @@
- libc_hidden_def(fseeko64)
- #else
- libc_hidden_def(fseek)
--strong_alias(fseek,fseeko)
-+strong_alias_untyped(fseek,fseeko)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdio/ftello.c uClibc-git/libc/stdio/ftello.c
---- uClibc-0.9.33.2/libc/stdio/ftello.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/ftello.c 2014-07-25 20:36:06.049330721 +0200
-@@ -53,5 +53,5 @@
- libc_hidden_def(ftello64)
- #else
- libc_hidden_def(ftell)
--strong_alias(ftell,ftello)
-+strong_alias_untyped(ftell,ftello)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdio/_load_inttype.c uClibc-git/libc/stdio/_load_inttype.c
---- uClibc-0.9.33.2/libc/stdio/_load_inttype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_load_inttype.c 2014-07-25 20:36:06.045330699 +0200
-@@ -8,7 +8,6 @@
- #include "_stdio.h"
- #include <printf.h>
-
--uintmax_t _load_inttype(int desttype, register const void *src, int uflag) attribute_hidden;
- uintmax_t _load_inttype(int desttype, register const void *src, int uflag)
- {
- if (uflag >= 0) { /* unsigned */
-diff -Nur uClibc-0.9.33.2/libc/stdio/Makefile.in uClibc-git/libc/stdio/Makefile.in
---- uClibc-0.9.33.2/libc/stdio/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/Makefile.in 2014-07-25 20:36:06.041330678 +0200
-@@ -11,7 +11,7 @@
- subdirs += libc/stdio
-
- # SUSv3 functions
--CSRC := \
-+CSRC-y := \
- fclose.c fcloseall.c fdopen.c fgetpos.c fopen.c freopen.c \
- fseeko.c fsetpos.c ftello.c getdelim.c getline.c gets.c getw.c \
- perror.c puts.c putw.c remove.c rewind.c setbuf.c setbuffer.c \
-@@ -19,92 +19,80 @@
- printf.c vprintf.c vsprintf.c fprintf.c snprintf.c dprintf.c \
- asprintf.c sprintf.c vasprintf.c vdprintf.c vsnprintf.c \
- tmpfile.c popen.c ctermid.c
-+CSRC-$(UCLIBC_HAS_LFS) += fgetpos64.c fopen64.c freopen64.c \
-+ fseeko64.c fsetpos64.c ftello64.c
-+CSRC-$(UCLIBC_SUSV4_LEGACY) += tmpnam.c tmpnam_r.c tempnam.c
-
--ifeq ($(UCLIBC_HAS_LFS),y)
--CSRC += fgetpos64.c fopen64.c freopen64.c fseeko64.c fsetpos64.c ftello64.c
--endif
--ifeq ($(UCLIBC_SUSV4_LEGACY),y)
--CSRC += tmpnam.c tmpnam_r.c tempnam.c
--endif
--
--# getc -> alias for fgetc
--# putc -> alias for fputc
--# rename is a syscall
--
--# Implementation support functions
--CSRC += \
-+# internal support functions
-+CSRC-y += \
- _READ.c _WRITE.c _adjust_pos.c _fopen.c _fwrite.c \
- _rfill.c _stdio.c _trans2r.c _trans2w.c _wcommit.c \
- _cs_funcs.c _load_inttype.c _store_inttype.c _uintmaxtostr.c
--ifeq ($(UCLIBC_HAS_FLOATS),y)
--CSRC += _fpmaxtostr.c
--endif
-+CSRC-$(UCLIBC_HAS_FLOATS) += _fpmaxtostr.c
-
- # stdio_ext.h functions
--CSRC += \
-+CSRC-y += \
- __fbufsize.c __flbf.c __fpending.c __fpurge.c __freadable.c \
- __freading.c __fsetlocking.c __fwritable.c __fwriting.c _flushlbf.c
-
- # Other glibc extensions
--ifeq ($(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS),y)
--CSRC += fopencookie.c fmemopen.c open_memstream.c
--endif
-+CSRC-$(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS) += fopencookie.c fmemopen.c \
-+ open_memstream.c
-
- # pthread functions
--CSRC += flockfile.c ftrylockfile.c funlockfile.c
-+CSRC-y += flockfile.c ftrylockfile.c funlockfile.c
-
- # Functions with unlocked versions
--CUSRC := \
-+CUSRC-y := \
- clearerr.c feof.c ferror.c fflush.c fgetc.c fgets.c fileno.c \
- fputc.c fputs.c fread.c fwrite.c getchar.c putchar.c
- # getc_unlocked -> alias for fgetc_unlocked
- # putc_unlocked -> alias for fputc_unlocked
-
- # vfprintf and support functions
--ifneq ($(USE_OLD_VFPRINTF),y)
-+ifeq ($(USE_OLD_VFPRINTF),y)
-+VF_CSRC := old_vfprintf.c
-+else
-+# multi source _vfprintf.c
- VF_CSRC := \
- vfprintf.c \
- _vfprintf_internal.c \
- _ppfs_init.c _ppfs_prepargs.c _ppfs_setargs.c _ppfs_parsespec.c \
- register_printf_function.c parse_printf_format.c
--CSRC += $(VF_CSRC)
--else
--CSRC += old_vfprintf.c
- endif
-+CSRC-y += $(VF_CSRC)
-
- # vfscanf and support functions plus other *scanf funcs
--CSRC += \
-+CSRC-y += \
- vfscanf.c __scan_cookie.c __psfs_parse_spec.c __psfs_do_numeric.c \
- scanf.c sscanf.c fscanf.c vscanf.c vsscanf.c
-
--ifeq ($(UCLIBC_HAS_WCHAR),y)
--CSRC += _wfwrite.c fwprintf.c swprintf.c vswprintf.c vwprintf.c wprintf.c \
-+CSRC-$(UCLIBC_HAS_WCHAR) += \
-+ _wfwrite.c fwprintf.c swprintf.c vswprintf.c vwprintf.c wprintf.c \
- fwide.c ungetwc.c
--CUSRC += fgetwc.c getwchar.c fgetws.c fputwc.c putwchar.c fputws.c
-+CUSRC-$(UCLIBC_HAS_WCHAR) += \
-+ fgetwc.c getwchar.c fgetws.c fputwc.c putwchar.c fputws.c
- # getwc (fgetwc alias) getwc_unlocked (fgetwc_unlocked alias)
- # putwc (fputwc alias) putwc_unlocked (fputwc_unlocked alias)
--CSRC += vfwprintf.c _vfwprintf_internal.c
--CSRC += wscanf.c swscanf.c fwscanf.c vwscanf.c vswscanf.c vfwscanf.c
--endif
--
--CUSRC_UNLOCKED := $(patsubst %.c,%_unlocked.c,$(CUSRC))
-+CSRC-$(UCLIBC_HAS_WCHAR) += vfwprintf.c _vfwprintf_internal.c \
-+ wscanf.c swscanf.c fwscanf.c vwscanf.c vswscanf.c vfwscanf.c
-
--CSRC += $(CUSRC) $(CUSRC_UNLOCKED)
-+CUSRC_UNLOCKED := $(patsubst %.c,%_unlocked.c,$(CUSRC-y))
-+CSRC-y += $(CUSRC-y) $(CUSRC_UNLOCKED)
-
- STDIO_DIR := $(top_srcdir)libc/stdio
- STDIO_OUT := $(top_builddir)libc/stdio
-
--STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC))
--STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC))
-+STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC-y))
-+STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(STDIO_OBJ)
-
- ifneq ($(USE_OLD_VFPRINTF),y)
- libc-nomulti-y += $(patsubst %.c,$(STDIO_OUT)/%.o,$(VF_CSRC))
- endif
--ifeq ($(UCLIBC_HAS_WCHAR),y)
--libc-nomulti-y += $(STDIO_OUT)/vfwprintf.o $(STDIO_OUT)/vfwscanf.o
--endif
-+libc-nomulti-$(UCLIBC_HAS_WCHAR) += $(STDIO_OUT)/vfwprintf.o \
-+ $(STDIO_OUT)/vfwscanf.o
-
- objclean-y += CLEAN_libc/stdio
-
-diff -Nur uClibc-0.9.33.2/libc/stdio/old_vfprintf.c uClibc-git/libc/stdio/old_vfprintf.c
---- uClibc-0.9.33.2/libc/stdio/old_vfprintf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/old_vfprintf.c 2014-07-25 20:36:06.049330721 +0200
-@@ -127,9 +127,7 @@
-
- /**************************************************************************/
-
--#define _ISOC99_SOURCE /* for ULLONG primarily... */
- #include "_stdio.h"
--/* #include <stdio.h> */
- #include <stdarg.h>
- #include <limits.h>
- #include <stdint.h>
-@@ -137,14 +135,9 @@
- #include <errno.h>
- #include <ctype.h>
- #include <bits/uClibc_uintmaxtostr.h>
--#include <printf.h>
-
--#ifdef __UCLIBC_HAS_THREADS__
--#include <pthread.h>
--#endif /* __UCLIBC_HAS_THREADS__ */
-+#include "_fpmaxtostr.h"
-
--
--/* #undef __UCLIBC_HAS_FLOATS__ */
- /* #undef WANT_FLOAT_ERROR */
- /* #define WANT_FLOAT_ERROR 1 */
-
-@@ -208,14 +201,6 @@
- #endif /* __STDIO_BUFFERS */
-
- #ifdef __UCLIBC_HAS_FLOATS__
--#include <float.h>
--#include <bits/uClibc_fpmax.h>
--
--typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
-- intptr_t buf);
--
--extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
-- __fp_outfunc_t fp_outfunc) attribute_hidden;
-
- static void _charpad(FILE * __restrict stream, int padchar, size_t numpad)
- {
-@@ -259,9 +244,6 @@
-
- /**********************************************************************/
-
--extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
--extern uintmax_t _load_inttype(int desttype, const void *src, int uflag) attribute_hidden;
--
- /*
- * In order to ease translation to what arginfo and _print_info._flags expect,
- * we map: 0:int 1:char 2:longlong 4:long 8:short
-diff -Nur uClibc-0.9.33.2/libc/stdio/open_memstream.c uClibc-git/libc/stdio/open_memstream.c
---- uClibc-0.9.33.2/libc/stdio/open_memstream.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/open_memstream.c 2014-07-25 20:36:06.049330721 +0200
-@@ -128,7 +128,7 @@
- * (ie replace the FILE buffer with the cookie buffer and update FILE bufstart,
- * etc. whenever we seek). */
-
--FILE *open_memstream(char **__restrict bufloc, size_t *__restrict sizeloc)
-+FILE *open_memstream(char **bufloc, size_t *sizeloc)
- {
- register __oms_cookie *cookie;
- register FILE *fp;
-diff -Nur uClibc-0.9.33.2/libc/stdio/popen.c uClibc-git/libc/stdio/popen.c
---- uClibc-0.9.33.2/libc/stdio/popen.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/popen.c 2014-07-25 20:36:06.049330721 +0200
-@@ -26,15 +26,6 @@
- #warning "hmm... susv3 says Pipe streams are byte-oriented."
- #endif /* __UCLIBC_MJN3_ONLY__ */
-
--
--/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
--#include <sys/syscall.h>
--#if ! defined __NR_vfork
--# define vfork fork
--# define VFORK_LOCK ((void) 0)
--# define VFORK_UNLOCK ((void) 0)
--#endif
--
- #ifndef VFORK_LOCK
- __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER);
- # define VFORK_LOCK __UCLIBC_MUTEX_LOCK(mylock)
-@@ -138,7 +129,7 @@
- int pclose(FILE *stream)
- {
- struct popen_list_item *p;
-- int stat;
-+ int status;
- pid_t pid;
-
- /* First, find the list entry corresponding to stream and remove it
-@@ -173,8 +164,8 @@
- /* SUSv3 specificly requires that pclose not return before the child
- * terminates, in order to disallow pclose from returning on EINTR. */
- do {
-- if (waitpid(pid, &stat, 0) >= 0) {
-- return stat;
-+ if (waitpid(pid, &status, 0) >= 0) {
-+ return status;
- }
- if (errno != EINTR) {
- break;
-diff -Nur uClibc-0.9.33.2/libc/stdio/putwchar.c uClibc-git/libc/stdio/putwchar.c
---- uClibc-0.9.33.2/libc/stdio/putwchar.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/putwchar.c 2014-07-25 20:36:06.049330721 +0200
-@@ -9,7 +9,6 @@
-
- #ifdef __DO_UNLOCKED
-
--
- wint_t putwchar_unlocked(wchar_t wc)
- {
- return fputwc_unlocked(wc, stdout);
-@@ -21,11 +20,9 @@
-
- #elif defined __UCLIBC_HAS_THREADS__
-
--/* psm: should this be fputwc? */
--
- wint_t putwchar(wchar_t wc)
- {
-- return fputc(wc, stdout);
-+ return fputwc(wc, stdout);
- }
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdio/_scanf.c uClibc-git/libc/stdio/_scanf.c
---- uClibc-0.9.33.2/libc/stdio/_scanf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_scanf.c 2014-07-25 20:36:06.045330699 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Aug 1, 2003
-@@ -43,7 +43,6 @@
- * standards and from an official C standard defect report.
- */
-
--#define _ISOC99_SOURCE /* for LLONG_MAX primarily... */
- #include <features.h>
- #include "_stdio.h"
- #include <stdlib.h>
-@@ -77,14 +76,6 @@
- #include <bits/uClibc_fpmax.h>
- #endif /* __UCLIBC_HAS_FLOATS__ */
-
--#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#ifdef L_vfscanf
--/* only emit this once */
--#warning Forcing undef of __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ until implemented!
--#endif
--#undef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#endif
--
- #undef __STDIO_HAS_VSSCANF
- #if defined(__STDIO_BUFFERS) || !defined(__UCLIBC_HAS_WCHAR__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
- #define __STDIO_HAS_VSSCANF 1
-@@ -99,8 +90,6 @@
-
- #endif
-
--extern void _store_inttype(void *dest, int desttype, uintmax_t val);
--
- #if defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX)
-
- extern unsigned long long
-@@ -209,7 +198,7 @@
-
- #ifdef __STDIO_BUFFERS
-
--int vsscanf(__const char *sp, __const char *fmt, va_list ap)
-+int vsscanf(const char *sp, const char *fmt, va_list ap)
- {
- FILE f;
-
-@@ -253,7 +242,7 @@
-
- #elif !defined(__UCLIBC_HAS_WCHAR__)
-
--int vsscanf(__const char *sp, __const char *fmt, va_list ap)
-+int vsscanf(const char *sp, const char *fmt, va_list ap)
- {
- __FILE_vsscanf f;
-
-@@ -292,7 +281,7 @@
-
- #elif defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
-
--int vsscanf(__const char *sp, __const char *fmt, va_list ap)
-+int vsscanf(const char *sp, const char *fmt, va_list ap)
- {
- FILE *f;
- int rv = EOF;
-@@ -388,9 +377,9 @@
- FILE f;
-
- f.__bufstart =
-- f.__bufpos = (char *) str;
-+ f.__bufpos = (unsigned char *) str;
- f.__bufread =
-- f.__bufend = (char *)(str + wcslen(str));
-+ f.__bufend = (unsigned char *)(str + wcslen(str));
- __STDIO_STREAM_DISABLE_GETC(&f);
- __STDIO_STREAM_DISABLE_PUTC(&f);
-
-@@ -433,18 +422,19 @@
-
-
- /* float layout 0123456789012345678901 repeat n for "l[" */
--#define SPEC_CHARS "npxXoudifFeEgGaACSncs["
--/* npxXoudif eEgG CS cs[ */
-+#define SPEC_CHARS "npxXoudifFeEgGaACSnmcs["
-+/* npxXoudif eEgG CS cs[ */
-+/* NOTE: the 'm' flag must come before any convs that support it */
-
--/* NOTE: Ordering is important! In particular, CONV_LEFTBRACKET
-- * must immediately precede CONV_c. */
-+/* NOTE: Ordering is important! The CONV_{C,S,LEFTBRACKET} must map
-+ simply to their lowercase equivalents. */
-
- enum {
- CONV_n = 0,
- CONV_p,
- CONV_x, CONV_X, CONV_o, CONV_u, CONV_d, CONV_i,
- CONV_f, CONV_F, CONV_e, CONV_E, CONV_g, CONV_G, CONV_a, CONV_A,
-- CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_c, CONV_s, CONV_leftbracket,
-+ CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_m, CONV_c, CONV_s, CONV_leftbracket,
- CONV_percent, CONV_whitespace /* not in SPEC_* and no flags */
- };
-
-@@ -474,7 +464,7 @@
- FLAG_SURPRESS = 0x10, /* MUST BE 1ST!! See DO_FLAGS. */
- FLAG_THOUSANDS = 0x20,
- FLAG_I18N = 0x40, /* only works for d, i, u */
-- FLAG_MALLOC = 0x80, /* only works for s, S, and [ (and l[)*/
-+ FLAG_MALLOC = 0x80, /* only works for c, s, S, and [ (and l[)*/
- };
-
-
-@@ -491,7 +481,7 @@
- /* fFeEgGaA */ (0x0c|FLAG_SURPRESS|FLAG_THOUSANDS|FLAG_I18N), \
- /* C */ ( 0|FLAG_SURPRESS), \
- /* S and l[ */ ( 0|FLAG_SURPRESS|FLAG_MALLOC), \
-- /* c */ (0x04|FLAG_SURPRESS), \
-+ /* c */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \
- /* s and [ */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \
- }
-
-@@ -904,17 +894,17 @@
- if (*psfs->fmt == *p) {
- int p_m_spec_chars = p - spec_chars;
-
--#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#error implement gnu a flag
-- if ((*p == 'a')
-- && ((psfs->fmt[1] == '[') || ((psfs->fmt[1]|0x20) == 's'))
-- ) { /* Assumes ascii for 's' and 'S' test. */
-- psfs->flags |= FLAG_MALLOC;
-+ if (*p == 'm' &&
-+ (psfs->fmt[1] == '[' || psfs->fmt[1] == 'c' ||
-+ /* Assumes ascii for 's' and 'S' test. */
-+ (psfs->fmt[1] | 0x20) == 's'))
-+ {
-+ if (psfs->store)
-+ psfs->flags |= FLAG_MALLOC;
- ++psfs->fmt;
- ++p;
-- continue; /* The related conversions follow 'a'. */
-+ continue; /* The related conversions follow 'm'. */
- }
--#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
-
- for (p = spec_ranges; p_m_spec_chars > *p ; ++p) {}
- if (((psfs->dataargtype >> 8) | psfs->flags)
-@@ -928,7 +918,7 @@
- psfs->dataargtype = PA_FLAG_LONG;
- } else if ((p_m_spec_chars >= CONV_c)
- && (psfs->dataargtype & PA_FLAG_LONG)) {
-- p_m_spec_chars -= 3; /* lc -> C, ls -> S, l[ -> ?? */
-+ p_m_spec_chars -= CONV_c - CONV_C; /* lc -> C, ls -> S, l[ -> ?? */
- }
-
- psfs->conv_num = p_m_spec_chars;
-@@ -1265,12 +1255,6 @@
- while (*wf && __isascii(*wf) && (b < buf + sizeof(buf) - 1)) {
- *b++ = *wf++;
- }
--#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#error this is wrong... we need to ched in __psfs_parse_spec instead since this checks last char in buffer and conversion my have stopped before it.
-- if ((*b == 'a') && ((*wf == '[') || ((*wf|0x20) == 's'))) {
-- goto DONE; /* Spec was excessively long. */
-- }
--#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
- *b = 0;
- if (b == buf) { /* Bad conversion specifier! */
- goto DONE;
-@@ -1390,13 +1374,36 @@
- }
-
- if (psfs.conv_num == CONV_s) {
-+ /* We might have to handle the allocation ourselves */
-+ int len;
-+ /* With 'm', we actually got a pointer to a pointer */
-+ unsigned char **ptr = (void *)b;
-+
-+ i = 0;
-+ if (psfs.flags & FLAG_MALLOC) {
-+ len = 0;
-+ b = NULL;
-+ } else
-+ len = -1;
-+
- /* Yes, believe it or not, a %s conversion can store nuls. */
- while ((__scan_getc(&sc) >= 0) && !isspace(sc.cc)) {
- zero_conversions = 0;
-- *b = sc.cc;
-- b += psfs.store;
-+ if (i == len) {
-+ /* Pick a size that won't trigger a lot of
-+ * mallocs early on ... */
-+ len += 256;
-+ b = realloc(b, len + 1);
-+ }
-+ b[i] = sc.cc;
-+ i += psfs.store;
- fail = 0;
- }
-+
-+ if (psfs.flags & FLAG_MALLOC)
-+ *ptr = b;
-+ /* The code below takes care of terminating NUL */
-+ b += i;
- } else {
- #ifdef __UCLIBC_HAS_WCHAR__
- assert((psfs.conv_num == CONV_LEFTBRACKET) || \
-diff -Nur uClibc-0.9.33.2/libc/stdio/_stdio.c uClibc-git/libc/stdio/_stdio.c
---- uClibc-0.9.33.2/libc/stdio/_stdio.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_stdio.c 2014-07-25 20:36:06.045330699 +0200
-@@ -7,7 +7,6 @@
-
- #include "_stdio.h"
-
--
- /* This is pretty much straight from uClibc, but with one important
- * difference.
- *
-@@ -185,7 +184,7 @@
- /**********************************************************************/
-
- /* We assume here that we are the only remaining thread. */
--void attribute_hidden _stdio_term(void)
-+void _stdio_term(void)
- {
- #if defined(__STDIO_BUFFERS) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
- register FILE *ptr;
-@@ -252,7 +251,7 @@
- }
-
- #if defined __STDIO_BUFFERS || !defined __UCLIBC__
--void attribute_hidden _stdio_init(void)
-+void _stdio_init(void)
- {
- #ifdef __STDIO_BUFFERS
- int old_errno = errno;
-@@ -277,10 +276,6 @@
- #error Assumption violated about __MASK_READING and __FLAG_UNGOT
- #endif
-
--#ifdef __UCLIBC_HAS_THREADS__
--#include <pthread.h>
--#endif
--
- #ifndef NDEBUG
-
- void attribute_hidden _stdio_validate_FILE(const FILE *stream)
-diff -Nur uClibc-0.9.33.2/libc/stdio/_stdio.h uClibc-git/libc/stdio/_stdio.h
---- uClibc-0.9.33.2/libc/stdio/_stdio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_stdio.h 2014-07-25 20:36:06.045330699 +0200
-@@ -39,6 +39,9 @@
-
-
- #ifdef __UCLIBC_HAS_THREADS__
-+extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
-+
-+extern volatile int _stdio_openlist_use_count attribute_hidden; /* _stdio_openlist_del_lock */
- #define __STDIO_OPENLIST_INC_USE \
- do { \
- __STDIO_THREADLOCK_OPENLIST_DEL; \
-@@ -51,6 +54,7 @@
- #define __STDIO_OPENLIST_DEC_USE \
- _stdio_openlist_dec_use()
-
-+extern int _stdio_openlist_del_count attribute_hidden; /* _stdio_openlist_del_lock */
- #define __STDIO_OPENLIST_INC_DEL_CNT \
- do { \
- __STDIO_THREADLOCK_OPENLIST_DEL; \
-@@ -308,6 +312,9 @@
- extern int __stdio_trans2r_o(FILE *__restrict stream, int oflag) attribute_hidden;
- extern int __stdio_trans2w_o(FILE *__restrict stream, int oflag) attribute_hidden;
-
-+extern uintmax_t _load_inttype(int desttype, register const void *src, int uflag) attribute_hidden;
-+extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
-+
- /**********************************************************************/
- #ifdef __STDIO_BUFFERS
-
-diff -Nur uClibc-0.9.33.2/libc/stdio/_store_inttype.c uClibc-git/libc/stdio/_store_inttype.c
---- uClibc-0.9.33.2/libc/stdio/_store_inttype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_store_inttype.c 2014-07-25 20:36:06.045330699 +0200
-@@ -28,7 +28,6 @@
-
- /* We assume int may be short or long, but short and long are different. */
-
--void _store_inttype(register void *dest, int desttype, uintmax_t val) attribute_hidden;
- void _store_inttype(register void *dest, int desttype, uintmax_t val)
- {
- if (desttype == __PA_FLAG_CHAR) { /* assume char not int */
-diff -Nur uClibc-0.9.33.2/libc/stdio/tempnam.c uClibc-git/libc/stdio/tempnam.c
---- uClibc-0.9.33.2/libc/stdio/tempnam.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/tempnam.c 2014-07-25 20:36:06.049330721 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/stdio/tmpfile.c uClibc-git/libc/stdio/tmpfile.c
---- uClibc-0.9.33.2/libc/stdio/tmpfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/tmpfile.c 2014-07-25 20:36:06.049330721 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libc/stdio/tmpnam.c uClibc-git/libc/stdio/tmpnam.c
---- uClibc-0.9.33.2/libc/stdio/tmpnam.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/tmpnam.c 2014-07-25 20:36:06.049330721 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/stdio/tmpnam_r.c uClibc-git/libc/stdio/tmpnam_r.c
---- uClibc-0.9.33.2/libc/stdio/tmpnam_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/tmpnam_r.c 2014-07-25 20:36:06.049330721 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include "../misc/internals/tempname.h"
-diff -Nur uClibc-0.9.33.2/libc/stdio/_uintmaxtostr.c uClibc-git/libc/stdio/_uintmaxtostr.c
---- uClibc-0.9.33.2/libc/stdio/_uintmaxtostr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_uintmaxtostr.c 2014-07-25 20:36:06.045330699 +0200
-@@ -5,7 +5,6 @@
- * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
- */
-
--#define _ISOC99_SOURCE /* for ULLONG primarily... */
- #include "_stdio.h"
- #include <limits.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/libc/stdio/_vfprintf.c uClibc-git/libc/stdio/_vfprintf.c
---- uClibc-0.9.33.2/libc/stdio/_vfprintf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdio/_vfprintf.c 2014-07-25 20:36:06.045330699 +0200
-@@ -12,8 +12,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* This code needs a lot of clean up. Some of that is on hold until uClibc
-@@ -88,7 +88,6 @@
- * treats this as an error.
- */
-
--#define _ISOC99_SOURCE /* for ULLONG primarily... */
- #include <features.h>
- #include "_stdio.h"
- #include <stdlib.h>
-@@ -101,7 +100,6 @@
- #include <stdint.h>
- #include <errno.h>
- #include <locale.h>
--#include <printf.h>
-
- #ifdef __UCLIBC_HAS_THREADS__
- # include <stdio_ext.h>
-@@ -126,30 +124,16 @@
- /**********************************************************************/
- /* These provide some control over printf's feature set */
-
--/* This is undefined below depeding on uClibc's configuration. */
--#define __STDIO_PRINTF_FLOAT 1
-+/* Now controlled by uClibc_config.h. */
-+/* #define __UCLIBC_HAS_FLOATS__ 1 */
-
--/* Now controlled by uClibc_stdio.h. */
-+/* Now controlled by uClibc_config.h. */
- /* #define __UCLIBC_HAS_PRINTF_M_SPEC__ */
-
-
- /**********************************************************************/
-
--#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_FLOATS__)
--# undef __STDIO_PRINTF_FLOAT
--#endif
--
--#ifdef __BCC__
--# undef __STDIO_PRINTF_FLOAT
--#endif
--
--#ifdef __STDIO_PRINTF_FLOAT
--# include <float.h>
--# include <bits/uClibc_fpmax.h>
--#else
--# undef L__fpmaxtostr
--#endif
--
-+#include "_fpmaxtostr.h"
-
- #undef __STDIO_HAS_VSNPRINTF
- #if defined(__STDIO_BUFFERS) || defined(__USE_OLD_VFPRINTF__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
-@@ -158,7 +142,7 @@
-
- /**********************************************************************/
-
--/* Now controlled by uClibc_stdio.h. */
-+/* Now controlled by uClibc_config.h. */
- /* #define __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__ */
-
- #ifdef __UCLIBC_MJN3_ONLY__
-@@ -361,7 +345,7 @@
- # ifdef ULLONG_MAX
- unsigned long long ull;
- # endif
--# ifdef __STDIO_PRINTF_FLOAT
-+# ifdef __UCLIBC_HAS_FLOATS__
- double d;
- long double ld;
- # endif
-@@ -398,22 +382,11 @@
- /* TODO: fix printf to return 0 and set errno if format error. Standard says
- only returns -1 if sets error indicator for the stream. */
-
--#ifdef __STDIO_PRINTF_FLOAT
--typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
-- intptr_t buf);
--
--extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
-- __fp_outfunc_t fp_outfunc) attribute_hidden;
--#endif
--
- extern int _ppfs_init(ppfs_t *ppfs, const char *fmt0) attribute_hidden; /* validates */
- extern void _ppfs_prepargs(ppfs_t *ppfs, va_list arg) attribute_hidden; /* sets posargptrs */
- extern void _ppfs_setargs(ppfs_t *ppfs) attribute_hidden; /* sets argptrs for current spec */
- extern int _ppfs_parsespec(ppfs_t *ppfs) attribute_hidden; /* parses specifier */
-
--extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
--extern uintmax_t _load_inttype(int desttype, const void *src, int uflag) attribute_hidden;
--
- /**********************************************************************/
- #ifdef L_parse_printf_format
-
-@@ -564,7 +537,7 @@
- ppfs->fmtpos = fmt0; /* rewind */
- }
-
--#ifdef NL_MAX_ARG
-+#ifdef NL_ARGMAX
- /* If we have positional args, make sure we know all the types. */
- {
- register int *p = ppfs->argtype;
-@@ -576,7 +549,7 @@
- ++p;
- }
- }
--#endif /* NL_MAX_ARG */
-+#endif /* NL_ARGMAX */
-
- return 0;
- }
-@@ -653,7 +626,7 @@
- /* we're assuming wchar_t is at least an int */
- GET_VA_ARG(p,wc,wchar_t,ppfs->arg);
- break;
--#ifdef __STDIO_PRINTF_FLOAT
-+#ifdef __UCLIBC_HAS_FLOATS__
- /* PA_FLOAT */
- case PA_DOUBLE:
- GET_VA_ARG(p,d,double,ppfs->arg);
-@@ -661,12 +634,12 @@
- case (PA_DOUBLE|PA_FLAG_LONG_DOUBLE):
- GET_VA_ARG(p,ld,long double,ppfs->arg);
- break;
--#else /* __STDIO_PRINTF_FLOAT */
-+#else /* __UCLIBC_HAS_FLOATS__ */
- case PA_DOUBLE:
- case (PA_DOUBLE|PA_FLAG_LONG_DOUBLE):
- assert(0);
- continue;
--#endif /* __STDIO_PRINTF_FLOAT */
-+#endif /* __UCLIBC_HAS_FLOATS__ */
- default:
- /* TODO -- really need to ensure this can't happen */
- assert(ppfs->argtype[i-1] & PA_FLAG_PTR);
-@@ -743,7 +716,7 @@
- PA_INT|PA_FLAG_LONG,
- PA_INT|PA_FLAG_LONG_LONG,
- PA_WCHAR,
--#ifdef __STDIO_PRINTF_FLOAT
-+#ifdef __UCLIBC_HAS_FLOATS__
- /* PA_FLOAT, */
- PA_DOUBLE,
- PA_DOUBLE|PA_FLAG_LONG_DOUBLE,
-@@ -766,7 +739,7 @@
- PROMOTED_SIZE_OF(long), /* TODO -- is this correct? (above too) */
- #endif
- PROMOTED_SIZE_OF(wchar_t),
--#ifdef __STDIO_PRINTF_FLOAT
-+#ifdef __UCLIBC_HAS_FLOATS__
- /* PROMOTED_SIZE_OF(float), */
- PROMOTED_SIZE_OF(double),
- PROMOTED_SIZE_OF(long double),
-@@ -1199,7 +1172,7 @@
- #define _outnstr(stream, string, len) ((len > 0) ? __stdio_fwrite((const unsigned char *)(string), len, stream) : 0)
- #define FP_OUT _fp_out_narrow
-
--#ifdef __STDIO_PRINTF_FLOAT
-+#ifdef __UCLIBC_HAS_FLOATS__
-
- static size_t _fp_out_narrow(FILE *fp, intptr_t type, intptr_t len, intptr_t buf)
- {
-@@ -1219,7 +1192,7 @@
- return r + OUTNSTR(fp, (const char *) buf, len);
- }
-
--#endif /* __STDIO_PRINTF_FLOAT */
-+#endif /* __UCLIBC_HAS_FLOATS__ */
-
- #else /* L__vfprintf_internal */
-
-@@ -1229,7 +1202,7 @@
- #define STRLEN wcslen
- #define _PPFS_init _ppwfs_init
- /* Pulls in fseek: */
--#define OUTPUT(F,S) fputws(S,F)
-+#define OUTPUT(F,S) fputws_unlocked(S,F)
- /* TODO: #define OUTPUT(F,S) _wstdio_fwrite((S),wcslen(S),(F)) */
- #define _outnwcs(stream, wstring, len) _wstdio_fwrite((const wchar_t *)(wstring), len, stream)
- #define FP_OUT _fp_out_wide
-@@ -1261,16 +1234,7 @@
- return wclen - todo;
- }
-
--#ifdef __STDIO_PRINTF_FLOAT
--
--#ifdef __UCLIBC_MJN3_ONLY__
--#warning TODO: Move defines from _fpmaxtostr. Put them in a common header.
--#endif
--
--/* The following defines are from _fpmaxtostr.*/
--#define DIGITS_PER_BLOCK 9
--#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
--#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
-+#ifdef __UCLIBC_HAS_FLOATS__
-
- static size_t _fp_out_wide(FILE *fp, intptr_t type, intptr_t len, intptr_t buf)
- {
-@@ -1318,7 +1282,7 @@
- return r;
- }
-
--#endif /* __STDIO_PRINTF_FLOAT */
-+#endif /* __UCLIBC_HAS_FLOATS__ */
-
- static int _ppwfs_init(register ppfs_t *ppfs, const wchar_t *fmt0)
- {
-@@ -1608,7 +1572,7 @@
- }
- numfill = ((numfill > SLEN) ? numfill - SLEN : 0);
- } else if (ppfs->conv_num <= CONV_A) { /* floating point */
--#ifdef __STDIO_PRINTF_FLOAT
-+#ifdef __UCLIBC_HAS_FLOATS__
- ssize_t nf;
- nf = _fpmaxtostr(stream,
- (__fpmax_t)
-@@ -1622,7 +1586,7 @@
- *count += nf;
-
- return 0;
--#else /* __STDIO_PRINTF_FLOAT */
-+#else /* __UCLIBC_HAS_FLOATS__ */
- return -1; /* TODO -- try to continue? */
- #endif
- } else if (ppfs->conv_num <= CONV_S) { /* wide char or string */
-diff -Nur uClibc-0.9.33.2/libc/stdlib/a64l.c uClibc-git/libc/stdlib/a64l.c
---- uClibc-0.9.33.2/libc/stdlib/a64l.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/a64l.c 2014-07-25 20:36:06.061330784 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/abort.c uClibc-git/libc/stdlib/abort.c
---- uClibc-0.9.33.2/libc/stdlib/abort.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/abort.c 2014-07-25 20:36:06.061330784 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- /* Hacked up for uClibc by Erik Andersen */
-
-@@ -47,9 +46,6 @@
- # warning "no abort instruction defined for your arch"
- #endif
-
--#ifdef __UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT__
--extern void weak_function _stdio_term(void) attribute_hidden;
--#endif
- static smallint been_there_done_that = 0;
-
- /* Be prepared in case multiple threads try to abort() */
-diff -Nur uClibc-0.9.33.2/libc/stdlib/arc4random.c uClibc-git/libc/stdlib/arc4random.c
---- uClibc-0.9.33.2/libc/stdlib/arc4random.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/arc4random.c 2014-07-25 20:36:06.061330784 +0200
-@@ -1,24 +1,29 @@
--/* $$$: arc4random.c 2005/02/08 robert */
--/* $NetBSD: arc4random.c,v 1.5.2.1 2004/03/26 22:52:50 jmc Exp $ */
--/* $OpenBSD: arc4random.c,v 1.6 2001/06/05 05:05:38 pvalchev Exp $ */
--
- /*
-- * Arc4 random number generator for OpenBSD.
-- * Copyright 1996 David Mazieres <dm@lcs.mit.edu>.
-+ * Copyright (c) 1996, David Mazieres <dm@uun.org>
- *
-- * Modification and redistribution in source and binary forms is
-- * permitted provided that due credit is given to the author and the
-- * OpenBSD project by leaving this copyright notice intact.
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
- /*
-+ * Arc4 random number generator for OpenBSD.
-+ *
- * This code is derived from section 17.1 of Applied Cryptography,
- * second edition, which describes a stream cipher allegedly
- * compatible with RSA Labs "RC4" cipher (the actual description of
- * which is a trade secret). The same algorithm is used as a stream
- * cipher called "arcfour" in Tatu Ylonen's ssh package.
- *
-- * Here the stream cipher has been modified always to include the time
-+ * Here the stream cipher has been modified always to include entropy
- * when initializing the state. That makes it impossible to
- * regenerate the same random sequence twice, so this can't be used
- * for encryption, but will generate good random numbers.
-@@ -26,32 +31,26 @@
- * RC4 is a registered trademark of RSA Laboratories.
- */
-
-+/* $OpenBSD: arc4random.c,v 1.16 2007/02/12 19:58:47 otto Exp $ */
-+
- #include <features.h>
-+
- #include <fcntl.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
--#include <sys/param.h>
- #include <sys/time.h>
--#ifdef __ARC4RANDOM_USE_ERANDOM__
--#include <sys/sysctl.h>
--#endif
--
-
- struct arc4_stream {
-- uint8_t i;
-- uint8_t j;
-- uint8_t s[256];
-+ u_int8_t i;
-+ u_int8_t j;
-+ u_int8_t s[256];
- };
-
--static int rs_initialized;
-+static smallint rs_initialized;
- static struct arc4_stream rs;
--
--static __inline__ void arc4_init(struct arc4_stream *);
--static __inline__ void arc4_addrandom(struct arc4_stream *, u_char *, int);
--static void arc4_stir(struct arc4_stream *);
--static __inline__ uint8_t arc4_getbyte(struct arc4_stream *);
--static __inline__ uint32_t arc4_getword(struct arc4_stream *);
-+static pid_t arc4_stir_pid;
-+static int arc4_count;
-
- static __inline__ void
- arc4_init(struct arc4_stream *as)
-@@ -64,11 +63,25 @@
- as->j = 0;
- }
-
-+static __inline__ u_int8_t
-+arc4_getbyte(struct arc4_stream *as)
-+{
-+ u_int8_t si, sj;
-+
-+ as->i = (as->i + 1);
-+ si = as->s[as->i];
-+ as->j = (as->j + si);
-+ sj = as->s[as->j];
-+ as->s[as->i] = sj;
-+ as->s[as->j] = si;
-+ return (as->s[(si + sj) & 0xff]);
-+}
-+
- static __inline__ void
- arc4_addrandom(struct arc4_stream *as, u_char *dat, int datlen)
- {
- int n;
-- uint8_t si;
-+ u_int8_t si;
-
- as->i--;
- for (n = 0; n < 256; n++) {
-@@ -84,71 +97,88 @@
- static void
- arc4_stir(struct arc4_stream *as)
- {
-- int fd;
-- struct {
-- struct timeval tv;
-- uint rnd[(128 - sizeof(struct timeval)) / sizeof(uint)];
-- } rdat;
- int n;
-+ u_char rnd[128];
-+ struct timeval tv;
-+
-+#ifndef __ARC4RANDOM_USES_NODEV__
-+ int fd;
-
-- gettimeofday(&rdat.tv, NULL);
- fd = open("/dev/urandom", O_RDONLY);
- if (fd != -1) {
-- read(fd, rdat.rnd, sizeof(rdat.rnd));
-+ read(fd, rnd, sizeof(rnd));
- close(fd);
- }
--#ifdef __ARC4RANDOM_USE_ERANDOM__
-+ /* Did the pseudo-random device fail? Use gettimeofday(). */
-+ else
-+#endif
-+ if (gettimeofday(&tv, NULL) != (-1)) {
-+
-+ /* Initialize the first element so it's hopefully not '0',
-+ * to help out the next loop. Tossing in some prime numbers
-+ * probably can't hurt. */
-+ rnd[0] = (tv.tv_sec % 10000) * 3 + tv.tv_usec * 7 + \
-+ (getpid() % 1000) * 13;
-+
-+ for (n = 1; n < 127 ; n++) {
-+
-+ /* Take advantage of the stack space. Only initialize
-+ * elements equal to '0'. This will make the rnd[]
-+ * array much less vulnerable to timing attacks. Here
-+ * we'll stir getpid() into the value of the previous
-+ * element. Approximately 1 in 128 elements will still
-+ * become '0'. */
-+
-+ if (rnd[n] == 0) {
-+ rnd[n] = ((rnd[n - 1] + n) ^ \
-+ ((getpid() % 1000) * 17));
-+ }
-+ }
-+ }
- else {
-- int mib[3];
-- uint i;
-- size_t len;
--
-- /* Device could not be opened, we might be chrooted, take
-- * randomness from sysctl. */
--
-- mib[0] = CTL_KERN;
-- mib[1] = KERN_RANDOM;
-- mib[2] = RANDOM_ERANDOM;
--
-- for (i = 0; i < sizeof(rdat.rnd) / sizeof(uint); i++) {
-- len = sizeof(uint);
-- if (sysctl(mib, 3, &rdat.rnd[i], &len, NULL, 0) == -1)
-- break;
-+ /* gettimeofday() failed? Do the same thing as above, but only
-+ * with getpid(). */
-+
-+ rnd[0] = (getpid() % 1000) * 19;
-+ for (n = 1; n < 127 ; n++) {
-+ if (rnd[n] == 0) {
-+ rnd[n] = ((rnd[n - 1] + n) ^ \
-+ ((getpid() % 1000) * 23));
-+ }
- }
- }
--#endif
-
-- arc4_addrandom(as, (void *) &rdat, sizeof(rdat));
-+ arc4_stir_pid = getpid();
-+ arc4_addrandom(as, rnd, sizeof(rnd));
-
- /*
-- * Throw away the first N words of output, as suggested in the
-- * paper "Weaknesses in the Key Scheduling Algorithm of RC4"
-- * by Fluher, Mantin, and Shamir.
-+ * Discard early keystream, as per recommendations in:
- * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps
-- * N = 256 in our case.
- */
-- for (n = 0; n < 256 * 4; n++)
-- arc4_getbyte(as);
-+ for (n = 0; n < 256; n++)
-+ (void)arc4_getbyte(as);
-+ arc4_count = 1600000;
- }
-
--static __inline__ uint8_t
--arc4_getbyte(struct arc4_stream *as)
-+#if 0
-+static void __arc4random_stir(void);
-+/*
-+ * __arc4_getbyte() is a libc private function intended for use
-+ * with malloc.
-+ */
-+u_int8_t
-+__arc4_getbyte(void)
- {
-- uint8_t si, sj;
--
-- as->i = (as->i + 1);
-- si = as->s[as->i];
-- as->j = (as->j + si);
-- sj = as->s[as->j];
-- as->s[as->i] = sj;
-- as->s[as->j] = si;
-- return (as->s[(si + sj) & 0xff]);
-+ if (--arc4_count == 0 || !rs_initialized)
-+ __arc4random_stir();
-+ return arc4_getbyte(&rs);
- }
-+#endif
-
--static __inline__ uint32_t
-+static __inline__ u_int32_t
- arc4_getword(struct arc4_stream *as)
- {
-- uint32_t val;
-+ u_int32_t val;
- val = arc4_getbyte(as) << 24;
- val |= arc4_getbyte(as) << 16;
- val |= arc4_getbyte(as) << 8;
-@@ -175,23 +205,11 @@
- arc4_addrandom(&rs, dat, datlen);
- }
-
--uint32_t
-+u_int32_t
- arc4random(void)
- {
-- if (!rs_initialized)
-+ arc4_count -= 4;
-+ if (arc4_count <= 0 || !rs_initialized || arc4_stir_pid != getpid())
- __arc4random_stir();
- return arc4_getword(&rs);
- }
--
--#if 0
--/*-------- Test code --------*/
--#include <stdlib.h>
--#include <stdio.h>
--
--int main(void) {
-- int random_number;
-- random_number = arc4random() % 65536;
-- printf("%d\n", random_number);
-- return 0;
--}
--#endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/_atexit.c uClibc-git/libc/stdlib/_atexit.c
---- uClibc-0.9.33.2/libc/stdlib/_atexit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/_atexit.c 2014-07-25 20:36:06.061330784 +0200
-@@ -40,11 +40,12 @@
- #include <features.h>
- #include <unistd.h>
- #include <stdlib.h>
-+#include <stdio.h>
- #include <errno.h>
- #include <atomic.h>
-
- #include <bits/uClibc_mutex.h>
--__UCLIBC_MUTEX_EXTERN(__atexit_lock);
-+__UCLIBC_MUTEX_EXTERN(__atexit_lock) attribute_hidden;
-
-
-
-@@ -240,6 +241,16 @@
-
- __UCLIBC_MUTEX_LOCK(__atexit_lock);
-
-+ /*
-+ * Reuse free slots at the end of the list.
-+ * This avoids eating memory when dlopen and dlclose modules multiple times.
-+ */
-+ while (__exit_count > 0) {
-+ if (__exit_function_table[__exit_count-1].type == ef_free) {
-+ --__exit_count;
-+ } else break;
-+ }
-+
- #ifdef __UCLIBC_DYNAMIC_ATEXIT__
- /* If we are out of function table slots, make some more */
- if (__exit_slots < __exit_count+1) {
-@@ -318,8 +329,7 @@
- attribute_hidden void (*__exit_cleanup)(int) = 0;
- __UCLIBC_MUTEX_INIT(__atexit_lock, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
-
--extern void __uClibc_fini(void);
--libc_hidden_proto(__uClibc_fini)
-+extern void __uClibc_fini(void) attribute_hidden;
-
- /*
- * Normal program termination
-diff -Nur uClibc-0.9.33.2/libc/stdlib/bsd_getpt.c uClibc-git/libc/stdlib/bsd_getpt.c
---- uClibc-0.9.33.2/libc/stdlib/bsd_getpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/bsd_getpt.c 2014-07-25 20:36:06.061330784 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-@@ -40,7 +39,7 @@
- const char __libc_ptyname2[] attribute_hidden = PTYNAME2;
-
- /* Open a master pseudo terminal and return its file descriptor. */
--int
-+static __inline__ int
- __getpt (void)
- {
- char buf[sizeof (_PATH_PTY) + 2];
-diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48.c uClibc-git/libc/stdlib/drand48.c
---- uClibc-0.9.33.2/libc/stdlib/drand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/drand48.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48-iter.c uClibc-git/libc/stdlib/drand48-iter.c
---- uClibc-0.9.33.2/libc/stdlib/drand48-iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/drand48-iter.c 2014-07-25 20:36:06.061330784 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48_r.c uClibc-git/libc/stdlib/drand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/drand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/drand48_r.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <math.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/erand48.c uClibc-git/libc/stdlib/erand48.c
---- uClibc-0.9.33.2/libc/stdlib/erand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/erand48.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/erand48_r.c uClibc-git/libc/stdlib/erand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/erand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/erand48_r.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <ieee754.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/getpt.c uClibc-git/libc/stdlib/getpt.c
---- uClibc-0.9.33.2/libc/stdlib/getpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/getpt.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-@@ -43,12 +42,12 @@
-
- #if !defined __UNIX98PTY_ONLY__ && defined __UCLIBC_HAS_GETPT__
- /* Prototype for function that opens BSD-style master pseudo-terminals. */
--extern int __bsd_getpt (void) attribute_hidden;
-+static __inline__ int __bsd_getpt (void);
- #endif
-
- /* Open a master pseudo terminal and return its file descriptor. */
--int
--posix_openpt (int flags)
-+static int
-+__posix_openpt (int flags)
- {
- #define have_no_dev_ptmx (1<<0)
- #define devpts_mounted (1<<1)
-@@ -112,14 +111,14 @@
- #endif
- return -1;
- }
--libc_hidden_def(posix_openpt)
-+strong_alias(__posix_openpt,posix_openpt)
- #undef have_no_dev_ptmx
- #undef devpts_mounted
-
- #if defined __USE_GNU && defined __UCLIBC_HAS_GETPT__
- int getpt (void)
- {
-- return posix_openpt(O_RDWR);
-+ return __posix_openpt(O_RDWR);
- }
-
- #if !defined __UNIX98PTY_ONLY__ && defined __UCLIBC_HAS_GETPT__
-diff -Nur uClibc-0.9.33.2/libc/stdlib/grantpt.c uClibc-git/libc/stdlib/grantpt.c
---- uClibc-0.9.33.2/libc/stdlib/grantpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/grantpt.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <stdlib.h>
-@@ -33,25 +32,18 @@
- /* Prototype for function that changes ownership and access permission
- for slave pseudo terminals that do not live on a `devpts'
- filesystem. */
--int __unix_grantpt (int fd);
-+static int __unix_grantpt (int fd);
-
- /* Prototype for private function that gets the name of the slave
- pseudo terminal in a safe way. */
- static int pts_name (int fd, char **pts, size_t buf_len);
- extern __typeof(statfs) __libc_statfs;
--#endif
-
- /* Change the ownership and access permission of the slave pseudo
- terminal associated with the master pseudo terminal specified
- by FD. */
--int
--#if !defined __ASSUME_DEVPTS__
--grantpt (int fd)
--#else
--grantpt (attribute_unused int fd)
--#endif
-+int grantpt (int fd)
- {
--#if !defined __ASSUME_DEVPTS__
- struct statfs fsbuf;
- char _buf[PATH_MAX];
- char *buf = _buf;
-@@ -65,12 +57,19 @@
- /* If the slave pseudo terminal lives on a `devpts' filesystem, the
- ownership and access permission are already set. */
- if (fsbuf.f_type != DEVPTS_SUPER_MAGIC && fsbuf.f_type != DEVFS_SUPER_MAGIC)
-- return __unix_grantpt (fd);
--#endif
-+ return __unix_grantpt (fd);
-+
- return 0;
- }
-
--#if !defined __ASSUME_DEVPTS__
- # define grantpt __unix_grantpt
- # include "unix_grantpt.c"
-+
-+#else
-+
-+int grantpt (attribute_unused int fd)
-+{
-+ return 0;
-+}
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/jrand48.c uClibc-git/libc/stdlib/jrand48.c
---- uClibc-0.9.33.2/libc/stdlib/jrand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/jrand48.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/jrand48_r.c uClibc-git/libc/stdlib/jrand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/jrand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/jrand48_r.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/l64a.c uClibc-git/libc/stdlib/l64a.c
---- uClibc-0.9.33.2/libc/stdlib/l64a.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/l64a.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/lcong48.c uClibc-git/libc/stdlib/lcong48.c
---- uClibc-0.9.33.2/libc/stdlib/lcong48.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/stdlib/lcong48.c 2014-07-25 20:36:06.065330804 +0200
-@@ -0,0 +1,29 @@
-+/* vi: set sw=4 ts=4: */
-+/* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */
-+
-+#include <features.h>
-+
-+#if defined __USE_SVID || defined __USE_XOPEN
-+#include <stdint.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+static int __lcong48_r (unsigned short int param[7], struct drand48_data *buffer)
-+{
-+ /* Store the given values. */
-+ memcpy (buffer->__x, &param[0], sizeof (buffer->__x));
-+ buffer->__a = ((uint64_t) param[5] << 32 | (uint32_t) param[4] << 16 | param[3]);
-+ buffer->__c = param[6];
-+ buffer->__init = 1;
-+
-+ return 0;
-+}
-+# ifdef __USE_MISC
-+strong_alias(__lcong48_r,lcong48_r)
-+# endif
-+
-+void lcong48 (unsigned short int param[7])
-+{
-+ (void) __lcong48_r (param, &__libc_drand48_data);
-+}
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/ldiv.c uClibc-git/libc/stdlib/ldiv.c
---- uClibc-0.9.33.2/libc/stdlib/ldiv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/ldiv.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/lldiv.c uClibc-git/libc/stdlib/lldiv.c
---- uClibc-0.9.33.2/libc/stdlib/lldiv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/lldiv.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/lrand48.c uClibc-git/libc/stdlib/lrand48.c
---- uClibc-0.9.33.2/libc/stdlib/lrand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/lrand48.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/lrand48_r.c uClibc-git/libc/stdlib/lrand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/lrand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/lrand48_r.c 2014-07-25 20:36:06.065330804 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/Makefile.in uClibc-git/libc/stdlib/Makefile.in
---- uClibc-0.9.33.2/libc/stdlib/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/Makefile.in 2014-07-25 20:36:06.061330784 +0200
-@@ -12,16 +12,17 @@
- include $(top_srcdir)libc/stdlib/malloc-standard/Makefile.in
-
- CSRC-y := \
-- abort.c getenv.c mkdtemp.c realpath.c canonicalize.c mkstemp.c \
-+ abort.c getenv.c mkdtemp.c realpath.c canonicalize.c mkstemp.c mkostemp.c \
- rand.c random.c random_r.c setenv.c div.c ldiv.c lldiv.c \
- getpt.c drand48-iter.c jrand48.c \
-- jrand48_r.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
-+ jrand48_r.c lcong48.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
- nrand48_r.c rand_r.c srand48.c srand48_r.c seed48.c seed48_r.c \
-- valloc.c a64l.c l64a.c __uc_malloc.c
-+ a64l.c l64a.c __uc_malloc.c
-+CSRC-$(UCLIBC_SUSV2_LEGACY) += valloc.c
- CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_memalign.c
- CSRC-$(UCLIBC_HAS_PTY) += grantpt.c unlockpt.c ptsname.c
- CSRC-$(UCLIBC_HAS_ARC4RANDOM) += arc4random.c
--CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c
-+CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c mkostemp64.c
- CSRC-$(UCLIBC_HAS_FLOATS) += drand48.c drand48_r.c erand48.c erand48_r.c
- CSRC-$(if $(findstring yy,$(UCLIBC_HAS_FLOATS)$(UCLIBC_SUSV3_LEGACY)),y) += \
- gcvt.c
-@@ -33,7 +34,7 @@
-
- # multi source stdlib.c
- CSRC-y += abs.c labs.c atoi.c atol.c strtol.c strtoul.c _stdlib_strto_l.c \
-- qsort.c qsort_r.c bsearch.c \
-+ qsort.c qsort_r.c bsearch.c rpmatch.c \
- llabs.c atoll.c strtoll.c strtoull.c _stdlib_strto_ll.c
- # (aliases) strtoq.o strtouq.o
- CSRC-$(UCLIBC_HAS_FLOATS) += atof.c
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/calloc.c uClibc-git/libc/stdlib/malloc/calloc.c
---- uClibc-0.9.33.2/libc/stdlib/malloc/calloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/calloc.c 2014-07-25 20:36:06.109331035 +0200
-@@ -14,8 +14,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/free.c uClibc-git/libc/stdlib/malloc/free.c
---- uClibc-0.9.33.2/libc/stdlib/malloc/free.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/free.c 2014-07-25 20:36:06.109331035 +0200
-@@ -28,7 +28,7 @@
- static void
- __free_to_heap (void *mem, struct heap_free_area **heap
- #ifdef HEAP_USE_LOCKING
-- , malloc_mutex_t *heap_lock
-+ , __UCLIBC_MUTEX_TYPE *heap_lock
- #endif
- )
- {
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/heap.h uClibc-git/libc/stdlib/malloc/heap.h
---- uClibc-0.9.33.2/libc/stdlib/malloc/heap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/heap.h 2014-07-25 20:36:06.109331035 +0200
-@@ -13,18 +13,13 @@
-
- #include <features.h>
-
--
--/* On multi-threaded systems, the heap includes a lock. */
-+#include <bits/uClibc_mutex.h>
- #ifdef __UCLIBC_HAS_THREADS__
--# include <bits/uClibc_mutex.h>
- # define HEAP_USE_LOCKING
--# define __heap_lock(heap_lock) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(*(heap_lock))
--# define __heap_unlock(heap_lock) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(*(heap_lock))
--#else
--# define __heap_lock(heap_lock)
--# define __heap_unlock(heap_lock)
- #endif
-
-+#define __heap_lock(heap_lock) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(*(heap_lock))
-+#define __heap_unlock(heap_lock) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(*(heap_lock))
-
- /* The heap allocates in multiples of, and aligned to, HEAP_GRANULARITY.
- HEAP_GRANULARITY must be a power of 2. Malloc depends on this being the
-@@ -35,11 +30,9 @@
-
-
-
--/* The HEAP_INIT macro can be used as a static initializer for a heap
-- variable. The HEAP_INIT_WITH_FA variant is used to initialize a heap
-+/* The HEAP_INIT_WITH_FA variant is used to initialize a heap
- with an initial static free-area; its argument FA should be declared
- using HEAP_DECLARE_STATIC_FREE_AREA. */
--# define HEAP_INIT 0
- # define HEAP_INIT_WITH_FA(fa) &fa._fa
-
- /* A free-list area `header'. These are actually stored at the _ends_ of
-@@ -92,34 +85,21 @@
- #define HEAP_MIN_FREE_AREA_SIZE \
- HEAP_ADJUST_SIZE (sizeof (struct heap_free_area) + 32)
-
--
--/* branch-prediction macros; they may already be defined by libc. */
--#ifndef likely
--#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
--#define likely(cond) __builtin_expect(!!(int)(cond), 1)
--#define unlikely(cond) __builtin_expect((int)(cond), 0)
--#else
--#define likely(cond) (cond)
--#define unlikely(cond) (cond)
--#endif
--#endif /* !likely */
--
--
- /* Define HEAP_DEBUGGING to cause the heap routines to emit debugging info
- to stderr when the variable __heap_debug is set to true. */
- #ifdef HEAP_DEBUGGING
--extern int __heap_debug;
-+extern int __heap_debug attribute_hidden;
- #define HEAP_DEBUG(heap, str) (__heap_debug ? __heap_dump (heap, str) : 0)
- #else
- #define HEAP_DEBUG(heap, str) (void)0
- #endif
-
- /* Output a text representation of HEAP to stderr, labelling it with STR. */
--extern void __heap_dump (struct heap_free_area *heap, const char *str);
-+extern void __heap_dump (struct heap_free_area *heap, const char *str) attribute_hidden;
-
- /* Do some consistency checks on HEAP. If they fail, output an error
- message to stderr, and exit. STR is printed with the failure message. */
--extern void __heap_check (struct heap_free_area *heap, const char *str);
-+extern void __heap_check (struct heap_free_area *heap, const char *str) attribute_hidden;
-
-
- /* Delete the free-area FA from HEAP. */
-@@ -216,16 +196,16 @@
- /* Allocate and return a block at least *SIZE bytes long from HEAP.
- *SIZE is adjusted to reflect the actual amount allocated (which may be
- greater than requested). */
--extern void *__heap_alloc (struct heap_free_area **heap, size_t *size);
-+extern void *__heap_alloc (struct heap_free_area **heap, size_t *size) attribute_hidden;
-
- /* Allocate SIZE bytes at address MEM in HEAP. Return the actual size
- allocated, or 0 if we failed. */
--extern size_t __heap_alloc_at (struct heap_free_area **heap, void *mem, size_t size);
-+extern size_t __heap_alloc_at (struct heap_free_area **heap, void *mem, size_t size) attribute_hidden;
-
- /* Return the memory area MEM of size SIZE to HEAP.
- Returns the heap free area into which the memory was placed. */
- extern struct heap_free_area *__heap_free (struct heap_free_area **heap,
-- void *mem, size_t size);
-+ void *mem, size_t size) attribute_hidden;
-
- /* Return true if HEAP contains absolutely no memory. */
- #define __heap_is_empty(heap) (! (heap))
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/Makefile.in uClibc-git/libc/stdlib/malloc/Makefile.in
---- uClibc-0.9.33.2/libc/stdlib/malloc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/Makefile.in 2014-07-25 20:36:06.109331035 +0200
-@@ -9,12 +9,12 @@
-
- subdirs += libc/stdlib/malloc
-
--CSRC := malloc.c calloc.c free.c realloc.c memalign.c \
-+CSRC-y := malloc.c calloc.c free.c realloc.c memalign.c \
- heap_alloc.c heap_alloc_at.c heap_free.c
-
- # Turn on malloc debugging if requested
-+CSRC-$(UCLIBC_MALLOC_DEBUGGING) += malloc_debug.c heap_debug.c
- ifeq ($(UCLIBC_MALLOC_DEBUGGING),y)
--CSRC += malloc_debug.c heap_debug.c
- CFLAGS += -DMALLOC_DEBUGGING -DHEAP_DEBUGGING
- ifeq ($(UCLIBC_UCLINUX_BROKEN_MUNMAP),y)
- CFLAGS += -DMALLOC_MMB_DEBUGGING
-@@ -24,8 +24,8 @@
- STDLIB_MALLOC_DIR := $(top_srcdir)libc/stdlib/malloc
- STDLIB_MALLOC_OUT := $(top_builddir)libc/stdlib/malloc
-
--STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC))
--STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC))
-+STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC-y))
-+STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC-y))
-
- libc-$(MALLOC) += $(STDLIB_MALLOC_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/malloc.c uClibc-git/libc/stdlib/malloc/malloc.c
---- uClibc-0.9.33.2/libc/stdlib/malloc/malloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/malloc.c 2014-07-25 20:36:06.109331035 +0200
-@@ -26,12 +26,12 @@
- HEAP_DECLARE_STATIC_FREE_AREA (initial_fa, 256);
- struct heap_free_area *__malloc_heap = HEAP_INIT_WITH_FA (initial_fa);
- #ifdef HEAP_USE_LOCKING
--malloc_mutex_t __malloc_heap_lock = PTHREAD_MUTEX_INITIALIZER;
-+__UCLIBC_MUTEX_INIT(__malloc_heap_lock,PTHREAD_MUTEX_INITIALIZER);
- #endif
-
- #if defined(MALLOC_USE_LOCKING) && defined(MALLOC_USE_SBRK)
- /* A lock protecting our use of sbrk. */
--malloc_mutex_t __malloc_sbrk_lock;
-+__UCLIBC_MUTEX(__malloc_sbrk_lock);
- #endif /* MALLOC_USE_LOCKING && MALLOC_USE_SBRK */
-
-
-@@ -46,7 +46,7 @@
- HEAP_DECLARE_STATIC_FREE_AREA (initial_mmb_fa, 48); /* enough for 3 mmbs */
- struct heap_free_area *__malloc_mmb_heap = HEAP_INIT_WITH_FA (initial_mmb_fa);
- #ifdef HEAP_USE_LOCKING
--malloc_mutex_t __malloc_mmb_heap_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-+__UCLIBC_MUTEX_INIT(__malloc_mmb_heap_lock,PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
- #endif
- #endif /* __UCLIBC_UCLINUX_BROKEN_MUNMAP__ */
-
-@@ -59,7 +59,7 @@
- static void *
- __malloc_from_heap (size_t size, struct heap_free_area **heap
- #ifdef HEAP_USE_LOCKING
-- , malloc_mutex_t *heap_lock
-+ , __UCLIBC_MUTEX_TYPE *heap_lock
- #endif
- )
- {
-@@ -124,7 +124,7 @@
- MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
- #else
- block = mmap ((void *)0, block_size, PROT_READ | PROT_WRITE,
-- MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZE, 0, 0);
-+ MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZED, 0, 0);
- #endif
-
- #endif /* MALLOC_USE_SBRK */
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/malloc.h uClibc-git/libc/stdlib/malloc/malloc.h
---- uClibc-0.9.33.2/libc/stdlib/malloc/malloc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/malloc.h 2014-07-25 20:36:06.109331035 +0200
-@@ -20,8 +20,7 @@
- (__alignof__ (double) > sizeof (size_t) ? __alignof__ (double) : sizeof (size_t))
-
- /* The system pagesize... */
--extern size_t __pagesize;
--#define MALLOC_PAGE_SIZE __pagesize
-+#define MALLOC_PAGE_SIZE sysconf(_SC_PAGESIZE)
-
- /* The minimum size of block we request from the the system to extend the
- heap for small allocations (we may request a bigger block if necessary to
-@@ -128,69 +127,46 @@
- /* Return the size of a malloc allocation, given the user address. */
- #define MALLOC_SIZE(addr) (*(size_t *)MALLOC_BASE(addr))
-
-+#include <bits/uClibc_mutex.h>
-
--/* Locking for multithreaded apps. */
- #ifdef __UCLIBC_HAS_THREADS__
--
--# include <bits/uClibc_mutex.h>
--
- # define MALLOC_USE_LOCKING
-+#endif
-
--typedef __UCLIBC_MUTEX_TYPE malloc_mutex_t;
--# define MALLOC_MUTEX_INIT __UCLIBC_MUTEX_INITIALIZER
--
--# ifdef MALLOC_USE_SBRK
-+#ifdef MALLOC_USE_SBRK
- /* This lock is used to serialize uses of the `sbrk' function (in both
- malloc and free, sbrk may be used several times in succession, and
- things will break if these multiple calls are interleaved with another
- thread's use of sbrk!). */
--extern malloc_mutex_t __malloc_sbrk_lock;
-+__UCLIBC_MUTEX_EXTERN(__malloc_sbrk_lock) attribute_hidden;
- # define __malloc_lock_sbrk() __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE (__malloc_sbrk_lock)
- # define __malloc_unlock_sbrk() __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE (__malloc_sbrk_lock)
--# endif /* MALLOC_USE_SBRK */
--
--#else /* !__UCLIBC_HAS_THREADS__ */
--
--/* Without threads, mutex operations are a nop. */
-+#else
- # define __malloc_lock_sbrk() (void)0
- # define __malloc_unlock_sbrk() (void)0
--
--#endif /* __UCLIBC_HAS_THREADS__ */
--
--
--/* branch-prediction macros; they may already be defined by libc. */
--#ifndef likely
--#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
--#define likely(cond) __builtin_expect(!!(int)(cond), 1)
--#define unlikely(cond) __builtin_expect((int)(cond), 0)
--#else
--#define likely(cond) (cond)
--#define unlikely(cond) (cond)
--#endif
--#endif /* !likely */
--
-+#endif /* MALLOC_USE_SBRK */
-
- /* Define MALLOC_DEBUGGING to cause malloc to emit debugging info to stderr
- when the variable __malloc_debug is set to true. */
- #ifdef MALLOC_DEBUGGING
-
--extern void __malloc_debug_init (void);
-+extern void __malloc_debug_init (void) attribute_hidden;
-
- /* The number of spaces in a malloc debug indent level. */
- #define MALLOC_DEBUG_INDENT_SIZE 3
-
--extern int __malloc_debug, __malloc_check;
-+extern int __malloc_debug attribute_hidden, __malloc_check attribute_hidden;
-
- # define MALLOC_DEBUG(indent, fmt, args...) \
- (__malloc_debug ? __malloc_debug_printf (indent, fmt , ##args) : 0)
- # define MALLOC_DEBUG_INDENT(indent) \
- (__malloc_debug ? __malloc_debug_indent (indent) : 0)
-
--extern int __malloc_debug_cur_indent;
-+extern int __malloc_debug_cur_indent attribute_hidden;
-
- /* Print FMT and args indented at the current debug print level, followed
- by a newline, and change the level by INDENT. */
--extern void __malloc_debug_printf (int indent, const char *fmt, ...);
-+extern void __malloc_debug_printf (int indent, const char *fmt, ...) attribute_hidden;
-
- /* Change the current debug print level by INDENT, and return the value. */
- #define __malloc_debug_indent(indent) (__malloc_debug_cur_indent += indent)
-@@ -220,10 +196,18 @@
-
-
- /* The malloc heap. */
--extern struct heap_free_area *__malloc_heap;
-+extern struct heap_free_area *__malloc_heap attribute_hidden;
- #ifdef __UCLIBC_HAS_THREADS__
--extern malloc_mutex_t __malloc_heap_lock;
--#ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
--extern malloc_mutex_t __malloc_mmb_heap_lock;
--#endif
-+__UCLIBC_MUTEX_EXTERN(__malloc_heap_lock)
-+# ifndef __LINUXTHREADS_OLD__
-+ attribute_hidden
-+# endif
-+ ;
-+# ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
-+__UCLIBC_MUTEX_EXTERN(__malloc_mmb_heap_lock)
-+# ifndef __LINUXTHREADS_OLD__
-+ attribute_hidden
-+# endif
-+ ;
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/memalign.c uClibc-git/libc/stdlib/malloc/memalign.c
---- uClibc-0.9.33.2/libc/stdlib/malloc/memalign.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc/memalign.c 2014-07-25 20:36:06.109331035 +0200
-@@ -14,7 +14,6 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/mman.h>
--#include <sys/param.h> /* MAX */
-
- #include "malloc.h"
- #include "heap.h"
-@@ -30,6 +29,8 @@
- */
-
- void *memalign (size_t alignment, size_t size);
-+/* XXX shadow outer malloc.h */
-+libc_hidden_proto(memalign)
- void *
- memalign (size_t alignment, size_t size)
- {
-@@ -92,3 +93,4 @@
-
- return MALLOC_SETUP (base, end_addr - (unsigned long)base);
- }
-+libc_hidden_def(memalign)
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-simple/alloc.c uClibc-git/libc/stdlib/malloc-simple/alloc.c
---- uClibc-0.9.33.2/libc/stdlib/malloc-simple/alloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc-simple/alloc.c 2014-07-25 20:36:06.081330888 +0200
-@@ -17,6 +17,7 @@
- #include <sys/mman.h>
- #include <malloc.h>
-
-+extern int weak_function __libc_free_aligned(void *ptr) attribute_hidden;
-
- #ifdef L_malloc
- void *malloc(size_t size)
-@@ -36,7 +37,7 @@
- #ifdef __ARCH_USE_MMU__
- # define MMAP_FLAGS MAP_PRIVATE | MAP_ANONYMOUS
- #else
--# define MMAP_FLAGS MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZE
-+# define MMAP_FLAGS MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZED
- #endif
-
- result = mmap((void *) 0, size + sizeof(size_t), PROT_READ | PROT_WRITE,
-@@ -63,7 +64,7 @@
- result = malloc(size);
-
- #ifndef __ARCH_USE_MMU__
-- /* mmap'd with MAP_UNINITIALIZE, we have to blank memory ourselves */
-+ /* mmap'd with MAP_UNINITIALIZED, we have to blank memory ourselves */
- if (result != NULL) {
- memset(result, 0, size);
- }
-@@ -95,7 +96,6 @@
- #endif
-
- #ifdef L_free
--extern int weak_function __libc_free_aligned(void *ptr);
- void free(void *ptr)
- {
- if (unlikely(ptr == NULL))
-@@ -123,7 +123,7 @@
- __ptr_t aligned; /* The address that memaligned returned. */
- __ptr_t exact; /* The address that malloc returned. */
- };
--struct alignlist *_aligned_blocks;
-+static struct alignlist *_aligned_blocks;
-
- /* Return memory to the heap. */
- int __libc_free_aligned(void *ptr)
-@@ -182,4 +182,5 @@
-
- return result;
- }
-+libc_hidden_def(memalign)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-simple/Makefile.in uClibc-git/libc/stdlib/malloc-simple/Makefile.in
---- uClibc-0.9.33.2/libc/stdlib/malloc-simple/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc-simple/Makefile.in 2014-07-25 20:36:06.081330888 +0200
-@@ -10,11 +10,13 @@
- STDLIB_MALLOC_SIMPLE_DIR := $(top_srcdir)libc/stdlib/malloc-simple
- STDLIB_MALLOC_SIMPLE_OUT := $(top_builddir)libc/stdlib/malloc-simple
-
--CSRC := $(notdir $(wildcard $(STDLIB_MALLOC_SIMPLE_DIR)/*.c))
--CSRC := $(filter-out alloc.c,$(CSRC))
-+CSRC-y := $(notdir $(wildcard $(STDLIB_MALLOC_SIMPLE_DIR)/*.c))
-+# multi source alloc.c
-+CSRC- := alloc.c
-+CSRC-y := $(filter-out $(CSRC-),$(CSRC-y))
-
--STDLIB_MALLOC_SIMPLE_SRC := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_DIR)/%.c,$(CSRC))
--STDLIB_MALLOC_SIMPLE_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_OUT)/%.o,$(CSRC))
-+STDLIB_MALLOC_SIMPLE_SRC := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_DIR)/%.c,$(CSRC-y))
-+STDLIB_MALLOC_SIMPLE_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_OUT)/%.o,$(CSRC-y))
-
- libc-$(MALLOC_SIMPLE) += $(STDLIB_MALLOC_SIMPLE_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/Makefile.in uClibc-git/libc/stdlib/malloc-standard/Makefile.in
---- uClibc-0.9.33.2/libc/stdlib/malloc-standard/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc-standard/Makefile.in 2014-07-25 20:36:06.097330972 +0200
-@@ -7,15 +7,13 @@
-
- subdirs += libc/stdlib/malloc-standard
-
--# calloc.c can be found at uClibc/libc/stdlib/calloc.c
--# valloc.c can be found at uClibc/libc/stdlib/valloc.c
--CSRC := malloc.c calloc.c realloc.c free.c memalign.c mallopt.c mallinfo.c
--
- STDLIB_MALLOC_STANDARD_DIR := $(top_srcdir)libc/stdlib/malloc-standard
- STDLIB_MALLOC_STANDARD_OUT := $(top_builddir)libc/stdlib/malloc-standard
-
--STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC))
--STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC))
-+CSRC-y := $(notdir $(wildcard $(STDLIB_MALLOC_STANDARD_DIR)/*.c))
-+
-+STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC-y))
-+STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC-y))
-
- libc-$(MALLOC_STANDARD) += $(STDLIB_MALLOC_STANDARD_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/mallinfo.c uClibc-git/libc/stdlib/malloc-standard/mallinfo.c
---- uClibc-0.9.33.2/libc/stdlib/malloc-standard/mallinfo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc-standard/mallinfo.c 2014-07-25 20:36:06.097330972 +0200
-@@ -15,6 +15,7 @@
- */
-
- #include "malloc.h"
-+#include <stdio.h> /* fprintf */
-
-
- /* ------------------------------ mallinfo ------------------------------ */
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/malloc.h uClibc-git/libc/stdlib/malloc-standard/malloc.h
---- uClibc-0.9.33.2/libc/stdlib/malloc-standard/malloc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc-standard/malloc.h 2014-07-25 20:36:06.097330972 +0200
-@@ -26,7 +26,11 @@
-
-
-
--__UCLIBC_MUTEX_EXTERN(__malloc_lock);
-+__UCLIBC_MUTEX_EXTERN(__malloc_lock)
-+#if defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
-+ attribute_hidden
-+#endif
-+ ;
- #define __MALLOC_LOCK __UCLIBC_MUTEX_LOCK(__malloc_lock)
- #define __MALLOC_UNLOCK __UCLIBC_MUTEX_UNLOCK(__malloc_lock)
-
-@@ -349,13 +353,13 @@
- #endif
-
- #ifdef __ARCH_USE_MMU__
--# define _MAP_UNINITIALIZE 0
-+# define _MAP_UNINITIALIZED 0
- #else
--# define _MAP_UNINITIALIZE MAP_UNINITIALIZE
-+# define _MAP_UNINITIALIZED MAP_UNINITIALIZED
- #endif
-
- #define MMAP(addr, size, prot) \
-- (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS|_MAP_UNINITIALIZE, 0, 0))
-+ (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS|_MAP_UNINITIALIZED, 0, 0))
-
-
- /* ----------------------- Chunk representations ----------------------- */
-@@ -910,7 +914,7 @@
- malloc relies on the property that malloc_state is initialized to
- all zeroes (as is true of C statics).
- */
--extern struct malloc_state __malloc_state; /* never directly referenced */
-+extern struct malloc_state __malloc_state attribute_hidden; /* never directly referenced */
-
- /*
- All uses of av_ are via get_malloc_state().
-@@ -947,12 +951,12 @@
- #define check_malloced_chunk(P,N) __do_check_malloced_chunk(P,N)
- #define check_malloc_state() __do_check_malloc_state()
-
--extern void __do_check_chunk(mchunkptr p);
--extern void __do_check_free_chunk(mchunkptr p);
--extern void __do_check_inuse_chunk(mchunkptr p);
--extern void __do_check_remalloced_chunk(mchunkptr p, size_t s);
--extern void __do_check_malloced_chunk(mchunkptr p, size_t s);
--extern void __do_check_malloc_state(void);
-+extern void __do_check_chunk(mchunkptr p) attribute_hidden;
-+extern void __do_check_free_chunk(mchunkptr p) attribute_hidden;
-+extern void __do_check_inuse_chunk(mchunkptr p) attribute_hidden;
-+extern void __do_check_remalloced_chunk(mchunkptr p, size_t s) attribute_hidden;
-+extern void __do_check_malloced_chunk(mchunkptr p, size_t s) attribute_hidden;
-+extern void __do_check_malloc_state(void) attribute_hidden;
-
- #include <assert.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/memalign.c uClibc-git/libc/stdlib/malloc-standard/memalign.c
---- uClibc-0.9.33.2/libc/stdlib/malloc-standard/memalign.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/malloc-standard/memalign.c 2014-07-25 20:36:06.097330972 +0200
-@@ -127,4 +127,4 @@
- __MALLOC_UNLOCK;
- return retval;
- }
--
-+libc_hidden_def(memalign)
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mkdtemp.c uClibc-git/libc/stdlib/mkdtemp.c
---- uClibc-0.9.33.2/libc/stdlib/mkdtemp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/mkdtemp.c 2014-07-25 20:36:06.109331035 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mkostemp64.c uClibc-git/libc/stdlib/mkostemp64.c
---- uClibc-0.9.33.2/libc/stdlib/mkostemp64.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/stdlib/mkostemp64.c 2014-07-25 20:36:06.109331035 +0200
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <fcntl.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include "../misc/internals/tempname.h"
-+
-+/* Generate a unique temporary file name from TEMPLATE.
-+ The last six characters of TEMPLATE must be "XXXXXX";
-+ they are replaced with a string that makes the filename unique.
-+ Then open the file and return a fd. */
-+int
-+mkostemp64 (char *template, int flags)
-+{
-+ return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE);
-+}
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mkostemp.c uClibc-git/libc/stdlib/mkostemp.c
---- uClibc-0.9.33.2/libc/stdlib/mkostemp.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/stdlib/mkostemp.c 2014-07-25 20:36:06.109331035 +0200
-@@ -0,0 +1,30 @@
-+/* Copyright (C) 1998-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include "../misc/internals/tempname.h"
-+
-+/* Generate a unique temporary file name from TEMPLATE.
-+ The last six characters of TEMPLATE must be "XXXXXX";
-+ they are replaced with a string that makes the filename unique.
-+ Then open the file and return a fd. */
-+int
-+mkostemp (char *template, int flags)
-+{
-+ return __gen_tempname (template, __GT_FILE, flags);
-+}
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mkstemp64.c uClibc-git/libc/stdlib/mkstemp64.c
---- uClibc-0.9.33.2/libc/stdlib/mkstemp64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/mkstemp64.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mkstemp.c uClibc-git/libc/stdlib/mkstemp.c
---- uClibc-0.9.33.2/libc/stdlib/mkstemp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/mkstemp.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mktemp.c uClibc-git/libc/stdlib/mktemp.c
---- uClibc-0.9.33.2/libc/stdlib/mktemp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/mktemp.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mrand48.c uClibc-git/libc/stdlib/mrand48.c
---- uClibc-0.9.33.2/libc/stdlib/mrand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/mrand48.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/mrand48_r.c uClibc-git/libc/stdlib/mrand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/mrand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/mrand48_r.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/nrand48.c uClibc-git/libc/stdlib/nrand48.c
---- uClibc-0.9.33.2/libc/stdlib/nrand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/nrand48.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/nrand48_r.c uClibc-git/libc/stdlib/nrand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/nrand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/nrand48_r.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/posix_memalign.c uClibc-git/libc/stdlib/posix_memalign.c
---- uClibc-0.9.33.2/libc/stdlib/posix_memalign.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/posix_memalign.c 2014-07-25 20:36:06.109331035 +0200
-@@ -15,9 +15,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/ptsname.c uClibc-git/libc/stdlib/ptsname.c
---- uClibc-0.9.33.2/libc/stdlib/ptsname.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/ptsname.c 2014-07-25 20:36:06.109331035 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/pty-private.h uClibc-git/libc/stdlib/pty-private.h
---- uClibc-0.9.33.2/libc/stdlib/pty-private.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/pty-private.h 2014-07-25 20:36:06.109331035 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTY_PRIVATE_H
- #define _PTY_PRIVATE_H 1
-diff -Nur uClibc-0.9.33.2/libc/stdlib/rand_r.c uClibc-git/libc/stdlib/rand_r.c
---- uClibc-0.9.33.2/libc/stdlib/rand_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/rand_r.c 2014-07-25 20:36:06.109331035 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/rpmatch.c uClibc-git/libc/stdlib/rpmatch.c
---- uClibc-0.9.33.2/libc/stdlib/rpmatch.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/stdlib/rpmatch.c 2014-07-25 20:36:06.113331056 +0200
-@@ -0,0 +1,7 @@
-+/* Copyright (C) 2012 Bernhard Reutner-Fischer <uclibc@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1+, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define L_rpmatch
-+#include "stdlib.c"
-diff -Nur uClibc-0.9.33.2/libc/stdlib/seed48.c uClibc-git/libc/stdlib/seed48.c
---- uClibc-0.9.33.2/libc/stdlib/seed48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/seed48.c 2014-07-25 20:36:06.113331056 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/seed48_r.c uClibc-git/libc/stdlib/seed48_r.c
---- uClibc-0.9.33.2/libc/stdlib/seed48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/seed48_r.c 2014-07-25 20:36:06.113331056 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/setenv.c uClibc-git/libc/stdlib/setenv.c
---- uClibc-0.9.33.2/libc/stdlib/setenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/setenv.c 2014-07-25 20:36:06.113331056 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>.
-
- modified for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-diff -Nur uClibc-0.9.33.2/libc/stdlib/srand48.c uClibc-git/libc/stdlib/srand48.c
---- uClibc-0.9.33.2/libc/stdlib/srand48.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/srand48.c 2014-07-25 20:36:06.113331056 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/srand48_r.c uClibc-git/libc/stdlib/srand48_r.c
---- uClibc-0.9.33.2/libc/stdlib/srand48_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/srand48_r.c 2014-07-25 20:36:06.113331056 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include <limits.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/stdlib.c uClibc-git/libc/stdlib/stdlib.c
---- uClibc-0.9.33.2/libc/stdlib/stdlib.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/stdlib.c 2014-07-25 20:36:06.113331056 +0200
-@@ -12,8 +12,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -32,58 +32,8 @@
- * Add wscto{inttype} functions.
- */
-
--#define _ISOC99_SOURCE /* for ULLONG primarily... */
- #include <limits.h>
- #include <stdint.h>
--/* Work around gcc's refusal to create aliases.
-- * TODO: Add in a define to disable the aliases? */
--
--#if UINT_MAX == ULONG_MAX
--#ifdef L_labs
--#define abs __ignore_abs
--#endif
--#ifdef L_atol
--#define atoi __ignore_atoi
--#endif
--#endif
--#if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#ifdef L_labs
--#define llabs __ignore_llabs
--#endif
--#ifdef L_atol
--#define atoll __ignore_atoll
--#endif
--#ifdef L_strtol
--#define strtoll __ignore_strtoll
--#endif
--#ifdef L_strtoul
--#define strtoull __ignore_strtoull
--#endif
--#ifdef L_wcstol
--#define wcstoll __ignore_wcstoll
--#endif
--#ifdef L_wcstoul
--#define wcstoull __ignore_wcstoull
--#endif
--#ifdef L_strtol_l
--#define strtoll_l __ignore_strtoll_l
--#endif
--#ifdef L_strtoul_l
--#define strtoull_l __ignore_strtoull_l
--#endif
--#ifdef L_wcstol_l
--#define wcstoll_l __ignore_wcstoll_l
--#endif
--#ifdef L_wcstoul_l
--#define wcstoull_l __ignore_wcstoull_l
--#endif
--#endif
--#if defined(ULLONG_MAX) && (ULLONG_MAX == UINTMAX_MAX)
--#if defined L_labs || defined L_llabs
--#define imaxabs __ignore_imaxabs
--#endif
--#endif
--
- #include <stdint.h>
- #include <inttypes.h>
- #include <ctype.h>
-@@ -100,10 +50,6 @@
- #include <wctype.h>
- #include <bits/uClibc_uwchar.h>
-
--#ifdef __UCLIBC_HAS_XLOCALE__
--#include <xlocale.h>
--#endif /* __UCLIBC_HAS_XLOCALE__ */
--
- /* TODO: clean up the following... */
-
- #if WCHAR_MAX > 0xffffUL
-@@ -226,21 +172,15 @@
- }
-
- #if UINT_MAX == ULONG_MAX
--#undef abs
--extern __typeof(labs) abs;
--strong_alias(labs,abs)
-+strong_alias_untyped(labs,abs)
- #endif
-
- #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#undef llabs
--extern __typeof(labs) llabs;
--strong_alias(labs,llabs)
-+strong_alias_untyped(labs,llabs)
- #endif
-
- #if ULONG_MAX == UINTMAX_MAX
--#undef imaxabs
--extern __typeof(labs) imaxabs;
--strong_alias(labs,imaxabs)
-+strong_alias_untyped(labs,imaxabs)
- #endif
-
- #endif
-@@ -255,9 +195,7 @@
- }
-
- #if (ULLONG_MAX == UINTMAX_MAX)
--#undef imaxabs
--extern __typeof(llabs) imaxabs;
--strong_alias(llabs,imaxabs)
-+strong_alias_untyped(llabs,imaxabs)
- #endif
-
- #endif /* defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX) */
-@@ -288,18 +226,12 @@
- }
-
- #if UINT_MAX == ULONG_MAX
--#undef atoi
--extern __typeof(atol) atoi;
--/* the one in stdlib.h is not enough due to prototype mismatch */
--libc_hidden_proto(atoi)
--strong_alias(atol,atoi)
-+strong_alias_untyped(atol,atoi)
- libc_hidden_def(atoi)
- #endif
-
- #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#undef atoll
--extern __typeof(atol) atoll;
--strong_alias(atol,atoll)
-+strong_alias_untyped(atol,atoll)
- #endif
-
- #endif
-@@ -318,9 +250,16 @@
-
- #endif
- /**********************************************************************/
-+#ifdef L_rpmatch
-+int rpmatch (const char *__response)
-+{
-+ return (__response[0] == 'y' || __response[0] == 'Y') ? 1 :
-+ (__response[0] == 'n' || __response[0] == 'N') ? 0 : -1;
-+}
-+#endif
-+/**********************************************************************/
- #if defined(L_strtol) || defined(L_strtol_l)
-
--libc_hidden_proto(__XL_NPP(strtol))
- long __XL_NPP(strtol)(const char * __restrict str, char ** __restrict endptr,
- int base __LOCALE_PARAM)
- {
-@@ -333,17 +272,7 @@
- #endif
-
- #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#ifdef L_strtol_l
--#undef strtoll_l
--#else
--#undef strtoll
--#endif
--extern __typeof(__XL_NPP(strtol)) __XL_NPP(strtoll);
--/* the one in stdlib.h is not enough due to prototype mismatch */
--#ifdef L_strtol
--libc_hidden_proto(__XL_NPP(strtoll))
--#endif
--strong_alias(__XL_NPP(strtol),__XL_NPP(strtoll))
-+strong_alias_untyped(__XL_NPP(strtol),__XL_NPP(strtoll))
- #ifdef L_strtol
- libc_hidden_def(__XL_NPP(strtoll))
- strong_alias(strtol,strtoq)
-@@ -389,13 +318,7 @@
- #endif
-
- #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#ifdef L_strtoul_l
--#undef strtoull_l
--#else
--#undef strtoull
--#endif
--extern __typeof(__XL_NPP(strtoul)) __XL_NPP(strtoull);
--strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull))
-+strong_alias_untyped(__XL_NPP(strtoul),__XL_NPP(strtoull))
- #if !defined(L_strtoul_l)
- strong_alias(strtoul,strtouq)
- #endif
-@@ -744,16 +667,7 @@
- #endif /* defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX) */
-
- #endif
--/**********************************************************************/
--/* Made _Exit() an alias for _exit(), as per C99. */
--/* #ifdef L__Exit */
--/* void _Exit(int status) */
--/* { */
--/* _exit(status); */
--/* } */
-
--/* #endif */
--/**********************************************************************/
- #ifdef L_bsearch
-
- void *bsearch(const void *key, const void *base, size_t /* nmemb */ high,
-@@ -1067,13 +981,7 @@
- #endif
-
- #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#ifdef L_wcstol_l
--#undef wcstoll_l
--#else
--#undef wcstoll
--#endif
--extern __typeof(__XL_NPP(wcstol)) __XL_NPP(wcstoll);
--strong_alias(__XL_NPP(wcstol),__XL_NPP(wcstoll))
-+strong_alias_untyped(__XL_NPP(wcstol),__XL_NPP(wcstoll))
- #endif
-
- #endif
-@@ -1114,13 +1022,7 @@
- #endif
-
- #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
--#ifdef L_wcstoul_l
--#undef wcstoull_l
--#else
--#undef wcstoull
--#endif
--extern __typeof(__XL_NPP(wcstoul)) __XL_NPP(wcstoull);
--strong_alias(__XL_NPP(wcstoul),__XL_NPP(wcstoull))
-+strong_alias_untyped(__XL_NPP(wcstoul),__XL_NPP(wcstoull))
- #endif
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/_strtod.c uClibc-git/libc/stdlib/_strtod.c
---- uClibc-0.9.33.2/libc/stdlib/_strtod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/_strtod.c 2014-07-25 20:36:06.061330784 +0200
-@@ -95,7 +95,6 @@
-
- /**********************************************************************/
-
--#define _ISOC99_SOURCE 1
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
-@@ -112,10 +111,6 @@
- # include <bits/uClibc_uwchar.h>
- #endif
-
--#ifdef __UCLIBC_HAS_XLOCALE__
--# include <xlocale.h>
--#endif
--
- /* Handle _STRTOD_HEXADECIMAL_FLOATS via uClibc config now. */
- #undef _STRTOD_HEXADECIMAL_FLOATS
- #ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
-@@ -509,7 +504,6 @@
- #endif
-
-
--libc_hidden_proto(__XL_NPP(strtof))
- float __XL_NPP(strtof)(const Wchar *str, Wchar **endptr __LOCALE_PARAM )
- {
- #if FPMAX_TYPE == 1
-@@ -526,7 +520,6 @@
- return y;
- #endif
- }
--libc_hidden_def(__XL_NPP(strtof))
-
- #endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/stdlib/system.c uClibc-git/libc/stdlib/system.c
---- uClibc-0.9.33.2/libc/stdlib/system.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/system.c 2014-07-25 20:36:06.113331056 +0200
-@@ -24,11 +24,6 @@
- * need to figure out why still
- */
- #if !defined __UCLIBC_HAS_THREADS_NATIVE__ || defined __sparc__
--/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
--#include <sys/syscall.h>
--#ifndef __NR_vfork
--# define vfork fork
--#endif
-
- int __libc_system(const char *command)
- {
-@@ -66,7 +61,7 @@
- __printf("Waiting for child %d\n", pid);
- #endif
-
-- if (wait4(pid, &wait_val, 0, 0) == -1)
-+ if (__wait4_nocancel(pid, &wait_val, 0, 0) == -1)
- wait_val = -1;
-
- out:
-diff -Nur uClibc-0.9.33.2/libc/stdlib/__uc_malloc.c uClibc-git/libc/stdlib/__uc_malloc.c
---- uClibc-0.9.33.2/libc/stdlib/__uc_malloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/__uc_malloc.c 2014-07-25 20:36:06.061330784 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with this library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA.
-+not, see <http://www.gnu.org/licenses/>.
-
- */
-
-diff -Nur uClibc-0.9.33.2/libc/stdlib/unix_grantpt.c uClibc-git/libc/stdlib/unix_grantpt.c
---- uClibc-0.9.33.2/libc/stdlib/unix_grantpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/unix_grantpt.c 2014-07-25 20:36:06.113331056 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-@@ -31,12 +30,6 @@
- #include "pty-private.h"
-
-
--/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
--#include <sys/syscall.h>
--#if ! defined __NR_vfork
--#define vfork fork
--#endif
--
- /* Return the result of ptsname_r in the buffer pointed to by PTS,
- which should be of length BUF_LEN. If it is too long to fit in
- this buffer, a sufficiently long buffer is allocated using malloc,
-diff -Nur uClibc-0.9.33.2/libc/stdlib/unlockpt.c uClibc-git/libc/stdlib/unlockpt.c
---- uClibc-0.9.33.2/libc/stdlib/unlockpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/unlockpt.c 2014-07-25 20:36:06.113331056 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/stdlib/valloc.c uClibc-git/libc/stdlib/valloc.c
---- uClibc-0.9.33.2/libc/stdlib/valloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/stdlib/valloc.c 2014-07-25 20:36:06.113331056 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with this library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA.
-+not, see <http://www.gnu.org/licenses/>.
-
- The author may be reached (Email) at the address mike@@ai.mit.edu,
- or (US mail) as Mike Haertel c/o Free Software Foundation. */
-diff -Nur uClibc-0.9.33.2/libc/string/arc/Makefile uClibc-git/libc/string/arc/Makefile
---- uClibc-0.9.33.2/libc/string/arc/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/Makefile 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,13 @@
-+# Makefile for uClibc
-+#
-+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+top_srcdir:=../../../
-+top_builddir:=../../../
-+all: objs
-+include $(top_builddir)Rules.mak
-+include ../Makefile.in
-+include $(top_srcdir)Makerules
-diff -Nur uClibc-0.9.33.2/libc/string/arc/memcmp.S uClibc-git/libc/string/arc/memcmp.S
---- uClibc-0.9.33.2/libc/string/arc/memcmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/memcmp.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,128 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+#include <features.h>
-+
-+#ifdef __LITTLE_ENDIAN__
-+#define WORD2 r2
-+#define SHIFT r3
-+#else /* BIG ENDIAN */
-+#define WORD2 r3
-+#define SHIFT r2
-+#endif
-+
-+ENTRY(memcmp)
-+ or r12,r0,r1
-+ asl_s r12,r12,30
-+ sub r3,r2,1
-+ brls r2,r12,.Lbytewise
-+ ld r4,[r0,0]
-+ ld r5,[r1,0]
-+ lsr.f lp_count,r3,3
-+ lpne .Loop_end
-+ ld_s WORD2,[r0,4]
-+ ld_s r12,[r1,4]
-+ brne r4,r5,.Leven
-+ ld.a r4,[r0,8]
-+ ld.a r5,[r1,8]
-+ brne WORD2,r12,.Lodd
-+.Loop_end:
-+ asl_s SHIFT,SHIFT,3
-+ bhs_s .Last_cmp
-+ brne r4,r5,.Leven
-+ ld r4,[r0,4]
-+ ld r5,[r1,4]
-+#ifdef __LITTLE_ENDIAN__
-+ nop_s
-+ ; one more load latency cycle
-+.Last_cmp:
-+ xor r0,r4,r5
-+ bset r0,r0,SHIFT
-+ sub_s r1,r0,1
-+ bic_s r1,r1,r0
-+ norm r1,r1
-+ b.d .Leven_cmp
-+ and r1,r1,24
-+.Leven:
-+ xor r0,r4,r5
-+ sub_s r1,r0,1
-+ bic_s r1,r1,r0
-+ norm r1,r1
-+ ; slow track insn
-+ and r1,r1,24
-+.Leven_cmp:
-+ asl r2,r4,r1
-+ asl r12,r5,r1
-+ lsr_s r2,r2,1
-+ lsr_s r12,r12,1
-+ j_s.d [blink]
-+ sub r0,r2,r12
-+ .balign 4
-+.Lodd:
-+ xor r0,WORD2,r12
-+ sub_s r1,r0,1
-+ bic_s r1,r1,r0
-+ norm r1,r1
-+ ; slow track insn
-+ and r1,r1,24
-+ asl_s r2,r2,r1
-+ asl_s r12,r12,r1
-+ lsr_s r2,r2,1
-+ lsr_s r12,r12,1
-+ j_s.d [blink]
-+ sub r0,r2,r12
-+#else /* BIG ENDIAN */
-+.Last_cmp:
-+ neg_s SHIFT,SHIFT
-+ lsr r4,r4,SHIFT
-+ lsr r5,r5,SHIFT
-+ ; slow track insn
-+.Leven:
-+ sub.f r0,r4,r5
-+ mov.ne r0,1
-+ j_s.d [blink]
-+ bset.cs r0,r0,31
-+.Lodd:
-+ cmp_s WORD2,r12
-+ mov_s r0,1
-+ j_s.d [blink]
-+ bset.cs r0,r0,31
-+#endif /* ENDIAN */
-+ .balign 4
-+.Lbytewise:
-+ breq r2,0,.Lnil
-+ ldb r4,[r0,0]
-+ ldb r5,[r1,0]
-+ lsr.f lp_count,r3
-+ lpne .Lbyte_end
-+ ldb_s r3,[r0,1]
-+ ldb r12,[r1,1]
-+ brne r4,r5,.Lbyte_even
-+ ldb.a r4,[r0,2]
-+ ldb.a r5,[r1,2]
-+ brne r3,r12,.Lbyte_odd
-+.Lbyte_end:
-+ bcc .Lbyte_even
-+ brne r4,r5,.Lbyte_even
-+ ldb_s r3,[r0,1]
-+ ldb_s r12,[r1,1]
-+.Lbyte_odd:
-+ j_s.d [blink]
-+ sub r0,r3,r12
-+.Lbyte_even:
-+ j_s.d [blink]
-+ sub r0,r4,r5
-+.Lnil:
-+ j_s.d [blink]
-+ mov r0,0
-+END(memcmp)
-+libc_hidden_def(memcmp)
-+
-+#ifdef __UCLIBC_SUSV3_LEGACY__
-+strong_alias(memcmp,bcmp)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/arc/memcpy.S uClibc-git/libc/string/arc/memcpy.S
---- uClibc-0.9.33.2/libc/string/arc/memcpy.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/memcpy.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,71 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+
-+/* This memcpy implementation does not support objects of 1GB or larger -
-+ the check for alignment does not work then. */
-+/* We assume that most sources and destinations are aligned, and
-+ that also lengths are mostly a multiple of four, although to a lesser
-+ extent. */
-+ENTRY(memcpy)
-+ or r3,r0,r1
-+ asl_s r3,r3,30
-+ mov_s r5,r0
-+ brls.d r2,r3,.Lcopy_bytewise
-+ sub.f r3,r2,1
-+ ld_s r12,[r1,0]
-+ asr.f lp_count,r3,3
-+ bbit0.d r3,2,.Lnox4
-+ bmsk_s r2,r2,1
-+ st.ab r12,[r5,4]
-+ ld.a r12,[r1,4]
-+.Lnox4:
-+ lppnz .Lendloop
-+ ld_s r3,[r1,4]
-+ st.ab r12,[r5,4]
-+ ld.a r12,[r1,8]
-+ st.ab r3,[r5,4]
-+.Lendloop:
-+ breq r2,0,.Last_store
-+ ld r3,[r5,0]
-+#ifdef __LITTLE_ENDIAN__
-+ add3 r2,-1,r2
-+ ; uses long immediate
-+ xor_s r12,r12,r3
-+ bmsk r12,r12,r2
-+ xor_s r12,r12,r3
-+#else /* BIG ENDIAN */
-+ sub3 r2,31,r2
-+ ; uses long immediate
-+ xor_s r3,r3,r12
-+ bmsk r3,r3,r2
-+ xor_s r12,r12,r3
-+#endif /* ENDIAN */
-+.Last_store:
-+ j_s.d [blink]
-+ st r12,[r5,0]
-+
-+ .balign 4
-+.Lcopy_bytewise:
-+ jcs [blink]
-+ ldb_s r12,[r1,0]
-+ lsr.f lp_count,r3
-+ bhs_s .Lnox1
-+ stb.ab r12,[r5,1]
-+ ldb.a r12,[r1,1]
-+.Lnox1:
-+ lppnz .Lendbloop
-+ ldb_s r3,[r1,1]
-+ stb.ab r12,[r5,1]
-+ ldb.a r12,[r1,2]
-+ stb.ab r3,[r5,1]
-+.Lendbloop:
-+ j_s.d [blink]
-+ stb r12,[r5,0]
-+END(memcpy)
-+libc_hidden_def(memcpy)
-diff -Nur uClibc-0.9.33.2/libc/string/arc/memset.S uClibc-git/libc/string/arc/memset.S
---- uClibc-0.9.33.2/libc/string/arc/memset.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/memset.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,51 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+
-+#define SMALL 7 /* Must be at least 6 to deal with alignment/loop issues. */
-+
-+ENTRY(memset)
-+
-+ mov_s r4,r0
-+ or r12,r0,r2
-+ bmsk.f r12,r12,1
-+ extb_s r1,r1
-+ asl r3,r1,8
-+ beq.d .Laligned
-+ or_s r1,r1,r3
-+ brls r2,SMALL,.Ltiny
-+ add r3,r2,r0
-+ stb r1,[r3,-1]
-+ bclr_s r3,r3,0
-+ stw r1,[r3,-2]
-+ bmsk.f r12,r0,1
-+ add_s r2,r2,r12
-+ sub.ne r2,r2,4
-+ stb.ab r1,[r4,1]
-+ and r4,r4,-2
-+ stw.ab r1,[r4,2]
-+ and r4,r4,-4
-+.Laligned: ; This code address should be aligned for speed.
-+ asl r3,r1,16
-+ lsr.f lp_count,r2,2
-+ or_s r1,r1,r3
-+ lpne .Loop_end
-+ st.ab r1,[r4,4]
-+.Loop_end:
-+ j_s [blink]
-+
-+
-+ .balign 4
-+.Ltiny:
-+ mov.f lp_count,r2
-+ lpne .Ltiny_end
-+ stb.ab r1,[r4,1]
-+.Ltiny_end:
-+ j_s [blink]
-+END(memset)
-+libc_hidden_def(memset)
-diff -Nur uClibc-0.9.33.2/libc/string/arc/strchr.S uClibc-git/libc/string/arc/strchr.S
---- uClibc-0.9.33.2/libc/string/arc/strchr.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/strchr.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,138 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+#include <features.h>
-+
-+/* ARC700 has a relatively long pipeline and branch prediction, so we want
-+ to avoid branches that are hard to predict. On the other hand, the
-+ presence of the norm instruction makes it easier to operate on whole
-+ words branch-free. */
-+
-+ENTRY(strchr)
-+ extb_s r1,r1
-+ asl r5,r1,8
-+ bmsk r2,r0,1
-+ or r5,r5,r1
-+ mov_s r3,0x01010101
-+ breq.d r2,r0,.Laligned
-+ asl r4,r5,16
-+ sub_s r0,r0,r2
-+ asl r7,r2,3
-+ ld_s r2,[r0]
-+#ifdef __LITTLE_ENDIAN__
-+ asl r7,r3,r7
-+#else
-+ lsr r7,r3,r7
-+#endif
-+ or r5,r5,r4
-+ ror r4,r3
-+ sub r12,r2,r7
-+ bic_s r12,r12,r2
-+ and r12,r12,r4
-+ brne.d r12,0,.Lfound0_ua
-+ xor r6,r2,r5
-+ ld.a r2,[r0,4]
-+ sub r12,r6,r7
-+ bic r12,r12,r6
-+#ifdef __LITTLE_ENDIAN__
-+ and r7,r12,r4
-+ breq r7,0,.Loop ; For speed, we want this branch to be unaligned.
-+ b .Lfound_char ; Likewise this one.
-+#else
-+ and r12,r12,r4
-+ breq r12,0,.Loop ; For speed, we want this branch to be unaligned.
-+ lsr_s r12,r12,7
-+ bic r2,r7,r6
-+ b.d .Lfound_char_b
-+ and_s r2,r2,r12
-+#endif
-+; /* We require this code address to be unaligned for speed... */
-+.Laligned:
-+ ld_s r2,[r0]
-+ or r5,r5,r4
-+ ror r4,r3
-+; /* ... so that this code address is aligned, for itself and ... */
-+.Loop:
-+ sub r12,r2,r3
-+ bic_s r12,r12,r2
-+ and r12,r12,r4
-+ brne.d r12,0,.Lfound0
-+ xor r6,r2,r5
-+ ld.a r2,[r0,4]
-+ sub r12,r6,r3
-+ bic r12,r12,r6
-+ and r7,r12,r4
-+ breq r7,0,.Loop /* ... so that this branch is unaligned. */
-+ ; Found searched-for character. r0 has already advanced to next word.
-+#ifdef __LITTLE_ENDIAN__
-+/* We only need the information about the first matching byte
-+ (i.e. the least significant matching byte) to be exact,
-+ hence there is no problem with carry effects. */
-+.Lfound_char:
-+ sub r3,r7,1
-+ bic r3,r3,r7
-+ norm r2,r3
-+ sub_s r0,r0,1
-+ asr_s r2,r2,3
-+ j.d [blink]
-+ sub_s r0,r0,r2
-+
-+ .balign 4
-+.Lfound0_ua:
-+ mov r3,r7
-+.Lfound0:
-+ sub r3,r6,r3
-+ bic r3,r3,r6
-+ and r2,r3,r4
-+ or_s r12,r12,r2
-+ sub_s r3,r12,1
-+ bic_s r3,r3,r12
-+ norm r3,r3
-+ add_s r0,r0,3
-+ asr_s r12,r3,3
-+ asl.f 0,r2,r3
-+ sub_s r0,r0,r12
-+ j_s.d [blink]
-+ mov.pl r0,0
-+#else /* BIG ENDIAN */
-+.Lfound_char:
-+ lsr r7,r7,7
-+
-+ bic r2,r7,r6
-+.Lfound_char_b:
-+ norm r2,r2
-+ sub_s r0,r0,4
-+ asr_s r2,r2,3
-+ j.d [blink]
-+ add_s r0,r0,r2
-+
-+.Lfound0_ua:
-+ mov_s r3,r7
-+.Lfound0:
-+ asl_s r2,r2,7
-+ or r7,r6,r4
-+ bic_s r12,r12,r2
-+ sub r2,r7,r3
-+ or r2,r2,r6
-+ bic r12,r2,r12
-+ bic.f r3,r4,r12
-+ norm r3,r3
-+
-+ add.pl r3,r3,1
-+ asr_s r12,r3,3
-+ asl.f 0,r2,r3
-+ add_s r0,r0,r12
-+ j_s.d [blink]
-+ mov.mi r0,0
-+#endif /* ENDIAN */
-+END(strchr)
-+libc_hidden_def(strchr)
-+
-+#ifdef __UCLIBC_SUSV3_LEGACY__
-+strong_alias(strchr,index)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/arc/strcmp.S uClibc-git/libc/string/arc/strcmp.S
---- uClibc-0.9.33.2/libc/string/arc/strcmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/strcmp.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,102 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+#include <sysdep.h>
-+
-+/* This is optimized primarily for the ARC700.
-+ It would be possible to speed up the loops by one cycle / word
-+ respective one cycle / byte by forcing double source 1 alignment, unrolling
-+ by a factor of two, and speculatively loading the second word / byte of
-+ source 1; however, that would increase the overhead for loop setup / finish,
-+ and strcmp might often terminate early. */
-+
-+ENTRY(strcmp)
-+ or r2,r0,r1
-+ bmsk_s r2,r2,1
-+ brne r2,0,.Lcharloop
-+ mov_s r12,0x01010101
-+ ror r5,r12
-+.Lwordloop:
-+ ld.ab r2,[r0,4]
-+ ld.ab r3,[r1,4]
-+ nop_s
-+ sub r4,r2,r12
-+ bic r4,r4,r2
-+ and r4,r4,r5
-+ brne r4,0,.Lfound0
-+ breq r2,r3,.Lwordloop
-+#ifdef __LITTLE_ENDIAN__
-+ xor r0,r2,r3 ; mask for difference
-+ sub_s r1,r0,1
-+ bic_s r0,r0,r1 ; mask for least significant difference bit
-+ sub r1,r5,r0
-+ xor r0,r5,r1 ; mask for least significant difference byte
-+ and_s r2,r2,r0
-+ and_s r3,r3,r0
-+#endif /* LITTLE ENDIAN */
-+ cmp_s r2,r3
-+ mov_s r0,1
-+ j_s.d [blink]
-+ bset.lo r0,r0,31
-+
-+ .balign 4
-+#ifdef __LITTLE_ENDIAN__
-+.Lfound0:
-+ xor r0,r2,r3 ; mask for difference
-+ or r0,r0,r4 ; or in zero indicator
-+ sub_s r1,r0,1
-+ bic_s r0,r0,r1 ; mask for least significant difference bit
-+ sub r1,r5,r0
-+ xor r0,r5,r1 ; mask for least significant difference byte
-+ and_s r2,r2,r0
-+ and_s r3,r3,r0
-+ sub.f r0,r2,r3
-+ mov.hi r0,1
-+ j_s.d [blink]
-+ bset.lo r0,r0,31
-+#else /* BIG ENDIAN */
-+ /* The zero-detection above can mis-detect 0x01 bytes as zeroes
-+ because of carry-propagateion from a lower significant zero byte.
-+ We can compensate for this by checking that bit0 is zero.
-+ This compensation is not necessary in the step where we
-+ get a low estimate for r2, because in any affected bytes
-+ we already have 0x00 or 0x01, which will remain unchanged
-+ when bit 7 is cleared. */
-+ .balign 4
-+.Lfound0:
-+ lsr r0,r4,8
-+ lsr_s r1,r2
-+ bic_s r2,r2,r0 ; get low estimate for r2 and get ...
-+ bic_s r0,r0,r1 ; <this is the adjusted mask for zeros>
-+ or_s r3,r3,r0 ; ... high estimate r3 so that r2 > r3 will ...
-+ cmp_s r3,r2 ; ... be independent of trailing garbage
-+ or_s r2,r2,r0 ; likewise for r3 > r2
-+ bic_s r3,r3,r0
-+ rlc r0,0 ; r0 := r2 > r3 ? 1 : 0
-+ cmp_s r2,r3
-+ j_s.d [blink]
-+ bset.lo r0,r0,31
-+#endif /* ENDIAN */
-+
-+ .balign 4
-+.Lcharloop:
-+ ldb.ab r2,[r0,1]
-+ ldb.ab r3,[r1,1]
-+ nop_s
-+ breq r2,0,.Lcmpend
-+ breq r2,r3,.Lcharloop
-+.Lcmpend:
-+ j_s.d [blink]
-+ sub r0,r2,r3
-+END(strcmp)
-+libc_hidden_def(strcmp)
-+
-+#ifndef __UCLIBC_HAS_LOCALE__
-+strong_alias(strcmp,strcoll)
-+libc_hidden_def(strcoll)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/arc/strcpy.S uClibc-git/libc/string/arc/strcpy.S
---- uClibc-0.9.33.2/libc/string/arc/strcpy.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/strcpy.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,71 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+
-+#include <sysdep.h>
-+
-+/* If dst and src are 4 byte aligned, copy 8 bytes at a time.
-+ If the src is 4, but not 8 byte aligned, we first read 4 bytes to get
-+ it 8 byte aligned. Thus, we can do a little read-ahead, without
-+ dereferencing a cache line that we should not touch.
-+ Note that short and long instructions have been scheduled to avoid
-+ branch stalls.
-+ The beq_s to r3z could be made unaligned & long to avoid a stall
-+ there, but the it is not likely to be taken often, and it
-+ would also be likey to cost an unaligned mispredict at the next call. */
-+
-+ENTRY(strcpy)
-+ or r2,r0,r1
-+ bmsk_s r2,r2,1
-+ brne.d r2,0,charloop
-+ mov_s r10,r0
-+ ld_s r3,[r1,0]
-+ mov r8,0x01010101
-+ bbit0.d r1,2,loop_start
-+ ror r12,r8
-+ sub r2,r3,r8
-+ bic_s r2,r2,r3
-+ tst_s r2,r12
-+ bne r3z
-+ mov_s r4,r3
-+ .balign 4
-+loop:
-+ ld.a r3,[r1,4]
-+ st.ab r4,[r10,4]
-+loop_start:
-+ ld.a r4,[r1,4]
-+ sub r2,r3,r8
-+ bic_s r2,r2,r3
-+ tst_s r2,r12
-+ bne_s r3z
-+ st.ab r3,[r10,4]
-+ sub r2,r4,r8
-+ bic r2,r2,r4
-+ tst r2,r12
-+ beq loop
-+ mov_s r3,r4
-+#ifdef __LITTLE_ENDIAN__
-+r3z: bmsk.f r1,r3,7
-+ lsr_s r3,r3,8
-+#else
-+r3z: lsr.f r1,r3,24
-+ asl_s r3,r3,8
-+#endif
-+ bne.d r3z
-+ stb.ab r1,[r10,1]
-+ j_s [blink]
-+
-+ .balign 4
-+charloop:
-+ ldb.ab r3,[r1,1]
-+
-+
-+ brne.d r3,0,charloop
-+ stb.ab r3,[r10,1]
-+ j [blink]
-+END(strcpy)
-+libc_hidden_def(strcpy)
-diff -Nur uClibc-0.9.33.2/libc/string/arc/strlen.S uClibc-git/libc/string/arc/strlen.S
---- uClibc-0.9.33.2/libc/string/arc/strlen.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/arc/strlen.S 2014-07-25 20:36:06.149331244 +0200
-@@ -0,0 +1,84 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ * Copyright (C) 2007 ARC International (UK) LTD
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+
-+#include <sysdep.h>
-+
-+ENTRY(strlen)
-+ or r3,r0,7
-+ ld r2,[r3,-7]
-+ ld.a r6,[r3,-3]
-+ mov r4,0x01010101
-+ ; uses long immediate
-+#ifdef __LITTLE_ENDIAN__
-+ asl_s r1,r0,3
-+ btst_s r0,2
-+ asl r7,r4,r1
-+ ror r5,r4
-+ sub r1,r2,r7
-+ bic_s r1,r1,r2
-+ mov.eq r7,r4
-+ sub r12,r6,r7
-+ bic r12,r12,r6
-+ or.eq r12,r12,r1
-+ and r12,r12,r5
-+ brne r12,0,.Learly_end
-+#else /* BIG ENDIAN */
-+ ror r5,r4
-+ btst_s r0,2
-+ mov_s r1,31
-+ sub3 r7,r1,r0
-+ sub r1,r2,r4
-+ bic_s r1,r1,r2
-+ bmsk r1,r1,r7
-+ sub r12,r6,r4
-+ bic r12,r12,r6
-+ bmsk.ne r12,r12,r7
-+ or.eq r12,r12,r1
-+ and r12,r12,r5
-+ brne r12,0,.Learly_end
-+#endif /* ENDIAN */
-+
-+.Loop:
-+ ld_s r2,[r3,4]
-+ ld.a r6,[r3,8]
-+ ; stall for load result
-+ sub r1,r2,r4
-+ bic_s r1,r1,r2
-+ sub r12,r6,r4
-+ bic r12,r12,r6
-+ or r12,r12,r1
-+ and r12,r12,r5
-+ breq r12,0,.Loop
-+.Lend:
-+ and.f r1,r1,r5
-+ sub.ne r3,r3,4
-+ mov.eq r1,r12
-+#ifdef __LITTLE_ENDIAN__
-+ sub_s r2,r1,1
-+ bic_s r2,r2,r1
-+ norm r1,r2
-+ sub_s r0,r0,3
-+ lsr_s r1,r1,3
-+ sub r0,r3,r0
-+ j_s.d [blink]
-+ sub r0,r0,r1
-+#else /* BIG ENDIAN */
-+ lsr_s r1,r1,7
-+ mov.eq r2,r6
-+ bic_s r1,r1,r2
-+ norm r1,r1
-+ sub r0,r3,r0
-+ lsr_s r1,r1,3
-+ j_s.d [blink]
-+ add r0,r0,r1
-+#endif /* ENDIAN */
-+.Learly_end:
-+ b.d .Lend
-+ sub_s.ne r1,r1,r1
-+END(strlen)
-+libc_hidden_def(strlen)
-diff -Nur uClibc-0.9.33.2/libc/string/arm/memcmp.S uClibc-git/libc/string/arm/memcmp.S
---- uClibc-0.9.33.2/libc/string/arm/memcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/arm/memcmp.S 2014-07-25 20:36:06.161331307 +0200
-@@ -31,6 +31,7 @@
-
- #include <features.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- .text
- .global memcmp
-diff -Nur uClibc-0.9.33.2/libc/string/arm/_memcpy.S uClibc-git/libc/string/arm/_memcpy.S
---- uClibc-0.9.33.2/libc/string/arm/_memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/arm/_memcpy.S 2014-07-25 20:36:06.161331307 +0200
-@@ -40,6 +40,7 @@
- #include <features.h>
- #include <endian.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- #if !defined(THUMB1_ONLY)
- /*
-diff -Nur uClibc-0.9.33.2/libc/string/arm/memset.S uClibc-git/libc/string/arm/memset.S
---- uClibc-0.9.33.2/libc/string/arm/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/arm/memset.S 2014-07-25 20:36:06.161331307 +0200
-@@ -13,13 +13,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/syscall.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- .text
- .global memset
-diff -Nur uClibc-0.9.33.2/libc/string/arm/strcmp.S uClibc-git/libc/string/arm/strcmp.S
---- uClibc-0.9.33.2/libc/string/arm/strcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/arm/strcmp.S 2014-07-25 20:36:06.161331307 +0200
-@@ -31,6 +31,7 @@
-
- #include <features.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- .text
- .global strcmp
-diff -Nur uClibc-0.9.33.2/libc/string/arm/strlen.S uClibc-git/libc/string/arm/strlen.S
---- uClibc-0.9.33.2/libc/string/arm/strlen.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/arm/strlen.S 2014-07-25 20:36:06.161331307 +0200
-@@ -13,14 +13,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <endian.h>
- #include <sys/syscall.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- /* size_t strlen(const char *S)
- * entry: r0 -> string
-diff -Nur uClibc-0.9.33.2/libc/string/avr32/Makefile uClibc-git/libc/string/avr32/Makefile
---- uClibc-0.9.33.2/libc/string/avr32/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/avr32/Makefile 2014-07-25 20:36:06.181331412 +0200
-@@ -13,8 +13,7 @@
- # details.
- #
- # You should have received a copy of the GNU Library General Public License
--# along with this program; if not, write to the Free Software Foundation, Inc.,
--# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- top_srcdir := ../../../
- top_builddir := ../../../
-diff -Nur uClibc-0.9.33.2/libc/string/basename.c uClibc-git/libc/string/basename.c
---- uClibc-0.9.33.2/libc/string/basename.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/basename.c 2014-07-25 20:36:06.181331412 +0200
-@@ -5,7 +5,7 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "_string.h"
-+#include <string.h>
-
- #ifdef __USE_GNU
-
-@@ -24,5 +24,4 @@
-
- return (char *) p;
- }
--libc_hidden_def(basename)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/string/bcopy.c uClibc-git/libc/string/bcopy.c
---- uClibc-0.9.33.2/libc/string/bcopy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/bcopy.c 2014-07-25 20:36:06.181331412 +0200
-@@ -5,11 +5,9 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "_string.h"
-+#include <string.h>
-
- #ifdef __UCLIBC_SUSV3_LEGACY__
--
--
- void bcopy(const void *s2, void *s1, size_t n)
- {
- #if 1
-diff -Nur uClibc-0.9.33.2/libc/string/bzero.c uClibc-git/libc/string/bzero.c
---- uClibc-0.9.33.2/libc/string/bzero.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/bzero.c 2014-07-25 20:36:06.193331475 +0200
-@@ -5,7 +5,7 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "_string.h"
-+#include <string.h>
-
- #ifdef __UCLIBC_SUSV3_LEGACY__
- void bzero(void *s, size_t n)
-diff -Nur uClibc-0.9.33.2/libc/string/_collate.c uClibc-git/libc/string/_collate.c
---- uClibc-0.9.33.2/libc/string/_collate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/_collate.c 2014-07-25 20:36:06.137331182 +0200
-@@ -159,7 +159,7 @@
- #define N (1)
- #else /* WANT_WIDE */
- wchar_t WC;
-- size_t n0, nx;
-+ size_t n0, nx = 0;
- #define N n0
-
- #endif /* WANT_WIDE */
-diff -Nur uClibc-0.9.33.2/libc/string/cris/memcopy.h uClibc-git/libc/string/cris/memcopy.h
---- uClibc-0.9.33.2/libc/string/cris/memcopy.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/cris/memcopy.h 2014-07-25 20:36:06.209331558 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include "../generic/memcopy.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/cris/memmove.c uClibc-git/libc/string/cris/memmove.c
---- uClibc-0.9.33.2/libc/string/cris/memmove.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/cris/memmove.c 2014-07-25 20:36:06.213331580 +0200
-@@ -18,9 +18,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/dirname.c uClibc-git/libc/string/dirname.c
---- uClibc-0.9.33.2/libc/string/dirname.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/dirname.c 2014-07-25 20:36:06.213331580 +0200
-@@ -5,7 +5,8 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "_string.h"
-+#define __need_NULL
-+#include <stddef.h>
- #include <libgen.h>
-
- char *dirname(char *path)
-diff -Nur uClibc-0.9.33.2/libc/string/ffsll.c uClibc-git/libc/string/ffsll.c
---- uClibc-0.9.33.2/libc/string/ffsll.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ffsll.c 2014-07-25 20:36:06.213331580 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/string/frv/memcpy.S uClibc-git/libc/string/frv/memcpy.S
---- uClibc-0.9.33.2/libc/string/frv/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/frv/memcpy.S 2014-07-25 20:36:06.225331642 +0200
-@@ -14,8 +14,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/string/frv/memset.S uClibc-git/libc/string/frv/memset.S
---- uClibc-0.9.33.2/libc/string/frv/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/frv/memset.S 2014-07-25 20:36:06.225331642 +0200
-@@ -14,8 +14,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memchr.c uClibc-git/libc/string/generic/memchr.c
---- uClibc-0.9.33.2/libc/string/generic/memchr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memchr.c 2014-07-25 20:36:06.237331706 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memcmp.c uClibc-git/libc/string/generic/memcmp.c
---- uClibc-0.9.33.2/libc/string/generic/memcmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memcmp.c 2014-07-25 20:36:06.237331706 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "memcopy.h"
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memcopy.h uClibc-git/libc/string/generic/memcopy.h
---- uClibc-0.9.33.2/libc/string/generic/memcopy.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memcopy.h 2014-07-25 20:36:06.237331706 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The strategy of the memory functions is:
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memcpy.c uClibc-git/libc/string/generic/memcpy.c
---- uClibc-0.9.33.2/libc/string/generic/memcpy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memcpy.c 2014-07-25 20:36:06.237331706 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "memcopy.h"
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memmem.c uClibc-git/libc/string/generic/memmem.c
---- uClibc-0.9.33.2/libc/string/generic/memmem.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memmem.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stddef.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memmove.c uClibc-git/libc/string/generic/memmove.c
---- uClibc-0.9.33.2/libc/string/generic/memmove.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memmove.c 2014-07-25 20:36:06.237331706 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memrchr.c uClibc-git/libc/string/generic/memrchr.c
---- uClibc-0.9.33.2/libc/string/generic/memrchr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memrchr.c 2014-07-25 20:36:06.237331706 +0200
-@@ -18,9 +18,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/memset.c uClibc-git/libc/string/generic/memset.c
---- uClibc-0.9.33.2/libc/string/generic/memset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/memset.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "memcopy.h"
-diff -Nur uClibc-0.9.33.2/libc/string/generic/pagecopy.h uClibc-git/libc/string/generic/pagecopy.h
---- uClibc-0.9.33.2/libc/string/generic/pagecopy.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/pagecopy.h 2014-07-25 20:36:06.237331706 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file defines the macro:
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/rawmemchr.c uClibc-git/libc/string/generic/rawmemchr.c
---- uClibc-0.9.33.2/libc/string/generic/rawmemchr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/rawmemchr.c 2014-07-25 20:36:06.237331706 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strcat.c uClibc-git/libc/string/generic/strcat.c
---- uClibc-0.9.33.2/libc/string/generic/strcat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strcat.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "memcopy.h"
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strchr.c uClibc-git/libc/string/generic/strchr.c
---- uClibc-0.9.33.2/libc/string/generic/strchr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strchr.c 2014-07-25 20:36:06.237331706 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strchrnul.c uClibc-git/libc/string/generic/strchrnul.c
---- uClibc-0.9.33.2/libc/string/generic/strchrnul.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strchrnul.c 2014-07-25 20:36:06.237331706 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strcmp.c uClibc-git/libc/string/generic/strcmp.c
---- uClibc-0.9.33.2/libc/string/generic/strcmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strcmp.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strcpy.c uClibc-git/libc/string/generic/strcpy.c
---- uClibc-0.9.33.2/libc/string/generic/strcpy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strcpy.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strcspn.c uClibc-git/libc/string/generic/strcspn.c
---- uClibc-0.9.33.2/libc/string/generic/strcspn.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strcspn.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strlen.c uClibc-git/libc/string/generic/strlen.c
---- uClibc-0.9.33.2/libc/string/generic/strlen.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strlen.c 2014-07-25 20:36:06.237331706 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strncat.c uClibc-git/libc/string/generic/strncat.c
---- uClibc-0.9.33.2/libc/string/generic/strncat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strncat.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strncmp.c uClibc-git/libc/string/generic/strncmp.c
---- uClibc-0.9.33.2/libc/string/generic/strncmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strncmp.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "memcopy.h"
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strncpy.c uClibc-git/libc/string/generic/strncpy.c
---- uClibc-0.9.33.2/libc/string/generic/strncpy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strncpy.c 2014-07-25 20:36:06.237331706 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "memcopy.h"
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strnlen.c uClibc-git/libc/string/generic/strnlen.c
---- uClibc-0.9.33.2/libc/string/generic/strnlen.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strnlen.c 2014-07-25 20:36:06.241331726 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strrchr.c uClibc-git/libc/string/generic/strrchr.c
---- uClibc-0.9.33.2/libc/string/generic/strrchr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strrchr.c 2014-07-25 20:36:06.241331726 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strsep.c uClibc-git/libc/string/generic/strsep.c
---- uClibc-0.9.33.2/libc/string/generic/strsep.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strsep.c 2014-07-25 20:36:06.241331726 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strspn.c uClibc-git/libc/string/generic/strspn.c
---- uClibc-0.9.33.2/libc/string/generic/strspn.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strspn.c 2014-07-25 20:36:06.241331726 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strstr.c uClibc-git/libc/string/generic/strstr.c
---- uClibc-0.9.33.2/libc/string/generic/strstr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strstr.c 2014-07-25 20:36:06.241331726 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * My personal strstr() implementation that beats most other algorithms.
-diff -Nur uClibc-0.9.33.2/libc/string/generic/strtok_r.c uClibc-git/libc/string/generic/strtok_r.c
---- uClibc-0.9.33.2/libc/string/generic/strtok_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/generic/strtok_r.c 2014-07-25 20:36:06.241331726 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/__glibc_strerror_r.c uClibc-git/libc/string/__glibc_strerror_r.c
---- uClibc-0.9.33.2/libc/string/__glibc_strerror_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/__glibc_strerror_r.c 2014-07-25 20:36:06.133331160 +0200
-@@ -5,9 +5,13 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+/* get rid of REDIRECT */
-+#define strerror_r __hide_strerror_r
-+
- #include <features.h>
- #include <string.h>
-
-+#undef strerror_r
-
- char *__glibc_strerror_r(int errnum, char *strerrbuf, size_t buflen)
- {
-@@ -16,3 +20,6 @@
- return strerrbuf;
- }
- libc_hidden_def(__glibc_strerror_r)
-+#if !defined __USE_XOPEN2K || defined __USE_GNU
-+strong_alias(__glibc_strerror_r,strerror_r)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/bcopy.S uClibc-git/libc/string/ia64/bcopy.S
---- uClibc-0.9.33.2/libc/string/ia64/bcopy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/bcopy.S 2014-07-25 20:36:06.265331852 +0200
-@@ -1,4 +1,4 @@
--#include "sysdep.h"
-+#include <sysdep.h>
-
- #ifdef __UCLIBC_SUSV3_LEGACY__
-
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/bzero.S uClibc-git/libc/string/ia64/bzero.S
---- uClibc-0.9.33.2/libc/string/ia64/bzero.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/bzero.S 2014-07-25 20:36:06.265331852 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: dest
-
-@@ -32,7 +31,7 @@
- Since a stf.spill f0 can store 16B in one go, we use this instruction
- to get peak speed. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
-
- #ifdef __UCLIBC_SUSV3_LEGACY__
-
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/memccpy.S uClibc-git/libc/string/ia64/memccpy.S
---- uClibc-0.9.33.2/libc/string/ia64/memccpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/memccpy.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: a pointer to the next byte after char in dest or NULL
-
-@@ -31,7 +30,7 @@
- This implementation assumes that it is safe to do read ahead
- in the src block, without getting beyond its limit. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define OP_T_THRES 16
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/memchr.S uClibc-git/libc/string/ia64/memchr.S
---- uClibc-0.9.33.2/libc/string/ia64/memchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/memchr.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: the address of the first occurence of chr in str or NULL
-
-@@ -40,7 +39,7 @@
- All the loops in this function could have had the internal branch removed
- if br.ctop and br.cloop could be predicated :-(. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define saved_pr r15
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/memcmp.S uClibc-git/libc/string/ia64/memcmp.S
---- uClibc-0.9.33.2/libc/string/ia64/memcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/memcmp.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: the result of the comparison
-
-@@ -33,7 +32,7 @@
-
- and all the mux1 instructions should be replaced by plain mov's. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define OP_T_THRES 16
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/memcpy.S uClibc-git/libc/string/ia64/memcpy.S
---- uClibc-0.9.33.2/libc/string/ia64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/memcpy.S 2014-07-25 20:36:06.265331852 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: dest
-
-@@ -37,7 +36,7 @@
-
- #define USE_LFETCH
- #define USE_FLP
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define LFETCH_DIST 500
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/memmove.S uClibc-git/libc/string/ia64/memmove.S
---- uClibc-0.9.33.2/libc/string/ia64/memmove.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/memmove.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: dest
-
-@@ -33,7 +32,7 @@
- sh1 must be computed using an extra instruction: sub sh1 = 64, sh1
- or the UM.be bit should be cleared at the beginning and set at the end. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define OP_T_THRES 16
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/memset.S uClibc-git/libc/string/ia64/memset.S
---- uClibc-0.9.33.2/libc/string/ia64/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/memset.S 2014-07-25 20:36:06.265331852 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: dest
-
-@@ -33,7 +32,7 @@
- Since a stf.spill f0 can store 16B in one go, we use this instruction
- to get peak speed when value = 0. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define dest in0
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/softpipe.h uClibc-git/libc/string/ia64/softpipe.h
---- uClibc-0.9.33.2/libc/string/ia64/softpipe.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/softpipe.h 2014-07-25 20:36:06.265331852 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The latency of a memory load assumed by the assembly implementation
- of the mem and str functions. Since we don't have any clue about
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/strchr.S uClibc-git/libc/string/ia64/strchr.S
---- uClibc-0.9.33.2/libc/string/ia64/strchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/strchr.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: the address of the first occurence of chr in str or NULL
-
-@@ -30,7 +29,7 @@
- This implementation assumes little endian mode. For big endian mode,
- the instruction czx1.r should be replaced by czx1.l. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define saved_lc r18
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/strcmp.S uClibc-git/libc/string/ia64/strcmp.S
---- uClibc-0.9.33.2/libc/string/ia64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/strcmp.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: the result of the comparison
-
-@@ -27,7 +26,7 @@
- Unlike memcmp(), this function is optimized for mismatches within the
- first few characters. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define s1 in0
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/strcpy.S uClibc-git/libc/string/ia64/strcpy.S
---- uClibc-0.9.33.2/libc/string/ia64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/strcpy.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: dest
-
-@@ -31,7 +30,7 @@
- shr.u tmp = r[0], sh2 // tmp = w1 >> sh2
- */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define saved_lc r15
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/strlen.S uClibc-git/libc/string/ia64/strlen.S
---- uClibc-0.9.33.2/libc/string/ia64/strlen.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/strlen.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: the length of the input string
-
-@@ -33,7 +32,7 @@
- This implementation assumes little endian mode. For big endian mode,
- the instruction czx1.r should be replaced by czx1.l. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define saved_lc r18
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/strncmp.S uClibc-git/libc/string/ia64/strncmp.S
---- uClibc-0.9.33.2/libc/string/ia64/strncmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/strncmp.S 2014-07-25 20:36:06.265331852 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: the result of the comparison
-
-@@ -28,7 +27,7 @@
- Unlike memcmp(), this function is optimized for mismatches within the
- first few characters. */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define s1 in0
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/strncpy.S uClibc-git/libc/string/ia64/strncpy.S
---- uClibc-0.9.33.2/libc/string/ia64/strncpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/strncpy.S 2014-07-25 20:36:06.265331852 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Return: dest
-
-@@ -29,7 +28,7 @@
- In this form, it assumes little endian mode.
- */
-
--#include "sysdep.h"
-+#include <sysdep.h>
- #undef ret
-
- #define saved_lc r15
-diff -Nur uClibc-0.9.33.2/libc/string/ia64/sysdep.h uClibc-git/libc/string/ia64/sysdep.h
---- uClibc-0.9.33.2/libc/string/ia64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/ia64/sysdep.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,168 +0,0 @@
--/* Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
-- Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
-- Based on code originally written by David Mosberger-Tang
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#ifndef _LINUX_IA64_SYSDEP_H
--#define _LINUX_IA64_SYSDEP_H 1
--
--#include <features.h>
--#include <asm/unistd.h>
--
--#ifdef __ASSEMBLER__
--
--/* Macros to help writing .prologue directives in assembly code. */
--#define ASM_UNW_PRLG_RP 0x8
--#define ASM_UNW_PRLG_PFS 0x4
--#define ASM_UNW_PRLG_PSP 0x2
--#define ASM_UNW_PRLG_PR 0x1
--#define ASM_UNW_PRLG_GRSAVE(ninputs) (32+(ninputs))
--
--#ifdef __STDC__
--#define C_LABEL(name) name :
--#else
--#define C_LABEL(name) name/**/:
--#endif
--
--#define CALL_MCOUNT
--
--#define ENTRY(name) \
-- .text; \
-- .align 32; \
-- .proc C_SYMBOL_NAME(name); \
-- .global C_SYMBOL_NAME(name); \
-- C_LABEL(name) \
-- CALL_MCOUNT
--
--#define LEAF(name) \
-- .text; \
-- .align 32; \
-- .proc C_SYMBOL_NAME(name); \
-- .global name; \
-- C_LABEL(name)
--
--/* Mark the end of function SYM. */
--#undef END
--#define END(sym) .endp C_SYMBOL_NAME(sym)
--
--/* For Linux we can use the system call table in the header file
-- /usr/include/asm/unistd.h
-- of the kernel. But these symbols do not follow the SYS_* syntax
-- so we have to redefine the `SYS_ify' macro here. */
--#undef SYS_ify
--#ifdef __STDC__
--# define SYS_ify(syscall_name) __NR_##syscall_name
--#else
--# define SYS_ify(syscall_name) __NR_/**/syscall_name
--#endif
--
--/* Linux uses a negative return value to indicate syscall errors, unlike
-- most Unices, which use the condition codes' carry flag.
--
-- Since version 2.1 the return value of a system call might be negative
-- even if the call succeeded. E.g., the `lseek' system call might return
-- a large offset. Therefore we must not anymore test for < 0, but test
-- for a real error by making sure the value in %d0 is a real error
-- number. Linus said he will make sure the no syscall returns a value
-- in -1 .. -4095 as a valid result so we can savely test with -4095. */
--
--/* We don't want the label for the error handler to be visible in the symbol
-- table when we define it here. */
--#define SYSCALL_ERROR_LABEL __syscall_error
--
--#undef PSEUDO
--#define PSEUDO(name, syscall_name, args) \
-- ENTRY(name) \
-- DO_CALL (SYS_ify(syscall_name)); \
-- cmp.eq p6,p0=-1,r10; \
--(p6) br.cond.spnt.few __syscall_error;
--
--#define DO_CALL_VIA_BREAK(num) \
-- mov r15=num; \
-- break __BREAK_SYSCALL
--
--#ifdef IA64_USE_NEW_STUB
--# ifdef SHARED
--# define DO_CALL(num) \
-- .prologue; \
-- adds r2 = SYSINFO_OFFSET, r13;; \
-- ld8 r2 = [r2]; \
-- .save ar.pfs, r11; \
-- mov r11 = ar.pfs;; \
-- .body; \
-- mov r15 = num; \
-- mov b7 = r2; \
-- br.call.sptk.many b6 = b7;; \
-- .restore sp; \
-- mov ar.pfs = r11; \
-- .prologue; \
-- .body
--# else /* !SHARED */
--# define DO_CALL(num) \
-- .prologue; \
-- mov r15 = num; \
-- movl r2 = _dl_sysinfo;; \
-- ld8 r2 = [r2]; \
-- .save ar.pfs, r11; \
-- mov r11 = ar.pfs;; \
-- .body; \
-- mov b7 = r2; \
-- br.call.sptk.many b6 = b7;; \
-- .restore sp; \
-- mov ar.pfs = r11; \
-- .prologue; \
-- .body
--# endif
--#else
--# define DO_CALL(num) DO_CALL_VIA_BREAK(num)
--#endif
--
--#undef PSEUDO_END
--#define PSEUDO_END(name) .endp C_SYMBOL_NAME(name);
--
--#undef PSEUDO_NOERRNO
--#define PSEUDO_NOERRNO(name, syscall_name, args) \
-- ENTRY(name) \
-- DO_CALL (SYS_ify(syscall_name));
--
--#undef PSEUDO_END_NOERRNO
--#define PSEUDO_END_NOERRNO(name) .endp C_SYMBOL_NAME(name);
--
--#undef PSEUDO_ERRVAL
--#define PSEUDO_ERRVAL(name, syscall_name, args) \
-- ENTRY(name) \
-- DO_CALL (SYS_ify(syscall_name)); \
-- cmp.eq p6,p0=-1,r10; \
--(p6) mov r10=r8;
--
--
--#undef PSEUDO_END_ERRVAL
--#define PSEUDO_END_ERRVAL(name) .endp C_SYMBOL_NAME(name);
--
--#undef END
--#define END(name) \
-- .size C_SYMBOL_NAME(name), . - C_SYMBOL_NAME(name) ; \
-- .endp C_SYMBOL_NAME(name)
--
--#define ret br.ret.sptk.few b0
--#define ret_NOERRNO ret
--#define ret_ERRVAL ret
--
--#endif /* not __ASSEMBLER__ */
--
--#endif /* linux/ia64/sysdep.h */
-diff -Nur uClibc-0.9.33.2/libc/string/memmove.c uClibc-git/libc/string/memmove.c
---- uClibc-0.9.33.2/libc/string/memmove.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/memmove.c 2014-07-25 20:36:06.265331852 +0200
-@@ -34,5 +34,5 @@
- }
-
- #ifndef WANT_WIDE
--libc_hidden_def(Wmemmove)
-+libc_hidden_def(memmove)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/string/metag/Makefile uClibc-git/libc/string/metag/Makefile
---- uClibc-0.9.33.2/libc/string/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/Makefile 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,13 @@
-+# Makefile for uClibc
-+#
-+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+top_srcdir:=../../../
-+top_builddir:=../../../
-+all: objs
-+include $(top_builddir)Rules.mak
-+include ../Makefile.in
-+include $(top_srcdir)Makerules
-diff -Nur uClibc-0.9.33.2/libc/string/metag/memchr.S uClibc-git/libc/string/metag/memchr.S
---- uClibc-0.9.33.2/libc/string/metag/memchr.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/memchr.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,156 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+!
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+ .text
-+ .global _memchr
-+ .type _memchr,function
-+! D0Ar6 src
-+! D0Ar2 c
-+! D1Ar3 n
-+_memchr:
-+ CMP D1Ar3, #0
-+ BEQ $Lexit_fail
-+ !! convert c to unsigned char
-+ AND D0Ar2,D0Ar2,#0xff
-+ MOV D0Ar6, D1Ar1
-+ MOV D1Ar5, D0Ar6
-+ !! test alignment
-+ AND D1Ar5, D1Ar5, #7
-+ CMP D1Ar5, #0
-+ BNZ $Lunaligned_loop
-+ !! length must be greater than or equal to 8 for aligned loop
-+ CMP D1Ar3, #8
-+ BGE $Laligned_setup
-+$Lunaligned_loop:
-+ !! get 1 char from s
-+ GETB D0Re0, [D0Ar6++]
-+ !! increase alignment counter
-+ ADD D1Ar5, D1Ar5, #1
-+ !! decrement n
-+ SUB D1Ar3, D1Ar3, #1
-+ !! exit if we have a match
-+ CMP D0Re0, D0Ar2
-+ BZ $Lexit_success1
-+ !! exit if we have hit the end of the string
-+ CMP D1Ar3, #0
-+ BZ $Lexit_fail
-+ !! fall through if the buffer is aligned now
-+ CMP D1Ar5, #8
-+ BNE $Lunaligned_loop
-+ !! fall through if there is more than 8 bytes left
-+ CMP D1Ar3, #8
-+ BLT $Lunaligned_loop
-+$Laligned_setup:
-+ !! fill the c into 4 bytes
-+ MOV D0Ar4, D0Ar2
-+ LSL D0Ar4, D0Ar4, #8
-+ ADD D0Ar4, D0Ar4, D0Ar2
-+ LSL D0Ar4, D0Ar4, #8
-+ ADD D0Ar4, D0Ar4, D0Ar2
-+ LSL D0Ar4, D0Ar4, #8
-+ ADD D0Ar4, D0Ar4, D0Ar2
-+ !! divide n by 8
-+ MOV D1Ar5, D1Ar3
-+ LSR D1Ar5, D1Ar5, #3
-+$Laligned_loop:
-+ !! get 8 chars from s
-+ GETL D0Re0, D1Re0, [D0Ar6++]
-+ !! decrement loop counter
-+ SUB D1Ar5, D1Ar5, #1
-+ !! test first 4 chars
-+ XOR D0Re0, D0Re0, D0Ar4
-+ !! test second 4 chars
-+ MOV D0Ar2, D1Re0
-+ XOR D1Re0, D0Ar2, D0Ar4
-+ !! check for matches in the first 4 chars
-+ MOV D0Ar2, D0Re0
-+ ADDT D0Re0, D0Re0, #HI(0xfefefeff)
-+ ADD D0Re0, D0Re0, #LO(0xfefefeff)
-+ XOR D0Ar2, D0Ar2, #-1
-+ AND D0Re0, D0Re0, D0Ar2
-+ ANDMT D0Re0, D0Re0, #HI(0x80808080)
-+ ANDMB D0Re0, D0Re0, #LO(0x80808080)
-+ CMP D0Re0, #0
-+ BNZ $Lmatch_word1
-+ !! check for matches in the second 4 chars
-+ MOV D1Ar1, D1Re0
-+ ADDT D1Re0, D1Re0, #HI(0xfefefeff)
-+ ADD D1Re0, D1Re0, #LO(0xfefefeff)
-+ XOR D1Ar1, D1Ar1, #-1
-+ AND D1Re0, D1Re0, D1Ar1
-+ ANDMT D1Re0, D1Re0, #HI(0x80808080)
-+ ANDMB D1Re0, D1Re0, #LO(0x80808080)
-+ CMP D1Re0, #0
-+ BNZ $Lmatch_word2
-+ !! check if we have reached the end of the buffer
-+ CMP D1Ar5, #0
-+ BNE $Laligned_loop
-+ !! exit if there are no chars left to check
-+ AND D1Ar3, D1Ar3, #7
-+ CMP D1Ar3, #0
-+ BZ $Lexit_fail
-+ !! recover c
-+ AND D0Ar2, D0Ar4, #0xff
-+$Lbyte_loop:
-+ !! get 1 char from s
-+ GETB D0Re0, [D0Ar6++]
-+ !! decrement n
-+ SUB D1Ar3, D1Ar3, #1
-+ !! exit if we have a match
-+ CMP D0Re0, D0Ar2
-+ BZ $Lexit_success1
-+ !! fall through if we have run out of chars
-+ CMP D1Ar3, #0
-+ BNE $Lbyte_loop
-+
-+$Lexit_fail:
-+ MOV D0Re0, #0
-+ B $Lend
-+
-+$Lmatch_word1:
-+ !! move the match word into D1Re0
-+ MOV D1Re0, D0Re0
-+ !! roll back the buffer pointer by 4 chars
-+ SUB D0Ar6, D0Ar6, #4
-+$Lmatch_word2:
-+ !! roll back the buffer pointer by 4 chars
-+ SUB D0Ar6, D0Ar6, #4
-+ !! exit if lowest byte is 0
-+ MOV D1Ar1, D1Re0
-+ AND D1Ar1, D1Ar1, #0xff
-+ CMP D1Ar1, #0
-+ BNE $Lexit_success2
-+ !! advance buffer pointer to the next char
-+ ADD D0Ar6, D0Ar6, #1
-+ !! shift in the next lowest byte
-+ LSR D1Re0, D1Re0, #8
-+ !! exit if lowest byte is 0
-+ MOV D1Ar1, D1Re0
-+ AND D1Ar1, D1Ar1, #0xff
-+ CMP D1Ar1, #0
-+ BNE $Lexit_success2
-+ !! advance buffer pointer to the next char
-+ ADD D0Ar6, D0Ar6, #1
-+ !! shift in the next lowest byte
-+ LSR D1Re0, D1Re0, #8
-+ !! exit if lowest byte is 0
-+ MOV D1Ar1, D1Re0
-+ AND D1Ar1, D1Ar1, #0xff
-+ CMP D1Ar1, #0
-+ BNE $Lexit_success2
-+ !! the match must be in the last byte, exit
-+ ADD D0Ar6, D0Ar6, #1
-+ B $Lexit_success2
-+
-+$Lexit_success1:
-+ SUB D0Ar6, D0Ar6, #1
-+$Lexit_success2:
-+ !! return the buffer pointer
-+ MOV D0Re0, D0Ar6
-+$Lend:
-+ MOV PC, D1RtP
-+
-+ .size _memchr,.-_memchr
-+
-+libc_hidden_def(memchr)
-diff -Nur uClibc-0.9.33.2/libc/string/metag/memcpy.S uClibc-git/libc/string/metag/memcpy.S
---- uClibc-0.9.33.2/libc/string/metag/memcpy.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/memcpy.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,189 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+ .text
-+ .global _memcpy
-+ .type _memcpy,function
-+! D1Ar1 dst
-+! D0Ar2 src
-+! D1Ar3 cnt
-+! D0Re0 dst
-+_memcpy:
-+ CMP D1Ar3, #16
-+ MOV A1.2, D0Ar2 ! source pointer
-+ MOV A0.2, D1Ar1 ! destination pointer
-+ MOV A0.3, D1Ar1 ! for return value
-+! If there are less than 16 bytes to copy use the byte copy loop
-+ BGE $Llong_copy
-+
-+$Lbyte_copy:
-+! Simply copy a byte at a time
-+ SUBS TXRPT, D1Ar3, #1
-+ BLT $Lend
-+$Lloop_byte:
-+ GETB D1Re0, [A1.2++]
-+ SETB [A0.2++], D1Re0
-+ BR $Lloop_byte
-+
-+$Lend:
-+! Finally set return value and return
-+ MOV D0Re0, A0.3
-+ MOV PC, D1RtP
-+
-+$Llong_copy:
-+ ANDS D1Ar5, D1Ar1, #7 ! test destination alignment
-+ BZ $Laligned_dst
-+
-+! The destination address is not 8 byte aligned. We will copy bytes from
-+! the source to the destination until the remaining data has an 8 byte
-+! destination address alignment (i.e we should never copy more than 7
-+! bytes here).
-+$Lalign_dst:
-+ GETB D0Re0, [A1.2++]
-+ ADD D1Ar5, D1Ar5, #1 ! dest is aligned when D1Ar5 reaches #8
-+ SUB D1Ar3, D1Ar3, #1 ! decrement count of remaining bytes
-+ SETB [A0.2++], D0Re0
-+ CMP D1Ar5, #8
-+ BNE $Lalign_dst
-+
-+! We have at least (16 - 7) = 9 bytes to copy - calculate the number of 8 byte
-+! blocks, then jump to the unaligned copy loop or fall through to the aligned
-+! copy loop as appropriate.
-+$Laligned_dst:
-+ MOV D0Ar4, A1.2
-+ LSR D1Ar5, D1Ar3, #3 ! D1Ar5 = number of 8 byte blocks
-+ ANDS D0Ar4, D0Ar4, #7 ! test source alignment
-+ BNZ $Lunaligned_copy ! if unaligned, use unaligned copy loop
-+
-+! Both source and destination are 8 byte aligned - the easy case.
-+$Laligned_copy:
-+ LSRS D1Ar5, D1Ar3, #5 ! D1Ar5 = number of 32 byte blocks
-+ BZ $Lbyte_copy
-+ SUB TXRPT, D1Ar5, #1
-+
-+$Laligned_32:
-+ GETL D0Re0, D1Re0, [A1.2++]
-+ GETL D0Ar6, D1Ar5, [A1.2++]
-+ SETL [A0.2++], D0Re0, D1Re0
-+ SETL [A0.2++], D0Ar6, D1Ar5
-+ GETL D0Re0, D1Re0, [A1.2++]
-+ GETL D0Ar6, D1Ar5, [A1.2++]
-+ SETL [A0.2++], D0Re0, D1Re0
-+ SETL [A0.2++], D0Ar6, D1Ar5
-+ BR $Laligned_32
-+
-+! If there are any remaining bytes use the byte copy loop, otherwise we are done
-+ ANDS D1Ar3, D1Ar3, #0x1f
-+ BNZ $Lbyte_copy
-+ B $Lend
-+
-+! The destination is 8 byte aligned but the source is not, and there are 8
-+! or more bytes to be copied.
-+$Lunaligned_copy:
-+! Adjust the source pointer (A1.2) to the 8 byte boundary before its
-+! current value
-+ MOV D0Ar4, A1.2
-+ MOV D0Ar6, A1.2
-+ ANDMB D0Ar4, D0Ar4, #0xfff8
-+ MOV A1.2, D0Ar4
-+! Save the number of bytes of mis-alignment in D0Ar4 for use later
-+ SUBS D0Ar6, D0Ar6, D0Ar4
-+ MOV D0Ar4, D0Ar6
-+! if there is no mis-alignment after all, use the aligned copy loop
-+ BZ $Laligned_copy
-+
-+! prefetch 8 bytes
-+ GETL D0Re0, D1Re0, [A1.2]
-+
-+ SUB TXRPT, D1Ar5, #1
-+
-+! There are 3 mis-alignment cases to be considered. Less than 4 bytes, exactly
-+! 4 bytes, and more than 4 bytes.
-+ CMP D0Ar6, #4
-+ BLT $Lunaligned_1_2_3 ! use 1-3 byte mis-alignment loop
-+ BZ $Lunaligned_4 ! use 4 byte mis-alignment loop
-+
-+! The mis-alignment is more than 4 bytes
-+$Lunaligned_5_6_7:
-+ SUB D0Ar6, D0Ar6, #4
-+! Calculate the bit offsets required for the shift operations necesssary
-+! to align the data.
-+! D0Ar6 = bit offset, D1Ar5 = (32 - bit offset)
-+ MULW D0Ar6, D0Ar6, #8
-+ MOV D1Ar5, #32
-+ SUB D1Ar5, D1Ar5, D0Ar6
-+! Move data 4 bytes before we enter the main loop
-+ MOV D0Re0, D1Re0
-+
-+$Lloop_5_6_7:
-+ GETL D0Ar2, D1Ar1, [++A1.2]
-+! form 64-bit data in D0Re0, D1Re0
-+ LSR D0Re0, D0Re0, D0Ar6
-+ MOV D1Re0, D0Ar2
-+ LSL D1Re0, D1Re0, D1Ar5
-+ ADD D0Re0, D0Re0, D1Re0
-+
-+ LSR D0Ar2, D0Ar2, D0Ar6
-+ LSL D1Re0, D1Ar1, D1Ar5
-+ ADD D1Re0, D1Re0, D0Ar2
-+
-+ SETL [A0.2++], D0Re0, D1Re0
-+ MOV D0Re0, D1Ar1
-+ BR $Lloop_5_6_7
-+
-+ B $Lunaligned_end
-+
-+$Lunaligned_1_2_3:
-+! Calculate the bit offsets required for the shift operations necesssary
-+! to align the data.
-+! D0Ar6 = bit offset, D1Ar5 = (32 - bit offset)
-+ MULW D0Ar6, D0Ar6, #8
-+ MOV D1Ar5, #32
-+ SUB D1Ar5, D1Ar5, D0Ar6
-+
-+$Lloop_1_2_3:
-+! form 64-bit data in D0Re0,D1Re0
-+ LSR D0Re0, D0Re0, D0Ar6
-+ LSL D1Ar1, D1Re0, D1Ar5
-+ ADD D0Re0, D0Re0, D1Ar1
-+ MOV D0Ar2, D1Re0
-+ LSR D0FrT, D0Ar2, D0Ar6
-+ GETL D0Ar2, D1Ar1, [++A1.2]
-+
-+ MOV D1Re0, D0Ar2
-+ LSL D1Re0, D1Re0, D1Ar5
-+ ADD D1Re0, D1Re0, D0FrT
-+
-+ SETL [A0.2++], D0Re0, D1Re0
-+ MOV D0Re0, D0Ar2
-+ MOV D1Re0, D1Ar1
-+ BR $Lloop_1_2_3
-+
-+ B $Lunaligned_end
-+
-+! The 4 byte mis-alignment case - this does not require any shifting, just a
-+! shuffling of registers.
-+$Lunaligned_4:
-+ MOV D0Re0, D1Re0
-+$Lloop_4:
-+ GETL D0Ar2, D1Ar1, [++A1.2]
-+ MOV D1Re0, D0Ar2
-+ SETL [A0.2++], D0Re0, D1Re0
-+ MOV D0Re0, D1Ar1
-+ BR $Lloop_4
-+
-+$Lunaligned_end:
-+! If there are no remaining bytes to copy, we are done.
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lend
-+! Re-adjust the source pointer (A1.2) back to the actual (unaligned) byte
-+! address of the remaining bytes, and fall through to the byte copy loop.
-+ MOV D0Ar6, A1.2
-+ ADD D1Ar5, D0Ar4, D0Ar6
-+ MOV A1.2, D1Ar5
-+ B $Lbyte_copy
-+
-+ .size _memcpy,.-_memcpy
-+
-+libc_hidden_def(memcpy)
-diff -Nur uClibc-0.9.33.2/libc/string/metag/memmove.S uClibc-git/libc/string/metag/memmove.S
---- uClibc-0.9.33.2/libc/string/metag/memmove.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/memmove.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,350 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+ .text
-+ .global _memmove
-+ .type _memmove,function
-+! D1Ar1 dst
-+! D0Ar2 src
-+! D1Ar3 cnt
-+! D0Re0 dst
-+_memmove:
-+ CMP D1Ar3, #0
-+ MOV D0Re0, D1Ar1
-+ BZ $LEND2
-+ MSETL [A0StP], D0.5, D0.6, D0.7
-+ MOV D1Ar5, D0Ar2
-+ CMP D1Ar1, D1Ar5
-+ BLT $Lforwards_copy
-+ SUB D0Ar4, D1Ar1, D1Ar3
-+ ADD D0Ar4, D0Ar4, #1
-+ CMP D0Ar2, D0Ar4
-+ BLT $Lforwards_copy
-+ ! should copy backwards
-+ MOV D1Re0, D0Ar2
-+ ! adjust pointer to the end of mem
-+ ADD D0Ar2, D1Re0, D1Ar3
-+ ADD D1Ar1, D1Ar1, D1Ar3
-+
-+ MOV A1.2, D0Ar2
-+ MOV A0.2, D1Ar1
-+ CMP D1Ar3, #8
-+ BLT $Lbbyte_loop
-+
-+ MOV D0Ar4, D0Ar2
-+ MOV D1Ar5, D1Ar1
-+
-+ ! test 8 byte alignment
-+ ANDS D1Ar5, D1Ar5, #7
-+ BNE $Lbdest_unaligned
-+
-+ ANDS D0Ar4, D0Ar4, #7
-+ BNE $Lbsrc_unaligned
-+
-+ LSR D1Ar5, D1Ar3, #3
-+
-+$Lbaligned_loop:
-+ GETL D0Re0, D1Re0, [--A1.2]
-+ SETL [--A0.2], D0Re0, D1Re0
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lbaligned_loop
-+
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lbbyte_loop_exit
-+$Lbbyte_loop:
-+ GETB D1Re0, [--A1.2]
-+ SETB [--A0.2], D1Re0
-+ SUBS D1Ar3, D1Ar3, #1
-+ BNE $Lbbyte_loop
-+$Lbbyte_loop_exit:
-+ MOV D0Re0, A0.2
-+$LEND:
-+ SUB A0.2, A0StP, #24
-+ MGETL D0.5, D0.6, D0.7, [A0.2]
-+ SUB A0StP, A0StP, #24
-+$LEND2:
-+ MOV PC, D1RtP
-+
-+$Lbdest_unaligned:
-+ GETB D0Re0, [--A1.2]
-+ SETB [--A0.2], D0Re0
-+ SUBS D1Ar5, D1Ar5, #1
-+ SUB D1Ar3, D1Ar3, #1
-+ BNE $Lbdest_unaligned
-+ CMP D1Ar3, #8
-+ BLT $Lbbyte_loop
-+$Lbsrc_unaligned:
-+ LSR D1Ar5, D1Ar3, #3
-+ ! adjust A1.2
-+ MOV D0Ar4, A1.2
-+ ! save original address
-+ MOV D0Ar6, A1.2
-+
-+ ADD D0Ar4, D0Ar4, #7
-+ ANDMB D0Ar4, D0Ar4, #0xfff8
-+ ! new address is the 8-byte aligned one above the original
-+ MOV A1.2, D0Ar4
-+
-+ ! A0.2 dst 64-bit is aligned
-+ ! measure the gap size
-+ SUB D0Ar6, D0Ar4, D0Ar6
-+ MOVS D0Ar4, D0Ar6
-+ ! keep this information for the later adjustment
-+ ! both aligned
-+ BZ $Lbaligned_loop
-+
-+ ! prefetch
-+ GETL D0Re0, D1Re0, [--A1.2]
-+
-+ CMP D0Ar6, #4
-+ BLT $Lbunaligned_1_2_3
-+ ! 32-bit aligned
-+ BZ $Lbaligned_4
-+
-+ SUB D0Ar6, D0Ar6, #4
-+ ! D1.6 stores the gap size in bits
-+ MULW D1.6, D0Ar6, #8
-+ MOV D0.6, #32
-+ ! D0.6 stores the complement of the gap size
-+ SUB D0.6, D0.6, D1.6
-+
-+$Lbunaligned_5_6_7:
-+ GETL D0.7, D1.7, [--A1.2]
-+ ! form 64-bit data in D0Re0, D1Re0
-+ MOV D1Re0, D0Re0
-+ ! D1Re0 << gap-size
-+ LSL D1Re0, D1Re0, D1.6
-+ MOV D0Re0, D1.7
-+ ! D0Re0 >> complement
-+ LSR D0Re0, D0Re0, D0.6
-+ MOV D1.5, D0Re0
-+ ! combine the both
-+ ADD D1Re0, D1Re0, D1.5
-+
-+ MOV D1.5, D1.7
-+ LSL D1.5, D1.5, D1.6
-+ MOV D0Re0, D0.7
-+ LSR D0Re0, D0Re0, D0.6
-+ MOV D0.5, D1.5
-+ ADD D0Re0, D0Re0, D0.5
-+
-+ SETL [--A0.2], D0Re0, D1Re0
-+ MOV D0Re0, D0.7
-+ MOV D1Re0, D1.7
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lbunaligned_5_6_7
-+
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lbbyte_loop_exit
-+ ! Adjust A1.2
-+ ! A1.2 <- A1.2 +8 - gapsize
-+ ADD A1.2, A1.2, #8
-+ SUB A1.2, A1.2, D0Ar4
-+ B $Lbbyte_loop
-+
-+$Lbunaligned_1_2_3:
-+ MULW D1.6, D0Ar6, #8
-+ MOV D0.6, #32
-+ SUB D0.6, D0.6, D1.6
-+
-+$Lbunaligned_1_2_3_loop:
-+ GETL D0.7, D1.7, [--A1.2]
-+ ! form 64-bit data in D0Re0, D1Re0
-+ LSL D1Re0, D1Re0, D1.6
-+ ! save D0Re0 for later use
-+ MOV D0.5, D0Re0
-+ LSR D0Re0, D0Re0, D0.6
-+ MOV D1.5, D0Re0
-+ ADD D1Re0, D1Re0, D1.5
-+
-+ ! orignal data in D0Re0
-+ MOV D1.5, D0.5
-+ LSL D1.5, D1.5, D1.6
-+ MOV D0Re0, D1.7
-+ LSR D0Re0, D0Re0, D0.6
-+ MOV D0.5, D1.5
-+ ADD D0Re0, D0Re0, D0.5
-+
-+ SETL [--A0.2], D0Re0, D1Re0
-+ MOV D0Re0, D0.7
-+ MOV D1Re0, D1.7
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lbunaligned_1_2_3_loop
-+
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lbbyte_loop_exit
-+ ! Adjust A1.2
-+ ADD A1.2, A1.2, #8
-+ SUB A1.2, A1.2, D0Ar4
-+ B $Lbbyte_loop
-+
-+$Lbaligned_4:
-+ GETL D0.7, D1.7, [--A1.2]
-+ MOV D1Re0, D0Re0
-+ MOV D0Re0, D1.7
-+ SETL [--A0.2], D0Re0, D1Re0
-+ MOV D0Re0, D0.7
-+ MOV D1Re0, D1.7
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lbaligned_4
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lbbyte_loop_exit
-+ ! Adjust A1.2
-+ ADD A1.2, A1.2, #8
-+ SUB A1.2, A1.2, D0Ar4
-+ B $Lbbyte_loop
-+
-+$Lforwards_copy:
-+ MOV A1.2, D0Ar2
-+ MOV A0.2, D1Ar1
-+ CMP D1Ar3, #8
-+ BLT $Lfbyte_loop
-+
-+ MOV D0Ar4, D0Ar2
-+ MOV D1Ar5, D1Ar1
-+
-+ ANDS D1Ar5, D1Ar5, #7
-+ BNE $Lfdest_unaligned
-+
-+ ANDS D0Ar4, D0Ar4, #7
-+ BNE $Lfsrc_unaligned
-+
-+ LSR D1Ar5, D1Ar3, #3
-+
-+$Lfaligned_loop:
-+ GETL D0Re0, D1Re0, [A1.2++]
-+ SUBS D1Ar5, D1Ar5, #1
-+ SETL [A0.2++], D0Re0, D1Re0
-+ BNE $Lfaligned_loop
-+
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lfbyte_loop_exit
-+$Lfbyte_loop:
-+ GETB D1Re0, [A1.2++]
-+ SETB [A0.2++], D1Re0
-+ SUBS D1Ar3, D1Ar3, #1
-+ BNE $Lfbyte_loop
-+$Lfbyte_loop_exit:
-+ MOV D0Re0, D1Ar1
-+ B $LEND
-+
-+$Lfdest_unaligned:
-+ GETB D0Re0, [A1.2++]
-+ ADD D1Ar5, D1Ar5, #1
-+ SUB D1Ar3, D1Ar3, #1
-+ SETB [A0.2++], D0Re0
-+ CMP D1Ar5, #8
-+ BNE $Lfdest_unaligned
-+ CMP D1Ar3, #8
-+ BLT $Lfbyte_loop
-+$Lfsrc_unaligned:
-+ ! adjust A1.2
-+ LSR D1Ar5, D1Ar3, #3
-+
-+ MOV D0Ar4, A1.2
-+ MOV D0Ar6, A1.2
-+ ANDMB D0Ar4, D0Ar4, #0xfff8
-+ MOV A1.2, D0Ar4
-+
-+ ! A0.2 dst 64-bit is aligned
-+ SUB D0Ar6, D0Ar6, D0Ar4
-+ ! keep the information for the later adjustment
-+ MOVS D0Ar4, D0Ar6
-+
-+ ! both aligned
-+ BZ $Lfaligned_loop
-+
-+ ! prefetch
-+ GETL D0Re0, D1Re0, [A1.2]
-+
-+ CMP D0Ar6, #4
-+ BLT $Lfunaligned_1_2_3
-+ BZ $Lfaligned_4
-+
-+ SUB D0Ar6, D0Ar6, #4
-+ MULW D0.6, D0Ar6, #8
-+ MOV D1.6, #32
-+ SUB D1.6, D1.6, D0.6
-+
-+$Lfunaligned_5_6_7:
-+ GETL D0.7, D1.7, [++A1.2]
-+ ! form 64-bit data in D0Re0, D1Re0
-+ MOV D0Re0, D1Re0
-+ LSR D0Re0, D0Re0, D0.6
-+ MOV D1Re0, D0.7
-+ LSL D1Re0, D1Re0, D1.6
-+ MOV D0.5, D1Re0
-+ ADD D0Re0, D0Re0, D0.5
-+
-+ MOV D0.5, D0.7
-+ LSR D0.5, D0.5, D0.6
-+ MOV D1Re0, D1.7
-+ LSL D1Re0, D1Re0, D1.6
-+ MOV D1.5, D0.5
-+ ADD D1Re0, D1Re0, D1.5
-+
-+ SETL [A0.2++], D0Re0, D1Re0
-+ MOV D0Re0, D0.7
-+ MOV D1Re0, D1.7
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lfunaligned_5_6_7
-+
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lfbyte_loop_exit
-+ ! Adjust A1.2
-+ ADD A1.2, A1.2, D0Ar4
-+ B $Lfbyte_loop
-+
-+$Lfunaligned_1_2_3:
-+ MULW D0.6, D0Ar6, #8
-+ MOV D1.6, #32
-+ SUB D1.6, D1.6, D0.6
-+
-+$Lfunaligned_1_2_3_loop:
-+ GETL D0.7, D1.7, [++A1.2]
-+ ! form 64-bit data in D0Re0, D1Re0
-+ LSR D0Re0, D0Re0, D0.6
-+ MOV D1.5, D1Re0
-+ LSL D1Re0, D1Re0, D1.6
-+ MOV D0.5, D1Re0
-+ ADD D0Re0, D0Re0, D0.5
-+
-+ MOV D0.5, D1.5
-+ LSR D0.5, D0.5, D0.6
-+ MOV D1Re0, D0.7
-+ LSL D1Re0, D1Re0, D1.6
-+ MOV D1.5, D0.5
-+ ADD D1Re0, D1Re0, D1.5
-+
-+ SETL [A0.2++], D0Re0, D1Re0
-+ MOV D0Re0, D0.7
-+ MOV D1Re0, D1.7
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lfunaligned_1_2_3_loop
-+
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lfbyte_loop_exit
-+ ! Adjust A1.2
-+ ADD A1.2, A1.2, D0Ar4
-+ B $Lfbyte_loop
-+
-+$Lfaligned_4:
-+ GETL D0.7, D1.7, [++A1.2]
-+ MOV D0Re0, D1Re0
-+ MOV D1Re0, D0.7
-+ SETL [A0.2++], D0Re0, D1Re0
-+ MOV D0Re0, D0.7
-+ MOV D1Re0, D1.7
-+ SUBS D1Ar5, D1Ar5, #1
-+ BNE $Lfaligned_4
-+ ANDS D1Ar3, D1Ar3, #7
-+ BZ $Lfbyte_loop_exit
-+ ! Adjust A1.2
-+ ADD A1.2, A1.2, D0Ar4
-+ B $Lfbyte_loop
-+
-+ .size _memmove,.-_memmove
-+
-+libc_hidden_def(memmove)
-diff -Nur uClibc-0.9.33.2/libc/string/metag/memset.S uClibc-git/libc/string/metag/memset.S
---- uClibc-0.9.33.2/libc/string/metag/memset.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/memset.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,90 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+ .text
-+ .global _memset
-+ .type _memset,function
-+! D1Ar1 dst
-+! D0Ar2 c
-+! D1Ar3 cnt
-+! D0Re0 dst
-+_memset:
-+ AND D0Ar2,D0Ar2,#0xFF ! Ensure a byte input value
-+ MULW D0Ar2,D0Ar2,#0x0101 ! Duplicate byte value into 0-15
-+ ANDS D0Ar4,D1Ar1,#7 ! Extract bottom LSBs of dst
-+ LSL D0Re0,D0Ar2,#16 ! Duplicate byte value into 16-31
-+ ADD A0.2,D0Ar2,D0Re0 ! Duplicate byte value into 4 (A0.2)
-+ MOV D0Re0,D1Ar1 ! Return dst
-+ BZ $LLongStub ! if start address is aligned
-+ ! start address is not aligned on an 8 byte boundary, so we
-+ ! need the number of bytes up to the next 8 byte address
-+ ! boundary, or the length of the string if less than 8, in D1Ar5
-+ MOV D0Ar2,#8 ! Need 8 - N in D1Ar5 ...
-+ SUB D1Ar5,D0Ar2,D0Ar4 ! ... subtract N
-+ CMP D1Ar3,D1Ar5
-+ MOVMI D1Ar5,D1Ar3
-+ B $LByteStub ! dst is mis-aligned, do $LByteStub
-+
-+!
-+! Preamble to LongLoop which generates 4*8 bytes per interation (5 cycles)
-+!
-+$LLongStub:
-+ LSRS D0Ar2,D1Ar3,#5
-+ AND D1Ar3,D1Ar3,#0x1F
-+ MOV A1.2,A0.2
-+ BEQ $LLongishStub
-+ SUB TXRPT,D0Ar2,#1
-+ CMP D1Ar3,#0
-+$LLongLoop:
-+ SETL [D1Ar1++],A0.2,A1.2
-+ SETL [D1Ar1++],A0.2,A1.2
-+ SETL [D1Ar1++],A0.2,A1.2
-+ SETL [D1Ar1++],A0.2,A1.2
-+ BR $LLongLoop
-+ BZ $Lexit
-+!
-+! Preamble to LongishLoop which generates 1*8 bytes per interation (2 cycles)
-+!
-+$LLongishStub:
-+ LSRS D0Ar2,D1Ar3,#3
-+ AND D1Ar3,D1Ar3,#0x7
-+ MOV D1Ar5,D1Ar3
-+ BEQ $LByteStub
-+ SUB TXRPT,D0Ar2,#1
-+ CMP D1Ar3,#0
-+$LLongishLoop:
-+ SETL [D1Ar1++],A0.2,A1.2
-+ BR $LLongishLoop
-+ BZ $Lexit
-+!
-+! This does a byte structured burst of up to 7 bytes
-+!
-+! D1Ar1 should point to the location required
-+! D1Ar3 should be the remaining total byte count
-+! D1Ar5 should be burst size (<= D1Ar3)
-+!
-+$LByteStub:
-+ SUBS D1Ar3,D1Ar3,D1Ar5 ! Reduce count
-+ ADD D1Ar1,D1Ar1,D1Ar5 ! Advance pointer to end of area
-+ MULW D1Ar5,D1Ar5,#4 ! Scale to (1*4), (2*4), (3*4)
-+ SUB D1Ar5,D1Ar5,#(8*4) ! Rebase to -(7*4), -(6*4), -(5*4), ...
-+ MOV A1.2,D1Ar5
-+ SUB PC,CPC1,A1.2 ! Jump into table below
-+ SETB [D1Ar1+#(-7)],A0.2
-+ SETB [D1Ar1+#(-6)],A0.2
-+ SETB [D1Ar1+#(-5)],A0.2
-+ SETB [D1Ar1+#(-4)],A0.2
-+ SETB [D1Ar1+#(-3)],A0.2
-+ SETB [D1Ar1+#(-2)],A0.2
-+ SETB [D1Ar1+#(-1)],A0.2
-+!
-+! Return if all data has been output, otherwise do $LLongStub
-+!
-+ BNZ $LLongStub
-+$Lexit:
-+ MOV PC,D1RtP
-+ .size _memset,.-_memset
-+
-+libc_hidden_def(memset)
-diff -Nur uClibc-0.9.33.2/libc/string/metag/strchr.S uClibc-git/libc/string/metag/strchr.S
---- uClibc-0.9.33.2/libc/string/metag/strchr.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/strchr.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,167 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+#include <features.h>
-+
-+ .text
-+ .global _strchr
-+ .type _strchr, function
-+! D1Ar1 src
-+! D0Ar2 c
-+_strchr:
-+ AND D0Ar2,D0Ar2,#0xff ! Drop all but 8 bits of c
-+ MOV D1Ar5, D1Ar1 ! Copy src to D1Ar5
-+ AND D1Ar5, D1Ar5, #7 ! Check 64 bit alignment
-+ CMP D1Ar5, #0
-+ BZ $Laligned64bit ! Jump to 64 bit aligned strchr
-+$Lalign64bit:
-+ GETB D0Re0, [D1Ar1++] ! Get the next character
-+ ADD D1Ar5, D1Ar5, #1 ! Increment alignment counter
-+ CMP D0Re0, D0Ar2 ! Is the char c
-+ BZ $Lcharatprevious ! If so exit returning position
-+ CMP D0Re0, #0 ! End of string?
-+ BZ $Lnotfound ! If so exit
-+ CMP D1Ar5, #8 ! Are we aligned 64bit yet?
-+ BNZ $Lalign64bit ! If not keep aligning
-+$Laligned64bit: ! src is 64bit aligned
-+ MOV D0Ar4, D0Ar2 ! put c into D0Ar4
-+ LSL D0Ar4, D0Ar4, #8 ! Shift it up
-+ ADD D0Ar4, D0Ar4, D0Ar2 ! another c
-+ LSL D0Ar4, D0Ar4, #8 ! shift
-+ ADD D0Ar4, D0Ar4, D0Ar2 ! another c
-+ LSL D0Ar4, D0Ar4, #8 ! shift
-+ ADD D0Ar4, D0Ar4, D0Ar2 ! 4 copies of c
-+$Lcheck8bytes:
-+ GETL D0Re0, D1Re0, [D1Ar1++] ! grab 16 bytes
-+ MOV A0.3, D0Re0 ! save for later use
-+ ! first word
-+ ! check for \0
-+ MOV D0Ar2, D0Re0 ! D0Ar2 is a scratch now
-+ ADDT D0Re0, D0Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
-+ ADD D0Re0, D0Re0, #LO(0xfefefeff)
-+ XOR D0Ar2, D0Ar2, #-1
-+ AND D0Re0, D0Re0, D0Ar2
-+ ANDMT D0Re0, D0Re0, #HI(0x80808080)
-+ ANDMB D0Re0, D0Re0, #LO(0x80808080)
-+ CMP D0Re0, #0
-+ BNZ $Lnullinword1 ! found \0 (or c if c==\0)
-+
-+ ! Check for c
-+ MOV D0Re0, A0.3 ! restore the first word
-+ XOR D0Re0, D0Re0, D0Ar4
-+ MOV D0Ar2, D0Re0 ! DO 4 1-byte compares
-+ ADDT D0Re0, D0Re0, #HI(0xfefefeff)
-+ ADD D0Re0, D0Re0, #LO(0xfefefeff)
-+ XOR D0Ar2, D0Ar2, #-1
-+ AND D0Re0, D0Re0, D0Ar2
-+ ANDMT D0Re0, D0Re0, #HI(0x80808080)
-+ ANDMB D0Re0, D0Re0, #LO(0x80808080)
-+ CMP D0Re0, #0
-+ BNZ $Lcharinword1 ! found c
-+
-+ ! second word
-+ ! check for \0
-+ MOV A0.3, D1Re0 ! save for later use
-+ MOV D1Ar3, D1Re0
-+ ADDT D1Re0, D1Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
-+ ADD D1Re0, D1Re0, #LO(0xfefefeff)
-+ XOR D1Ar3, D1Ar3, #-1
-+ AND D1Re0, D1Re0, D1Ar3
-+ ANDMT D1Re0, D1Re0, #HI(0x80808080)
-+ ANDMB D1Re0, D1Re0, #LO(0x80808080)
-+ CMP D1Re0, #0
-+ BNZ $Lnullinword2 ! Found \0 (or c if c==\0)
-+
-+ MOV D0.4, A0.3 ! restore the second word
-+ XOR D1Re0, D0.4, D0Ar4 ! test c
-+
-+ MOV D1Ar3, D1Re0
-+ ADDT D1Re0, D1Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
-+ ADD D1Re0, D1Re0, #LO(0xfefefeff)
-+ XOR D1Ar3, D1Ar3, #-1
-+ AND D1Re0, D1Re0, D1Ar3
-+ ANDMT D1Re0, D1Re0, #HI(0x80808080)
-+ ANDMB D1Re0, D1Re0, #LO(0x80808080)
-+ CMP D1Re0, #0
-+ BNZ $Lcharinword2 ! found c
-+
-+ B $Lcheck8bytes ! Keep checking
-+
-+$Lnullinword1: ! found \0 somewhere, check for c too
-+ SUB D1Ar1, D1Ar1, #4
-+$Lnullinword2:
-+ SUB D1Ar1, D1Ar1, #4
-+ AND D0Ar2, D0Ar4, #0xff ! restore c
-+ MOV D0Re0, A0.3 ! restore the word
-+ MOV D0.4, D0Re0 ! for shifting later
-+ AND D0Re0, D0Re0, #0xff ! take first byte of word
-+ CMP D0Re0, D0Ar2
-+ BZ $Lcharatcurrent ! found c
-+ CMP D0Re0, #0!
-+ BZ $Lnotfound ! found \0
-+
-+ ADD D1Ar1, D1Ar1, #1
-+ LSR D0.4, D0.4, #8
-+ MOV D0Re0, D0.4
-+ AND D0Re0, D0Re0, #0xff ! take second byte of word
-+ CMP D0Re0, D0Ar2
-+ BZ $Lcharatcurrent ! found c
-+ CMP D0Re0, #0
-+ BZ $Lnotfound ! found \0
-+
-+ ADD D1Ar1, D1Ar1, #1
-+ LSR D0.4, D0.4, #8
-+ MOV D0Re0, D0.4
-+ AND D0Re0, D0Re0, #0xff ! take third byte of word
-+ CMP D0Re0, D0Ar2
-+ BZ $Lcharatcurrent ! found c
-+ CMP D0Re0, #0
-+ BZ $Lnotfound ! found \0
-+
-+ ADD D1Ar1, D1Ar1, #1 ! move to 4th byte
-+ CMP D0Ar2, #0 ! If c was \0
-+ BZ $Lcharatcurrent ! c has been found!
-+
-+$Lnotfound:
-+ MOV D0Re0, #0 ! End of string c not found
-+ B $Lend
-+
-+$Lcharinword1: ! found c in first word
-+ MOV D1Re0, D0Re0
-+ SUB D1Ar1, D1Ar1, #4
-+$Lcharinword2: ! found c in second word
-+ SUB D1Ar1, D1Ar1, #4
-+
-+ AND D0Re0, D1Re0, #0xff ! First byte
-+ CMP D0Re0, #0 ! Test c (zero indicates c due
-+ ! to the 4 1-byte compare code)
-+ BNE $Lcharatcurrent
-+ ADD D1Ar1, D1Ar1, #1
-+
-+ LSR D1Re0, D1Re0, #8
-+ AND D0Re0, D1Re0, #0xff ! Second byte
-+ CMP D0Re0, #0 ! Test c (indicated by zero)
-+ BNE $Lcharatcurrent
-+ ADD D1Ar1, D1Ar1, #1
-+
-+ LSR D1Re0, D1Re0, #8
-+ AND D0Re0, D1Re0, #0xff ! Third byte
-+ CMP D0Re0, #0 ! Test c (indicated by zero)
-+ BNE $Lcharatcurrent
-+ ADD D1Ar1, D1Ar1, #1 ! Must be the fourth byte
-+ B $Lcharatcurrent
-+
-+$Lcharatprevious:
-+ SUB D1Ar1, D1Ar1, #1 ! Fix-up pointer
-+$Lcharatcurrent:
-+ MOV D0Re0, D1Ar1 ! Return the string pointer
-+$Lend:
-+ MOV PC, D1RtP
-+ .size _strchr,.-_strchr
-+
-+libc_hidden_def(strchr)
-+#ifdef __UCLIBC_SUSV3_LEGACY__
-+strong_alias(strchr,index)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/metag/strcmp.S uClibc-git/libc/string/metag/strcmp.S
---- uClibc-0.9.33.2/libc/string/metag/strcmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/strcmp.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,65 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+#include <features.h>
-+
-+ .text
-+ .global _strcmp
-+ .type _strcmp,function
-+!D1Ar1 s1
-+!D0Ar2 s2
-+_strcmp:
-+ TST D1Ar1,#3
-+ TSTZ D0Ar2,#3
-+ MOVT D1Re0,#0x0101
-+ ADD D1Re0,D1Re0,#0x0101
-+ BNZ $Lstrcmp_slow
-+ GETD D1Ar3,[D1Ar1+#4++] ! Load 32-bits from s1
-+ GETD D1Ar5,[D0Ar2+#4++] ! Load 32-bits from s2
-+ LSL D0FrT,D1Re0,#7 ! D0FrT = 0x80808080
-+$Lstrcmp4_loop:
-+ SUB D0Re0,D1Ar3,D1Re0 ! D1Re0 = 0x01010101
-+ MOV D0Ar6,D1Ar3
-+ SUBS D0Ar4,D1Ar3,D1Ar5 ! Calculate difference
-+ XOR D0Ar6,D0Ar6,#-1
-+ GETD D1Ar3,[D1Ar1+#4++] ! Load 32-bits from s1
-+ AND D0Re0,D0Re0,D0Ar6
-+ ANDSZ D0Ar6,D0Re0,D0FrT ! D0FrT = 0x80808080
-+ GETD D1Ar5,[D0Ar2+#4++] ! Load 32-bits from s2
-+ BZ $Lstrcmp4_loop
-+ AND D0Ar6, D0Re0, D0FrT ! D0FrT = 0x80808080
-+!
-+! Either they are different or they both contain a NULL + junk
-+!
-+$Lstrcmp4_end:
-+ LSLS D0Re0,D0Ar4,#24 ! Was Byte[0] the same?
-+ LSLSZ D0Ar2,D0Ar6,#24 ! Yes: AND they where not zero?
-+ LSLSZ D0Re0,D0Ar4,#16 ! Yes: Was Byte[1] the same?
-+ LSLSZ D0Ar2,D0Ar6,#16 ! Yes: AND they where not zero?
-+ LSLSZ D0Re0,D0Ar4,#8 ! Tes: Was Byte[2] the same?
-+ LSLSZ D0Ar2,D0Ar6,#8 ! Yes: AND they where not zero?
-+ MOVZ D0Re0,D0Ar4 ! Yes: Must by Byte[3] thats the result
-+ ASR D0Re0,D0Re0,#24 ! Sign extend result to integer
-+ MOV PC,D1RtP
-+!
-+! Misaligned case, byte at a time
-+!
-+$Lstrcmp_slow:
-+ GETB D1Ar3,[D1Ar1++] ! Load char from s1
-+ GETB D1Ar5,[D0Ar2++] ! Load char from s2
-+ CMP D1Ar3,#1 ! Null -> C and NZ, rest -> NC (\1->Z)
-+ CMPNC D1Ar3,D1Ar5 ! NOT Null: Same -> Z, else -> NZ
-+ BZ $Lstrcmp_slow ! NOT Null and Same: Loop
-+ SUB D0Re0,D1Ar3,D1Ar5 ! Generate result
-+ MOV PC,D1RtP
-+
-+ .size _strcmp,.-_strcmp
-+
-+
-+libc_hidden_def(strcmp)
-+#ifndef __UCLIBC_HAS_LOCALE__
-+strong_alias(strcmp,strcoll)
-+libc_hidden_def(strcoll)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/metag/strcpy.S uClibc-git/libc/string/metag/strcpy.S
---- uClibc-0.9.33.2/libc/string/metag/strcpy.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/string/metag/strcpy.S 2014-07-25 20:36:06.277331914 +0200
-@@ -0,0 +1,94 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+ .text
-+ .global _strcpy
-+ .type _strcpy,function
-+! D1Ar1 dst
-+! D0Ar2 src
-+
-+_strcpy:
-+ MOV A1.2, D1Ar1
-+
-+ ! test 4 byte alignment of src
-+ ANDS D0Ar4, D0Ar2, #3
-+ BNZ $Lbyteloop
-+
-+ ! test 4 byte alignment of dest
-+ ANDS D1Ar5, D1Ar1, #3
-+ BNZ $Lbyteloop
-+
-+ ! load mask values for aligned loops
-+ MOVT D1Ar3, #HI(0xfefefeff)
-+ ADD D1Ar3, D1Ar3, #LO(0xfefefeff)
-+ MOVT D0FrT, #HI(0x80808080)
-+ ADD D0FrT, D0FrT, #LO(0x80808080)
-+
-+ ! test 8 byte alignment of src
-+ ANDS D0Ar4, D0Ar2, #7
-+ BNZ $Lwordloop
-+
-+ ! test 8 byte alignment of dest
-+ ANDS D1Ar5, D1Ar1, #7
-+ BNZ $Lwordloop
-+
-+$L8byteloop:
-+ GETL D1Ar5, D0Ar6, [D0Ar2++]
-+ MOV D1Re0, D1Ar5
-+ MOV D0Re0, D1Ar5
-+ ADD D1Re0, D1Re0, D1Ar3
-+ XOR D0Re0, D0Re0, #-1
-+ AND D1Re0, D1Re0, D0Re0
-+ ANDS D1Re0, D1Re0, D0FrT
-+ BNZ $Lnullfound ! NULL in first word
-+
-+ MOV D1Re0, D0Ar6
-+ MOV D0Re0, D0Ar6
-+ ADD D1Re0, D1Re0, D1Ar3
-+ XOR D0Re0, D0Re0, #-1
-+ AND D1Re0, D1Re0, D0Re0
-+ ANDS D1Re0, D1Re0, D0FrT
-+ BNZ $Lnullfound2 ! NULL in the second word
-+
-+ SETL [A1.2++], D1Ar5, D0Ar6
-+ B $L8byteloop
-+
-+$Lwordloop:
-+ GETD D0Ar6, [D0Ar2++]
-+ MOV D1Re0, D0Ar6
-+ MOV D0Re0, D0Ar6
-+ ADD D1Re0, D1Re0, D1Ar3
-+ XOR D0Re0, D0Re0, #-1
-+ AND D1Re0, D1Re0, D0Re0
-+ ANDS D1Re0, D1Re0, D0FrT
-+ MOV D1Ar5, D0Ar6
-+ BNZ $Lnullfound
-+ SETD [A1.2++], D0Ar6
-+ B $Lwordloop
-+
-+$Lnullfound2:
-+ SETD [A1.2++], D1Ar5
-+ MOV D1Ar5, D0Ar6
-+
-+$Lnullfound:
-+ SETB [A1.2++], D1Ar5
-+ ANDS D0Ar6, D1Ar5, #0xff
-+ LSR D1Ar5, D1Ar5, #8
-+ BNZ $Lnullfound
-+ B $Lend
-+
-+$Lbyteloop:
-+ GETB D0Ar6, [D0Ar2++]
-+ SETB [A1.2++], D0Ar6
-+ CMP D0Ar6, #0
-+ BNZ $Lbyteloop
-+
-+$Lend:
-+ MOV D0Re0, D1Ar1
-+ MOV PC, D1RtP
-+
-+ .size _strcpy,.-_strcpy
-+
-+libc_hidden_def(strcpy)
-diff -Nur uClibc-0.9.33.2/libc/string/microblaze/memcpy.S uClibc-git/libc/string/microblaze/memcpy.S
---- uClibc-0.9.33.2/libc/string/microblaze/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/microblaze/memcpy.S 2014-07-25 20:36:06.289331978 +0200
-@@ -34,6 +34,14 @@
- .type memcpy, @function
- .ent memcpy
-
-+#ifdef __MICROBLAZEEL__
-+# define BSLLI bsrli
-+# define BSRLI bslli
-+#else
-+# define BSLLI bslli
-+# define BSRLI bsrli
-+#endif
-+
- memcpy:
- fast_memcpy_ascending:
- /* move d to return register as value of function */
-@@ -85,48 +93,48 @@
- beqi r9, a_block_u2 /* t1 was 2 => 2 byte offset */
-
- a_block_u3:
-- bslli r11, r11, 24 /* h = h << 24 */
-+ BSLLI r11, r11, 24 /* h = h << 24 */
- a_bu3_loop:
- lwi r12, r8, 4 /* v = *(as + 4) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 0 /* *(d + 0) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 8 /* v = *(as + 8) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 4 /* *(d + 4) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 12 /* v = *(as + 12) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 8 /* *(d + 8) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 16 /* v = *(as + 16) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 12 /* *(d + 12) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 20 /* v = *(as + 20) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 16 /* *(d + 16) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 24 /* v = *(as + 24) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 20 /* *(d + 20) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 28 /* v = *(as + 28) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 24 /* *(d + 24) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- lwi r12, r8, 32 /* v = *(as + 32) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 28 /* *(d + 28) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- addi r8, r8, 32 /* as = as + 32 */
- addi r4, r4, -32 /* n = n - 32 */
- bneid r4, a_bu3_loop /* while (n) loop */
-@@ -134,48 +142,48 @@
- bri a_block_done
-
- a_block_u1:
-- bslli r11, r11, 8 /* h = h << 8 */
-+ BSLLI r11, r11, 8 /* h = h << 8 */
- a_bu1_loop:
- lwi r12, r8, 4 /* v = *(as + 4) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 0 /* *(d + 0) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 8 /* v = *(as + 8) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 4 /* *(d + 4) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 12 /* v = *(as + 12) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 8 /* *(d + 8) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 16 /* v = *(as + 16) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 12 /* *(d + 12) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 20 /* v = *(as + 20) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 16 /* *(d + 16) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 24 /* v = *(as + 24) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 20 /* *(d + 20) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 28 /* v = *(as + 28) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 24 /* *(d + 24) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- lwi r12, r8, 32 /* v = *(as + 32) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 28 /* *(d + 28) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- addi r8, r8, 32 /* as = as + 32 */
- addi r4, r4, -32 /* n = n - 32 */
- bneid r4, a_bu1_loop /* while (n) loop */
-@@ -183,48 +191,48 @@
- bri a_block_done
-
- a_block_u2:
-- bslli r11, r11, 16 /* h = h << 16 */
-+ BSLLI r11, r11, 16 /* h = h << 16 */
- a_bu2_loop:
- lwi r12, r8, 4 /* v = *(as + 4) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 0 /* *(d + 0) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 8 /* v = *(as + 8) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 4 /* *(d + 4) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 12 /* v = *(as + 12) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 8 /* *(d + 8) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 16 /* v = *(as + 16) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 12 /* *(d + 12) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 20 /* v = *(as + 20) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 16 /* *(d + 16) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 24 /* v = *(as + 24) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 20 /* *(d + 20) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 28 /* v = *(as + 28) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 24 /* *(d + 24) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- lwi r12, r8, 32 /* v = *(as + 32) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 28 /* *(d + 28) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- addi r8, r8, 32 /* as = as + 32 */
- addi r4, r4, -32 /* n = n - 32 */
- bneid r4, a_bu2_loop /* while (n) loop */
-@@ -263,13 +271,13 @@
- beqi r9, a_word_u2 /* t1 was 2 => 2 byte offset */
-
- a_word_u3:
-- bslli r11, r11, 24 /* h = h << 24 */
-+ BSLLI r11, r11, 24 /* h = h << 24 */
- a_wu3_loop:
- lw r12, r8, r10 /* v = *(as + offset) */
-- bsrli r9, r12, 8 /* t1 = v >> 8 */
-+ BSRLI r9, r12, 8 /* t1 = v >> 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- sw r9, r5, r10 /* *(d + offset) = t1 */
-- bslli r11, r12, 24 /* h = v << 24 */
-+ BSLLI r11, r12, 24 /* h = v << 24 */
- addi r4, r4,-4 /* n = n - 4 */
- bneid r4, a_wu3_loop /* while (n) loop */
- addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
-@@ -277,13 +285,13 @@
- bri a_word_done
-
- a_word_u1:
-- bslli r11, r11, 8 /* h = h << 8 */
-+ BSLLI r11, r11, 8 /* h = h << 8 */
- a_wu1_loop:
- lw r12, r8, r10 /* v = *(as + offset) */
-- bsrli r9, r12, 24 /* t1 = v >> 24 */
-+ BSRLI r9, r12, 24 /* t1 = v >> 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- sw r9, r5, r10 /* *(d + offset) = t1 */
-- bslli r11, r12, 8 /* h = v << 8 */
-+ BSLLI r11, r12, 8 /* h = v << 8 */
- addi r4, r4,-4 /* n = n - 4 */
- bneid r4, a_wu1_loop /* while (n) loop */
- addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
-@@ -291,13 +299,13 @@
- bri a_word_done
-
- a_word_u2:
-- bslli r11, r11, 16 /* h = h << 16 */
-+ BSLLI r11, r11, 16 /* h = h << 16 */
- a_wu2_loop:
- lw r12, r8, r10 /* v = *(as + offset) */
-- bsrli r9, r12, 16 /* t1 = v >> 16 */
-+ BSRLI r9, r12, 16 /* t1 = v >> 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- sw r9, r5, r10 /* *(d + offset) = t1 */
-- bslli r11, r12, 16 /* h = v << 16 */
-+ BSLLI r11, r12, 16 /* h = v << 16 */
- addi r4, r4,-4 /* n = n - 4 */
- bneid r4, a_wu2_loop /* while (n) loop */
- addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
-diff -Nur uClibc-0.9.33.2/libc/string/microblaze/memmove.S uClibc-git/libc/string/microblaze/memmove.S
---- uClibc-0.9.33.2/libc/string/microblaze/memmove.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/microblaze/memmove.S 2014-07-25 20:36:06.289331978 +0200
-@@ -33,6 +33,14 @@
- .type memmove, @function
- .ent memmove
-
-+#ifdef __MICROBLAZEEL__
-+# define BSLLI bsrli
-+# define BSRLI bslli
-+#else
-+# define BSLLI bslli
-+# define BSRLI bsrli
-+#endif
-+
- memmove:
- cmpu r4, r5, r6 /* n = s - d */
- bgei r4, HIDDEN_JUMPTARGET(memcpy)
-@@ -112,150 +120,150 @@
- beqi r9,d_block_u2 /* t1 was 2 => 2 byte offset */
-
- d_block_u3:
-- bsrli r11, r11, 8 /* h = h >> 8 */
-+ BSRLI r11, r11, 8 /* h = h >> 8 */
- d_bu3_loop:
- addi r8, r8, -32 /* as = as - 32 */
- addi r5, r5, -32 /* d = d - 32 */
- lwi r12, r8, 28 /* v = *(as + 28) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 28 /* *(d + 28) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 24 /* v = *(as + 24) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 24 /* *(d + 24) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 20 /* v = *(as + 20) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 20 /* *(d + 20) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 16 /* v = *(as + 16) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 16 /* *(d + 16) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 12 /* v = *(as + 12) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 12 /* *(d + 112) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 8 /* v = *(as + 8) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 8 /* *(d + 8) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 4 /* v = *(as + 4) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 4 /* *(d + 4) = t1 */
-- bsrli r11, r12, 8 /* h = v >> 8 */
-+ BSRLI r11, r12, 8 /* h = v >> 8 */
- lwi r12, r8, 0 /* v = *(as + 0) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 0 /* *(d + 0) = t1 */
- addi r4, r4, -32 /* n = n - 32 */
- bneid r4, d_bu3_loop /* while (n) loop */
-- bsrli r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
-+ BSRLI r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
- bri d_block_done
-
- d_block_u1:
-- bsrli r11, r11, 24 /* h = h >> 24 */
-+ BSRLI r11, r11, 24 /* h = h >> 24 */
- d_bu1_loop:
- addi r8, r8, -32 /* as = as - 32 */
- addi r5, r5, -32 /* d = d - 32 */
- lwi r12, r8, 28 /* v = *(as + 28) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 28 /* *(d + 28) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 24 /* v = *(as + 24) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 24 /* *(d + 24) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 20 /* v = *(as + 20) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 20 /* *(d + 20) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 16 /* v = *(as + 16) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 16 /* *(d + 16) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 12 /* v = *(as + 12) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 12 /* *(d + 112) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 8 /* v = *(as + 8) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 8 /* *(d + 8) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 4 /* v = *(as + 4) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 4 /* *(d + 4) = t1 */
-- bsrli r11, r12, 24 /* h = v >> 24 */
-+ BSRLI r11, r12, 24 /* h = v >> 24 */
- lwi r12, r8, 0 /* v = *(as + 0) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 0 /* *(d + 0) = t1 */
- addi r4, r4, -32 /* n = n - 32 */
- bneid r4, d_bu1_loop /* while (n) loop */
-- bsrli r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
-+ BSRLI r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
- bri d_block_done
-
- d_block_u2:
-- bsrli r11, r11, 16 /* h = h >> 16 */
-+ BSRLI r11, r11, 16 /* h = h >> 16 */
- d_bu2_loop:
- addi r8, r8, -32 /* as = as - 32 */
- addi r5, r5, -32 /* d = d - 32 */
- lwi r12, r8, 28 /* v = *(as + 28) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 28 /* *(d + 28) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 24 /* v = *(as + 24) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 24 /* *(d + 24) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 20 /* v = *(as + 20) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 20 /* *(d + 20) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 16 /* v = *(as + 16) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 16 /* *(d + 16) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 12 /* v = *(as + 12) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 12 /* *(d + 112) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 8 /* v = *(as + 8) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 8 /* *(d + 8) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 4 /* v = *(as + 4) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 4 /* *(d + 4) = t1 */
-- bsrli r11, r12, 16 /* h = v >> 16 */
-+ BSRLI r11, r12, 16 /* h = v >> 16 */
- lwi r12, r8, 0 /* v = *(as + 0) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- swi r9, r5, 0 /* *(d + 0) = t1 */
- addi r4, r4, -32 /* n = n - 32 */
- bneid r4, d_bu2_loop /* while (n) loop */
-- bsrli r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
-+ BSRLI r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
-
- d_block_done:
- addi r4, r0, 4 /* n = 4 */
-@@ -290,41 +298,41 @@
- beqi r9,d_word_u2 /* t1 was 2 => 2 byte offset */
-
- d_word_u3:
-- bsrli r11, r11, 8 /* h = h >> 8 */
-+ BSRLI r11, r11, 8 /* h = h >> 8 */
- d_wu3_loop:
- addi r4, r4,-4 /* n = n - 4 */
- lw r12, r8, r4 /* v = *(as + n) */
-- bslli r9, r12, 24 /* t1 = v << 24 */
-+ BSLLI r9, r12, 24 /* t1 = v << 24 */
- or r9, r11, r9 /* t1 = h | t1 */
- sw r9, r5, r4 /* *(d + n) = t1 */
- bneid r4, d_wu3_loop /* while (n) loop */
-- bsrli r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
-+ BSRLI r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
-
- bri d_word_done
-
- d_word_u1:
-- bsrli r11, r11, 24 /* h = h >> 24 */
-+ BSRLI r11, r11, 24 /* h = h >> 24 */
- d_wu1_loop:
- addi r4, r4,-4 /* n = n - 4 */
- lw r12, r8, r4 /* v = *(as + n) */
-- bslli r9, r12, 8 /* t1 = v << 8 */
-+ BSLLI r9, r12, 8 /* t1 = v << 8 */
- or r9, r11, r9 /* t1 = h | t1 */
- sw r9, r5, r4 /* *(d + n) = t1 */
- bneid r4, d_wu1_loop /* while (n) loop */
-- bsrli r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
-+ BSRLI r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
-
- bri d_word_done
-
- d_word_u2:
-- bsrli r11, r11, 16 /* h = h >> 16 */
-+ BSRLI r11, r11, 16 /* h = h >> 16 */
- d_wu2_loop:
- addi r4, r4,-4 /* n = n - 4 */
- lw r12, r8, r4 /* v = *(as + n) */
-- bslli r9, r12, 16 /* t1 = v << 16 */
-+ BSLLI r9, r12, 16 /* t1 = v << 16 */
- or r9, r11, r9 /* t1 = h | t1 */
- sw r9, r5, r4 /* *(d + n) = t1 */
- bneid r4, d_wu2_loop /* while (n) loop */
-- bsrli r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
-+ BSRLI r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
-
- d_word_done:
-
-diff -Nur uClibc-0.9.33.2/libc/string/mips/memcpy.S uClibc-git/libc/string/mips/memcpy.S
---- uClibc-0.9.33.2/libc/string/mips/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/mips/memcpy.S 2014-07-25 20:36:06.301332040 +0200
-@@ -13,14 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
--/*#include <sysdep.h>*/
-+#include <sysdep.h>
- #include <endian.h>
--#include "sysdep.h"
-
- /* void *memcpy(void *s1, const void *s2, size_t n); */
-
-diff -Nur uClibc-0.9.33.2/libc/string/mips/memset.S uClibc-git/libc/string/mips/memset.S
---- uClibc-0.9.33.2/libc/string/mips/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/mips/memset.S 2014-07-25 20:36:06.301332040 +0200
-@@ -13,14 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
--/*#include <sysdep.h>*/
-+#include <sysdep.h>
- #include <endian.h>
--#include "sysdep.h"
-
- /* void *memset(void *s, int c, size_t n). */
-
-diff -Nur uClibc-0.9.33.2/libc/string/mips/sysdep.h uClibc-git/libc/string/mips/sysdep.h
---- uClibc-0.9.33.2/libc/string/mips/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/mips/sysdep.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,45 +0,0 @@
--/* Adapted from glibc's sysdeps/unix/mips/sysdep.h */
--
--/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003
-- Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
-- Contributed by Brendan Kehoe (brendan@zen.org).
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#ifdef __ASSEMBLER__
--
--#include <sgidefs.h>
--#include <sys/regdef.h>
--
--#define ENTRY(name) \
-- .globl name; \
-- .align 2; \
-- .ent name,0; \
-- name/* use a comment rather than ## to workaround bug in gcc-3.4.x */:
--
--#undef END
--#define END(function) \
-- .end function; \
-- .size function,.-function
--
--#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_ABIO64
--# define L(label) $L ## label
--#else
--# define L(label) .L ## label
--#endif
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memchr.S uClibc-git/libc/string/sparc/sparc32/memchr.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/memchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/memchr.S 2014-07-25 20:36:06.369332397 +0200
-@@ -24,9 +24,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .text
- .align 4
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memcpy.S uClibc-git/libc/string/sparc/sparc32/memcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/memcpy.S 2014-07-25 20:36:06.369332397 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memset.S uClibc-git/libc/string/sparc/sparc32/memset.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/memset.S 2014-07-25 20:36:06.369332397 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/stpcpy.S uClibc-git/libc/string/sparc/sparc32/stpcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/stpcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/stpcpy.S 2014-07-25 20:36:06.377332438 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
- to find out if any byte in xword could be zero. This is fast, but
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcat.S uClibc-git/libc/string/sparc/sparc32/strcat.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcat.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/strcat.S 2014-07-25 20:36:06.377332438 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
- to find out if any byte in xword could be zero. This is fast, but
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strchr.S uClibc-git/libc/string/sparc/sparc32/strchr.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/strchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/strchr.S 2014-07-25 20:36:06.377332438 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
- to find out if any byte in xword could be zero. This is fast, but
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcmp.S uClibc-git/libc/string/sparc/sparc32/strcmp.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/strcmp.S 2014-07-25 20:36:06.377332438 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
- to find out if any byte in xword could be zero. This is fast, but
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcpy.S uClibc-git/libc/string/sparc/sparc32/strcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/strcpy.S 2014-07-25 20:36:06.377332438 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
- to find out if any byte in xword could be zero. This is fast, but
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strlen.S uClibc-git/libc/string/sparc/sparc32/strlen.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc32/strlen.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc32/strlen.S 2014-07-25 20:36:06.377332438 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
- to find out if any byte in xword could be zero. This is fast, but
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memchr.S uClibc-git/libc/string/sparc/sparc64/memchr.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/memchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/memchr.S 2014-07-25 20:36:06.389332501 +0200
-@@ -24,9 +24,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <asm/asi.h>
- #ifndef XCC
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memcpy.S uClibc-git/libc/string/sparc/sparc64/memcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/memcpy.S 2014-07-25 20:36:06.389332501 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <asm/asi.h>
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memset.S uClibc-git/libc/string/sparc/sparc64/memset.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/memset.S 2014-07-25 20:36:06.389332501 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <asm/asi.h>
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/sparcv9b/memcpy.S uClibc-git/libc/string/sparc/sparc64/sparcv9b/memcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/sparcv9b/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/sparcv9b/memcpy.S 2014-07-25 20:36:06.401332564 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/stpcpy.S uClibc-git/libc/string/sparc/sparc64/stpcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/stpcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/stpcpy.S 2014-07-25 20:36:06.401332564 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <asm/asi.h>
- #ifndef XCC
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcat.S uClibc-git/libc/string/sparc/sparc64/strcat.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcat.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/strcat.S 2014-07-25 20:36:06.401332564 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <asm/asi.h>
- #ifndef XCC
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strchr.S uClibc-git/libc/string/sparc/sparc64/strchr.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/strchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/strchr.S 2014-07-25 20:36:06.401332564 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <asm/asi.h>
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcmp.S uClibc-git/libc/string/sparc/sparc64/strcmp.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/strcmp.S 2014-07-25 20:36:06.401332564 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <asm/asi.h>
- #ifndef XCC
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcpy.S uClibc-git/libc/string/sparc/sparc64/strcpy.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/strcpy.S 2014-07-25 20:36:06.401332564 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <asm/asi.h>
- #ifndef XCC
-diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strlen.S uClibc-git/libc/string/sparc/sparc64/strlen.S
---- uClibc-0.9.33.2/libc/string/sparc/sparc64/strlen.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/sparc/sparc64/strlen.S 2014-07-25 20:36:06.401332564 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <asm/asi.h>
-
-diff -Nur uClibc-0.9.33.2/libc/string/strchrnul.c uClibc-git/libc/string/strchrnul.c
---- uClibc-0.9.33.2/libc/string/strchrnul.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/strchrnul.c 2014-07-25 20:36:06.401332564 +0200
-@@ -22,6 +22,6 @@
- return (Wchar *) s;
- }
- # ifndef WANT_WIDE
--libc_hidden_def(Wstrchrnul)
-+libc_hidden_def(strchrnul)
- # endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/string/strverscmp.c uClibc-git/libc/string/strverscmp.c
---- uClibc-0.9.33.2/libc/string/strverscmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/strverscmp.c 2014-07-25 20:36:06.401332564 +0200
-@@ -19,9 +19,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <ctype.h>
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/memcpy.S uClibc-git/libc/string/x86_64/memcpy.S
---- uClibc-0.9.33.2/libc/string/x86_64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/memcpy.S 2014-07-25 20:36:06.441332774 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/memset.S uClibc-git/libc/string/x86_64/memset.S
---- uClibc-0.9.33.2/libc/string/x86_64/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/memset.S 2014-07-25 20:36:06.441332774 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcat.S uClibc-git/libc/string/x86_64/strcat.S
---- uClibc-0.9.33.2/libc/string/x86_64/strcat.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strcat.S 2014-07-25 20:36:06.441332774 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strchr.S uClibc-git/libc/string/x86_64/strchr.S
---- uClibc-0.9.33.2/libc/string/x86_64/strchr.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strchr.S 2014-07-25 20:36:06.441332774 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcmp.S uClibc-git/libc/string/x86_64/strcmp.S
---- uClibc-0.9.33.2/libc/string/x86_64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strcmp.S 2014-07-25 20:36:06.441332774 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcpy.S uClibc-git/libc/string/x86_64/strcpy.S
---- uClibc-0.9.33.2/libc/string/x86_64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strcpy.S 2014-07-25 20:36:06.441332774 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcspn.S uClibc-git/libc/string/x86_64/strcspn.S
---- uClibc-0.9.33.2/libc/string/x86_64/strcspn.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strcspn.S 2014-07-25 20:36:06.441332774 +0200
-@@ -19,9 +19,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strlen.S uClibc-git/libc/string/x86_64/strlen.S
---- uClibc-0.9.33.2/libc/string/x86_64/strlen.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strlen.S 2014-07-25 20:36:06.441332774 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strspn.S uClibc-git/libc/string/x86_64/strspn.S
---- uClibc-0.9.33.2/libc/string/x86_64/strspn.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/x86_64/strspn.S 2014-07-25 20:36:06.441332774 +0200
-@@ -19,9 +19,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "_glibc_inc.h"
-
-diff -Nur uClibc-0.9.33.2/libc/string/__xpg_basename.c uClibc-git/libc/string/__xpg_basename.c
---- uClibc-0.9.33.2/libc/string/__xpg_basename.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/__xpg_basename.c 2014-07-25 20:36:06.133331160 +0200
-@@ -5,7 +5,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include "_string.h"
- #include <libgen.h>
-
- char *__xpg_basename(register char *path)
-@@ -34,3 +33,7 @@
-
- return first;
- }
-+#ifndef __USE_GNU
-+# undef basename
-+weak_alias(__xpg_basename,basename)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/__xpg_strerror_r.c uClibc-git/libc/string/__xpg_strerror_r.c
---- uClibc-0.9.33.2/libc/string/__xpg_strerror_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/__xpg_strerror_r.c 2014-07-25 20:36:06.133331160 +0200
-@@ -5,8 +5,8 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--/* Make sure we get proper strerror_r() prototype */
--#define strerror_r _hidestrerror_r
-+/* get rid of REDIRECT */
-+#define strerror_r __hide_strerror_r
-
- #include <features.h>
- #include <errno.h>
-@@ -15,7 +15,6 @@
-
- #undef strerror_r
-
--
- #ifdef __UCLIBC_HAS_ERRNO_MESSAGES__
-
- extern const char _string_syserrmsgs[] attribute_hidden;
-@@ -273,4 +272,6 @@
-
- #endif /* __UCLIBC_HAS_ERRNO_MESSAGES__ */
- libc_hidden_def(__xpg_strerror_r)
--weak_alias(__xpg_strerror_r, strerror_r)
-+#if defined __USE_XOPEN2K && !defined __USE_GNU
-+strong_alias(__xpg_strerror_r,strerror_r)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/string/xtensa/memcpy.S uClibc-git/libc/string/xtensa/memcpy.S
---- uClibc-0.9.33.2/libc/string/xtensa/memcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/xtensa/memcpy.S 2014-07-25 20:36:06.457332858 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "../../sysdeps/linux/xtensa/sysdep.h"
-+#include <sysdep.h>
- #include <bits/xtensa-config.h>
-
- .macro src_b r, w0, w1
-diff -Nur uClibc-0.9.33.2/libc/string/xtensa/memset.S uClibc-git/libc/string/xtensa/memset.S
---- uClibc-0.9.33.2/libc/string/xtensa/memset.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/xtensa/memset.S 2014-07-25 20:36:06.457332858 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "../../sysdeps/linux/xtensa/sysdep.h"
-+#include <sysdep.h>
- #include <bits/xtensa-config.h>
-
- /* Do not use .literal_position in the ENTRY macro. */
-diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strcmp.S uClibc-git/libc/string/xtensa/strcmp.S
---- uClibc-0.9.33.2/libc/string/xtensa/strcmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/xtensa/strcmp.S 2014-07-25 20:36:06.457332858 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "../../sysdeps/linux/xtensa/sysdep.h"
-+#include <sysdep.h>
- #include <bits/xtensa-config.h>
- #include <features.h>
-
-@@ -35,13 +34,14 @@
-
- #define MASK4 0x40404040
-
-+ .text
-+ .align 4
-+ .literal_position
- .literal .Lmask0, MASK0
- .literal .Lmask1, MASK1
- .literal .Lmask2, MASK2
- .literal .Lmask3, MASK3
- .literal .Lmask4, MASK4
--
-- .text
- ENTRY (strcmp)
- /* a2 = s1, a3 = s2 */
-
-diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strcpy.S uClibc-git/libc/string/xtensa/strcpy.S
---- uClibc-0.9.33.2/libc/string/xtensa/strcpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/xtensa/strcpy.S 2014-07-25 20:36:06.457332858 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "../../sysdeps/linux/xtensa/sysdep.h"
-+#include <sysdep.h>
- #include <bits/xtensa-config.h>
-
- #ifdef __XTENSA_EB__
-diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strlen.S uClibc-git/libc/string/xtensa/strlen.S
---- uClibc-0.9.33.2/libc/string/xtensa/strlen.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/xtensa/strlen.S 2014-07-25 20:36:06.457332858 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "../../sysdeps/linux/xtensa/sysdep.h"
-+#include <sysdep.h>
- #include <bits/xtensa-config.h>
-
- #ifdef __XTENSA_EB__
-diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strncpy.S uClibc-git/libc/string/xtensa/strncpy.S
---- uClibc-0.9.33.2/libc/string/xtensa/strncpy.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/string/xtensa/strncpy.S 2014-07-25 20:36:06.457332858 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include "../../sysdeps/linux/xtensa/sysdep.h"
-+#include <sysdep.h>
- #include <bits/xtensa-config.h>
-
- #ifdef __XTENSA_EB__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/atomic.h uClibc-git/libc/sysdeps/linux/alpha/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/atomic.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdint.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/dirent.h uClibc-git/libc/sysdeps/linux/alpha/bits/dirent.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/dirent.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_DIRENT_H
- #define _BITS_DIRENT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/eventfd.h uClibc-git/libc/sysdeps/linux/alpha/bits/eventfd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/eventfd.h 2014-07-25 20:36:06.501333088 +0200
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd. */
-+enum
-+ {
-+ EFD_SEMAPHORE = 000000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+ EFD_CLOEXEC = 010000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+ EFD_NONBLOCK = 000000004
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+ };
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fcntl.h uClibc-git/libc/sysdeps/linux/alpha/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/fcntl.h 2014-07-25 20:36:06.501333088 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fenv.h uClibc-git/libc/sysdeps/linux/alpha/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/fenv.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -107,15 +106,15 @@
- /* If the default argument is used we use this value. Note that due to
- architecture-specified page mappings, no user-space pointer will ever
- have its two high bits set. Co-opt one. */
--#define FE_DFL_ENV ((__const fenv_t *) 0x8800000000000000UL)
-+#define FE_DFL_ENV ((const fenv_t *) 0x8800000000000000UL)
-
- #ifdef __USE_GNU
- /* Floating-point environment where none of the exceptions are masked. */
--# define FE_NOMASK_ENV ((__const fenv_t *) 0x880000000000003eUL)
-+# define FE_NOMASK_ENV ((const fenv_t *) 0x880000000000003eUL)
-
- /* Floating-point environment with (processor-dependent) non-IEEE floating
- point. In this case, mapping denormals to zero. */
--# define FE_NONIEEE_ENV ((__const fenv_t *) 0x8800000000003000UL)
-+# define FE_NONIEEE_ENV ((const fenv_t *) 0x8800000000003000UL)
- #endif
-
- /* The system calls to talk to the kernel's FP code. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ioctls.h uClibc-git/libc/sysdeps/linux/alpha/bits/ioctls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/ioctls.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IOCTL_H
- # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ipc.h uClibc-git/libc/sysdeps/linux/alpha/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/ipc.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h 2014-07-25 20:36:06.501333088 +0200
-@@ -9,12 +9,4 @@
- unsigned int sa_flags;
- };
-
--/* In uclibc, userspace struct sigaction is identical to
-- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
-- * See sigaction.h
-- */
--
--extern int __syscall_rt_sigaction (int, const struct sigaction *,
-- struct sigaction *, size_t) attribute_hidden;
--
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_types.h 2014-07-25 20:36:06.501333088 +0200
-@@ -33,6 +33,8 @@
- typedef __kernel_uid_t __kernel_uid32_t;
- typedef __kernel_gid_t __kernel_gid32_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- int val[2];
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/local_lim.h uClibc-git/libc/sysdeps/linux/alpha/bits/local_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/local_lim.h 2014-07-25 20:36:06.501333088 +0200
-@@ -0,0 +1,91 @@
-+/* Minimum guaranteed maximum values for system limits. Linux/Alpha version.
-+ Copyright (C) 1993-1998,2000,2002,2003,2004 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ see <http://www.gnu.org/licenses/>. */
-+
-+/* The kernel header pollutes the namespace with the NR_OPEN symbol
-+ and defines LINK_MAX although filesystems have different maxima. A
-+ similar thing is true for OPEN_MAX: the limit can be changed at
-+ runtime and therefore the macro must not be defined. Remove this
-+ after including the header if necessary. */
-+#ifndef NR_OPEN
-+# define __undef_NR_OPEN
-+#endif
-+#ifndef LINK_MAX
-+# define __undef_LINK_MAX
-+#endif
-+#ifndef OPEN_MAX
-+# define __undef_OPEN_MAX
-+#endif
-+
-+/* The kernel sources contain a file with all the needed information. */
-+#include <linux/limits.h>
-+
-+/* Have to remove NR_OPEN? */
-+#ifdef __undef_NR_OPEN
-+# undef NR_OPEN
-+# undef __undef_NR_OPEN
-+#endif
-+/* Have to remove LINK_MAX? */
-+#ifdef __undef_LINK_MAX
-+# undef LINK_MAX
-+# undef __undef_LINK_MAX
-+#endif
-+/* Have to remove OPEN_MAX? */
-+#ifdef __undef_OPEN_MAX
-+# undef OPEN_MAX
-+# undef __undef_OPEN_MAX
-+#endif
-+
-+/* The number of data keys per process. */
-+#define _POSIX_THREAD_KEYS_MAX 128
-+/* This is the value this implementation supports. */
-+#define PTHREAD_KEYS_MAX 1024
-+
-+/* Controlling the iterations of destructors for thread-specific data. */
-+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-+/* Number of iterations this implementation does. */
-+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-+
-+/* The number of threads per process. */
-+#define _POSIX_THREAD_THREADS_MAX 64
-+/* We have no predefined limit on the number of threads. */
-+#undef PTHREAD_THREADS_MAX
-+
-+/* Maximum amount by which a process can descrease its asynchronous I/O
-+ priority level. */
-+#define AIO_PRIO_DELTA_MAX 20
-+
-+/* Minimum size for a thread. We are free to choose a reasonable value. */
-+#define PTHREAD_STACK_MIN 24576
-+
-+/* Maximum number of timer expiration overruns. */
-+#define DELAYTIMER_MAX 2147483647
-+
-+/* Maximum tty name length. */
-+#define TTY_NAME_MAX 32
-+
-+/* Maximum login name length. This is arbitrary. */
-+#define LOGIN_NAME_MAX 256
-+
-+/* Maximum host name length. */
-+#define HOST_NAME_MAX 64
-+
-+/* Maximum message queue priority level. */
-+#define MQ_PRIO_MAX 32768
-+
-+/* Maximum value the semaphore can have. */
-+#define SEM_VALUE_MAX (2147483647)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathdef.h uClibc-git/libc/sysdeps/linux/alpha/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/mathdef.h 2014-07-25 20:36:06.501333088 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathinline.h uClibc-git/libc/sysdeps/linux/alpha/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/mathinline.h 2014-07-25 20:36:06.501333088 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mman.h uClibc-git/libc/sysdeps/linux/alpha/bits/mman.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/mman.h 2014-07-25 20:36:06.501333088 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-@@ -71,7 +70,7 @@
- # define MAP_NORESERVE 0x10000 /* Don't check for reservations. */
- # define MAP_POPULATE 0x20000 /* Populate (prefault) pagetables. */
- # define MAP_NONBLOCK 0x40000 /* Do not block on IO. */
--# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/msq.h uClibc-git/libc/sysdeps/linux/alpha/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/msq.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/netdb.h uClibc-git/libc/sysdeps/linux/alpha/bits/netdb.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/netdb.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/netdb.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETDB_H
- # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/resource.h uClibc-git/libc/sysdeps/linux/alpha/bits/resource.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/resource.h 2014-07-25 20:36:06.501333088 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_RESOURCE_H
- # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sem.h uClibc-git/libc/sysdeps/linux/alpha/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/sem.h 2014-07-25 20:36:06.501333088 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/setjmp.h uClibc-git/libc/sysdeps/linux/alpha/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/setjmp.h 2014-07-25 20:36:06.501333088 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SETJMP_H
- #define _BITS_SETJMP_H 1
-@@ -55,33 +54,6 @@
- * registers.
- */
-
--#if defined __USE_MISC || defined __ASSEMBLY__
--# define JB_S0 0
--# define JB_S1 1
--# define JB_S2 2
--# define JB_S3 3
--# define JB_S4 4
--# define JB_S5 5
--# define JB_PC 6
--# define JB_FP 7
--# define JB_SP 8
--# define JB_F2 9
--# define JB_F3 10
--# define JB_F4 11
--# define JB_F5 12
--# define JB_F6 13
--# define JB_F7 14
--# define JB_F8 15
--# define JB_F9 16
--#endif
--
--#ifndef __ASSEMBLY__
- typedef long int __jmp_buf[17];
-
--/* Test if longjmp to JMPBUF would unwind the frame containing a local
-- variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
-- ((void *)(_address) < (void *)((_jmpbuf)[JB_SP]))
--#endif
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/shm.h uClibc-git/libc/sysdeps/linux/alpha/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/shm.h 2014-07-25 20:36:06.501333088 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigaction.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigaction.h 2014-07-25 20:36:06.501333088 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h 2014-07-25 20:36:06.505333109 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT int _code, struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS _code,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/siginfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/siginfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/siginfo.h 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined __need_siginfo_t \
- && !defined __need_sigevent_t
-@@ -258,7 +257,11 @@
-
- /* Structure to transport application-defined values with signals. */
- # define __SIGEV_MAX_SIZE 64
--# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# if __WORDSIZE == 64
-+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# else
-+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
-+# endif
-
- typedef struct sigevent
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/signum.h uClibc-git/libc/sysdeps/linux/alpha/bits/signum.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/signum.h 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef _SIGNAL_H
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigstack.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigstack.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigstack.h 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include this file directly. Use <signal.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/socket_type.h uClibc-git/libc/sysdeps/linux/alpha/bits/socket_type.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/socket_type.h 2014-07-25 20:36:06.505333109 +0200
-@@ -0,0 +1,54 @@
-+/* Define enum __socket_type for Linux/Alpha.
-+ Copyright (C) 1991-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_SOCKET_H
-+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
-+#endif
-+
-+/* Types of sockets. */
-+enum __socket_type
-+{
-+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
-+ byte streams. */
-+#define SOCK_STREAM SOCK_STREAM
-+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
-+ of fixed maximum length. */
-+#define SOCK_DGRAM SOCK_DGRAM
-+ SOCK_RAW = 3, /* Raw protocol interface. */
-+#define SOCK_RAW SOCK_RAW
-+ SOCK_RDM = 4, /* Reliably-delivered messages. */
-+#define SOCK_RDM SOCK_RDM
-+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-+ datagrams of fixed maximum length. */
-+#define SOCK_SEQPACKET SOCK_SEQPACKET
-+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
-+#define SOCK_DCCP SOCK_DCCP
-+ SOCK_PACKET = 10, /* Linux specific way of getting packets
-+ at the dev level. For writing rarp and
-+ other similar things on the user level. */
-+#define SOCK_PACKET SOCK_PACKET
-+
-+ /* Flags to be ORed into the type parameter of socket and socketpair. */
-+
-+ SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
-+ new descriptor(s). */
-+#define SOCK_CLOEXEC SOCK_CLOEXEC
-+ SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
-+ non-blocking. */
-+#define SOCK_NONBLOCK SOCK_NONBLOCK
-+};
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/stackinfo.h 2014-07-25 20:36:06.505333109 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/statfs.h uClibc-git/libc/sysdeps/linux/alpha/bits/statfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/statfs.h 2014-07-25 20:36:06.505333109 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STATFS_H
- # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stat.h uClibc-git/libc/sysdeps/linux/alpha/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/stat.h 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/syscalls.h uClibc-git/libc/sysdeps/linux/alpha/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/syscalls.h 2014-07-25 20:36:06.505333109 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SYSCALLS_H
- #define _BITS_SYSCALLS_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/termios.h uClibc-git/libc/sysdeps/linux/alpha/bits/termios.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/termios.h 2014-07-25 20:36:06.505333109 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TERMIOS_H
- # error "Never include <bits/termios.h> directly; use <termios.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/typesizes.h uClibc-git/libc/sysdeps/linux/alpha/bits/typesizes.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/typesizes.h 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h 2014-07-25 20:36:06.505333109 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #define __UCLIBC_SLIGHTLY_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_page.h 2014-07-25 20:36:06.505333109 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/wordsize.h uClibc-git/libc/sysdeps/linux/alpha/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/bits/wordsize.h 2014-07-25 20:36:06.505333109 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 64
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/brk.S uClibc-git/libc/sysdeps/linux/alpha/brk.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/brk.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/brk.S 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* __brk is a special syscall under Linux since it never returns an
- error. Instead, the error condition is indicated by returning the old
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/clone.S uClibc-git/libc/sysdeps/linux/alpha/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/clone.S 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/crt1.S uClibc-git/libc/sysdeps/linux/alpha/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/crt1.S 2014-07-25 20:36:06.505333109 +0200
-@@ -32,9 +32,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/regdef.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/divrem.h uClibc-git/libc/sysdeps/linux/alpha/divrem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/divrem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/divrem.h 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The current Alpha chips don't provide hardware for integer
- division. The C compiler expects the functions
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/fpu_control.h uClibc-git/libc/sysdeps/linux/alpha/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/fpu_control.h 2014-07-25 20:36:06.505333109 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ALPHA_FPU_CONTROL_H
- #define _ALPHA_FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-offsets.h 2014-07-25 20:36:06.505333109 +0200
-@@ -0,0 +1,35 @@
-+/* Private macros for accessing __jmp_buf contents. Alpha version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define JB_S0 0
-+#define JB_S1 1
-+#define JB_S2 2
-+#define JB_S3 3
-+#define JB_S4 4
-+#define JB_S5 5
-+#define JB_PC 6
-+#define JB_FP 7
-+#define JB_SP 8
-+#define JB_F2 9
-+#define JB_F3 10
-+#define JB_F4 11
-+#define JB_F5 12
-+#define JB_F6 13
-+#define JB_F7 14
-+#define JB_F8 15
-+#define JB_F9 16
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-unwind.h 2014-07-25 20:36:06.505333109 +0200
-@@ -0,0 +1,23 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame containing a local
-+ variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
-+ ((void *)(_address) < (void *)((_jmpbuf)[JB_SP]))
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__longjmp.S uClibc-git/libc/sysdeps/linux/alpha/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/__longjmp.S 2014-07-25 20:36:06.489333026 +0200
-@@ -12,14 +12,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#define _SETJMP_H
--#define __ASSEMBLY__
--#include <bits/setjmp.h>
-+#include <setjmp-offsets.h>
-
- #define a0 $16
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/Makefile.arch uClibc-git/libc/sysdeps/linux/alpha/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/Makefile.arch 2014-07-25 20:36:06.489333026 +0200
-@@ -5,9 +5,9 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := __syscall_error.c sigprocmask.c
-+CSRC-y := __syscall_error.c sigprocmask.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S brk.S bsd-_setjmp.S bsd-setjmp.S clone.S \
- divl.S divq.S pipe.S reml.S remq.S __syscall_rt_sigaction.S setjmp.S \
- syscall.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/pipe.S uClibc-git/libc/sysdeps/linux/alpha/pipe.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/pipe.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/pipe.S 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/setjmp.S uClibc-git/libc/sysdeps/linux/alpha/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/setjmp.S 2014-07-25 20:36:06.505333109 +0200
-@@ -12,15 +12,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <features.h>
--#define _ASM
--#define _SETJMP_H
--#define __ASSEMBLY__
--#include <bits/setjmp.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <jmpbuf-offsets.h>
-
- #define a0 $16
-
-@@ -30,10 +25,16 @@
- ldgp $29, 0($27)
-
- $sigsetjmp_local:
-- subq $30, 16, $30
-- .frame $26, 16, $26, 0
-- stq $26, 0($30)
-- .mask 0x04000000, -16
-+#ifndef __PIC__
-+# define FRAME 16
-+ subq $30, FRAME, $30
-+ .frame $30, FRAME, $26, 0
-+ stq $26, 0($30)
-+ .mask 0x04000000, -FRAME
-+#else
-+# define FRAME 0
-+ .frame $30, FRAME, $26, 0
-+#endif
- .prologue 1
-
- stq $9, JB_S0*8(a0)
-@@ -43,9 +44,9 @@
- stq $13, JB_S4*8(a0)
- stq $14, JB_S5*8(a0)
- stq $26, JB_PC*8(a0)
-- addq $30, 16, $1
-- stq $15, JB_FP*8(a0)
-+ addq $30, FRAME, $1
- stq $1, JB_SP*8(a0)
-+ stq $15, JB_FP*8(a0)
- stt $f2, JB_F2*8(a0)
- stt $f3, JB_F3*8(a0)
- stt $f4, JB_F4*8(a0)
-@@ -55,12 +56,16 @@
- stt $f8, JB_F8*8(a0)
- stt $f9, JB_F9*8(a0)
-
-+#ifndef __PIC__
- /* Call to C to (potentially) save our signal mask. */
- jsr $26, __sigjmp_save
--
- ldq $26, 0($30)
- addq $30, 16, $30
- ret
-+#else
-+ /* Tailcall to save the signal mask. */
-+ br $31, __sigjmp_save !samegp
-+#endif
-
- .end __sigsetjmp
-
-@@ -71,7 +76,6 @@
- .align 3;
- .ent _setjmp , 0;
- _setjmp:
-- .frame $30 , 0, $26
- ldgp $29, 0($27)
- mov 0, $17
- br $sigsetjmp_local
-@@ -81,11 +85,7 @@
- .align 3;
- .ent setjmp , 0;
- setjmp:
-- .frame $30 , 0, $26
- ldgp $29, 0($27)
- mov 1, $17
- br $sigsetjmp_local
- .end setjmp
--
--.weak _setjmp
--.weak setjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sigprocmask.c uClibc-git/libc/sysdeps/linux/alpha/sigprocmask.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sigprocmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/sigprocmask.c 2014-07-25 20:36:06.505333109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/acct.h uClibc-git/libc/sysdeps/linux/alpha/sys/acct.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/acct.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/sys/acct.h 2014-07-25 20:36:06.513333151 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ACCT_H
-
-@@ -59,7 +58,7 @@
-
-
- /* Switch process accounting on and off. */
--extern int acct (__const char *__filename) __THROW;
-+extern int acct (const char *__filename) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/io.h uClibc-git/libc/sysdeps/linux/alpha/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/sys/io.h 2014-07-25 20:36:06.513333151 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
-
-@@ -23,6 +22,7 @@
-
- __BEGIN_DECLS
-
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges.
-@@ -32,12 +32,12 @@
- E.g., Linux/Alpha for Alpha PCs supports this. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
- /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
- access any I/O port is granted. This call requires root
- privileges. */
- extern int iopl (int __level) __THROW;
-+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
-
- /* Return the physical address of the DENSE I/O memory or NULL if none
- is available (e.g. on a jensen). */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/procfs.h uClibc-git/libc/sysdeps/linux/alpha/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/sys/procfs.h 2014-07-25 20:36:06.513333151 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/ucontext.h uClibc-git/libc/sysdeps/linux/alpha/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/sys/ucontext.h 2014-07-25 20:36:06.513333151 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/user.h uClibc-git/libc/sysdeps/linux/alpha/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/sys/user.h 2014-07-25 20:36:06.513333151 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S uClibc-git/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S 2014-07-25 20:36:06.489333026 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/syscall.h>
-@@ -31,6 +30,9 @@
- .text
-
- .globl __syscall_rt_sigaction
-+#ifndef __UCLIBC_HAS_THREADS_NATIVE__
-+.hidden __syscall_rt_sigaction
-+#endif
- .align 4
- .ent __syscall_rt_sigaction, 0
- __syscall_rt_sigaction:
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/syscall.S uClibc-git/libc/sysdeps/linux/alpha/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/alpha/syscall.S 2014-07-25 20:36:06.513333151 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/regdef.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/byteswap.h uClibc-git/libc/sysdeps/linux/arc/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/byteswap.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/byteswap.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,23 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#ifndef _ASM_BITS_BYTESWAP_H
-+#define _ASM_BITS_BYTESWAP_H 1
-+
-+#ifdef __Xswape /* gcc defined if -mswape is enabled */
-+
-+#define __bswap_non_constant_32(x) \
-+ __extension__ \
-+ ({ unsigned int __bswap_32_v = x; \
-+ __asm__ ("swape %0, %0" : "+r" (__bswap_32_v)); \
-+ __bswap_32_v; })
-+
-+#endif /* __Xswape */
-+
-+#endif /* _ASM_BITS_BYTESWAP_H */
-+
-+#include <bits/byteswap-common.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/endian.h uClibc-git/libc/sysdeps/linux/arc/bits/endian.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/endian.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,15 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+#ifndef _ENDIAN_H
-+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-+#endif
-+
-+/* ARC support either endianness. */
-+#ifdef __BIG_ENDIAN__
-+#define __BYTE_ORDER __BIG_ENDIAN
-+#else
-+#define __BYTE_ORDER __LITTLE_ENDIAN
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/arc/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/fcntl.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,223 @@
-+/* O_*, F_*, FD_* bit values for Linux.
-+ *
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+#ifndef _FCNTL_H
-+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-+#endif
-+
-+
-+#include <sys/types.h>
-+#ifdef __USE_GNU
-+# include <bits/uio.h>
-+#endif
-+
-+/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
-+ located on an ext2 file system */
-+#define O_ACCMODE 0003
-+#define O_RDONLY 00
-+#define O_WRONLY 01
-+#define O_RDWR 02
-+#define O_CREAT 0100 /* not fcntl */
-+#define O_EXCL 0200 /* not fcntl */
-+#define O_NOCTTY 0400 /* not fcntl */
-+#define O_TRUNC 01000 /* not fcntl */
-+#define O_APPEND 02000
-+#define O_NONBLOCK 04000
-+#define O_NDELAY O_NONBLOCK
-+#define O_SYNC 010000
-+#define O_FSYNC O_SYNC
-+#define O_ASYNC 020000
-+
-+#ifdef __USE_GNU
-+# define O_DIRECT 040000 /* Direct disk access. */
-+# define O_DIRECTORY 0200000 /* Must be a directory. */
-+# define O_NOFOLLOW 0400000 /* Do not follow links. */
-+# define O_NOATIME 01000000 /* Do not set atime. */
-+# define O_CLOEXEC 02000000 /* Set close_on_exec. */
-+#endif
-+
-+#ifdef __USE_LARGEFILE64
-+# define O_LARGEFILE 0100000
-+#endif
-+
-+/* For now Linux has synchronisity options for data and read operations.
-+ We define the symbols here but let them do the same as O_SYNC since
-+ this is a superset. */
-+#if defined __USE_POSIX199309 || defined __USE_UNIX98
-+# define O_DSYNC O_SYNC /* Synchronize data. */
-+# define O_RSYNC O_SYNC /* Synchronize read operations. */
-+#endif
-+
-+/* Values for the second argument to `fcntl'. */
-+#define F_DUPFD 0 /* Duplicate file descriptor. */
-+#define F_GETFD 1 /* Get file descriptor flags. */
-+#define F_SETFD 2 /* Set file descriptor flags. */
-+#define F_GETFL 3 /* Get file status flags. */
-+#define F_SETFL 4 /* Set file status flags. */
-+
-+#ifndef __USE_FILE_OFFSET64
-+# define F_GETLK 5 /* Get record locking info. */
-+# define F_SETLK 6 /* Set record locking info (non-blocking). */
-+# define F_SETLKW 7 /* Set record locking info (blocking). */
-+#else
-+# define F_GETLK F_GETLK64 /* Get record locking info. */
-+# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
-+# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
-+#endif
-+#define F_GETLK64 12 /* Get record locking info. */
-+#define F_SETLK64 13 /* Set record locking info (non-blocking). */
-+#define F_SETLKW64 14 /* Set record locking info (blocking). */
-+
-+#if defined __USE_BSD || defined __USE_XOPEN2K
-+# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
-+# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
-+#endif
-+
-+#ifdef __USE_GNU
-+# define F_SETSIG 10 /* Set number of signal to be sent. */
-+# define F_GETSIG 11 /* Get number of signal to be sent. */
-+#endif
-+
-+#ifdef __USE_GNU
-+# define F_SETLEASE 1024 /* Set a lease. */
-+# define F_GETLEASE 1025 /* Enquire what lease is active. */
-+# define F_NOTIFY 1026 /* Request notfications on a directory. */
-+# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
-+ close-on-exit set on new fd. */
-+#endif
-+
-+/* For F_[GET|SET]FL. */
-+#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
-+
-+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
-+#define F_RDLCK 0 /* Read lock. */
-+#define F_WRLCK 1 /* Write lock. */
-+#define F_UNLCK 2 /* Remove lock. */
-+
-+/* For old implementation of bsd flock(). */
-+#define F_EXLCK 4 /* or 3 */
-+#define F_SHLCK 8 /* or 4 */
-+
-+#ifdef __USE_BSD
-+/* Operations for bsd flock(), also used by the kernel implementation. */
-+# define LOCK_SH 1 /* shared lock */
-+# define LOCK_EX 2 /* exclusive lock */
-+# define LOCK_NB 4 /* or'd with one of the above to prevent
-+ blocking */
-+# define LOCK_UN 8 /* remove lock */
-+#endif
-+
-+#ifdef __USE_GNU
-+# define LOCK_MAND 32 /* This is a mandatory flock: */
-+# define LOCK_READ 64 /* ... which allows concurrent read operations. */
-+# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
-+# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
-+#endif
-+
-+#ifdef __USE_GNU
-+/* Types of directory notifications that may be requested with F_NOTIFY. */
-+# define DN_ACCESS 0x00000001 /* File accessed. */
-+# define DN_MODIFY 0x00000002 /* File modified. */
-+# define DN_CREATE 0x00000004 /* File created. */
-+# define DN_DELETE 0x00000008 /* File removed. */
-+# define DN_RENAME 0x00000010 /* File renamed. */
-+# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
-+# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
-+#endif
-+
-+struct flock
-+ {
-+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
-+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
-+#ifndef __USE_FILE_OFFSET64
-+ __off_t l_start; /* Offset where the lock begins. */
-+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
-+#else
-+ __off64_t l_start; /* Offset where the lock begins. */
-+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
-+#endif
-+ __pid_t l_pid; /* Process holding the lock. */
-+ };
-+
-+#ifdef __USE_LARGEFILE64
-+struct flock64
-+ {
-+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
-+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
-+ __off64_t l_start; /* Offset where the lock begins. */
-+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
-+ __pid_t l_pid; /* Process holding the lock. */
-+ };
-+#endif
-+
-+/* Define some more compatibility macros to be backward compatible with
-+ BSD systems which did not managed to hide these kernel macros. */
-+#ifdef __USE_BSD
-+# define FAPPEND O_APPEND
-+# define FFSYNC O_FSYNC
-+# define FASYNC O_ASYNC
-+# define FNONBLOCK O_NONBLOCK
-+# define FNDELAY O_NDELAY
-+#endif /* Use BSD. */
-+
-+/* Advise to `posix_fadvise'. */
-+#ifdef __USE_XOPEN2K
-+# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
-+# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
-+# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
-+# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
-+# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
-+# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
-+#endif
-+
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
-+/* Flags for SYNC_FILE_RANGE. */
-+# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
-+ in the range before performing the
-+ write. */
-+# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
-+ dirty pages in the range which are
-+ not presently under writeback. */
-+# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
-+ the range after performing the
-+ write. */
-+
-+/* Flags for SPLICE and VMSPLICE. */
-+# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
-+# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
-+ (but we may still block on the fd
-+ we splice from/to). */
-+# define SPLICE_F_MORE 4 /* Expect more data. */
-+# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
-+#endif
-+
-+__BEGIN_DECLS
-+
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
-+
-+/* Provide kernel hint to read ahead. */
-+extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-+ __THROW;
-+
-+/* Selective file content synch'ing. */
-+extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
-+ unsigned int __flags);
-+
-+/* Splice address range into a pipe. */
-+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
-+ size_t __count, unsigned int __flags);
-+
-+/* Splice two files together. */
-+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
-+ __off64_t *__offout, size_t __len,
-+ unsigned int __flags);
-+
-+/* In-kernel implementation of tee for pipe buffers. */
-+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
-+ unsigned int __flags);
-+
-+#endif
-+__END_DECLS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/arc/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/kernel_types.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/kernel_types.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,59 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/* Note that we use the exact same include guard #define names
-+ * as asm/posix_types.h. This will avoid gratuitous conflicts
-+ * with the posix_types.h kernel header, and will ensure that
-+ * our private content, and not the kernel header, will win.
-+ * -Erik
-+ *
-+ * Update: ARC Linux 3.2 ABI change - asm-generic/posix_types.h used now.
-+ * for which ARCH wrapper (asm/posix_types.h) is generated, so need to use
-+ * the asm-generic file's gaurd.
-+ *
-+ * Based on asm-generic/stat.h
-+ */
-+
-+#ifndef __ASM_GENERIC_POSIX_TYPES_H
-+#define __ASM_GENERIC_POSIX_TYPES_H
-+
-+typedef unsigned long __kernel_dev_t;
-+typedef unsigned long __kernel_ino_t;
-+typedef unsigned int __kernel_mode_t;
-+typedef unsigned int __kernel_nlink_t;
-+typedef long __kernel_off_t;
-+typedef int __kernel_pid_t;
-+typedef int __kernel_ipc_pid_t;
-+typedef unsigned int __kernel_uid_t;
-+typedef unsigned int __kernel_gid_t;
-+typedef unsigned int __kernel_size_t;
-+typedef int __kernel_ssize_t;
-+typedef int __kernel_ptrdiff_t;
-+typedef long __kernel_time_t;
-+typedef long __kernel_suseconds_t;
-+typedef long __kernel_clock_t;
-+typedef int __kernel_daddr_t;
-+typedef char * __kernel_caddr_t;
-+typedef unsigned short __kernel_uid16_t;
-+typedef unsigned short __kernel_gid16_t;
-+typedef __kernel_uid_t __kernel_uid32_t;
-+typedef __kernel_gid_t __kernel_gid32_t;
-+typedef __kernel_uid_t __kernel_old_uid_t;
-+typedef __kernel_gid_t __kernel_old_gid_t;
-+typedef long long __kernel_loff_t;
-+typedef unsigned int __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-+
-+typedef struct {
-+#ifdef __USE_ALL
-+ int val[2];
-+#else
-+ int __val[2];
-+#endif
-+} __kernel_fsid_t;
-+
-+#endif /* _ASM_ARC_POSIX_TYPES_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/arc/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/setjmp.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,16 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _BITS_SETJMP_H
-+#define _BITS_SETJMP_H 1
-+
-+#if !defined _SETJMP_H && !defined _PTHREAD_H
-+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-+#endif
-+
-+typedef int __jmp_buf[13+1+1+1]; /*r13-r25, fp, sp, blink */
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/arc/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/sigcontextinfo.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,15 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+#define SIGCONTEXT struct sigcontext *
-+#define SIGCONTEXT_EXTRA_ARGS
-+
-+#define GET_PC(ctx) ((void *) ctx->regs.scratch.ret)
-+#define GET_FRAME(ctx) ((void *) ctx->regs.scratch.fp)
-+#define GET_STACK(ctx) ((void *) ctx->regs.scratch.sp)
-+#define CALL_SIGHANDLER(handler, signo, ctx) \
-+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/arc/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/stackinfo.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/stackinfo.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,13 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _STACKINFO_H
-+#define _STACKINFO_H 1
-+
-+/* On ARC, the stack grows down. */
-+#define _STACK_GROWS_DOWN 1
-+
-+#endif /* stackinfo.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/syscalls.h uClibc-git/libc/sysdeps/linux/arc/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/syscalls.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/syscalls.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,183 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+#ifndef _BITS_SYSCALLS_H
-+#define _BITS_SYSCALLS_H
-+#ifndef _SYSCALL_H
-+#error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
-+#endif
-+
-+#ifndef __ASSEMBLER__
-+
-+#include <errno.h>
-+
-+/*
-+ * Fine tuned code for errno handling in syscall wrappers.
-+ *
-+ * 1. __syscall_error(raw_syscall_ret_val) is used to set the errno (vs.
-+ * the typical __set_errno). This helps elide the generated code for
-+ * GOT fetch for __errno_location pointer etc, in each wrapper.
-+ *
-+ * 2. The call to above is also disguised in inline asm. This elides
-+ * unconditional save/restore of a few callee regs which gcc almost
-+ * always generates if the call is exposed
-+ *
-+ * 3. The function can't be hidden because wrappers from librt et all also
-+ * call it. However hidden is not really needed to bypass PLT for
-+ * intra-libc calls as the branch insn w/o @plt is sufficient.
-+ */
-+
-+#ifdef IS_IN_rtld
-+/* ldso doesn't have real errno */
-+#define ERRNO_ERRANDS(_sys_result)
-+#else /* !IS_IN_rtld */
-+extern int __syscall_error (int);
-+#ifndef IS_IN_libc
-+/* Inter-libc callers use PLT */
-+#define CALL_ERRNO_SETTER "bl __syscall_error@plt \n\t"
-+#else
-+/* intra-libc callers, despite PIC can bypass PLT */
-+#define CALL_ERRNO_SETTER "bl __syscall_error \n\t"
-+#endif
-+
-+#define ERRNO_ERRANDS(_sys_result) \
-+ __asm__ volatile ( \
-+ "st.a blink, [sp, -4] \n\t" \
-+ CALL_ERRNO_SETTER \
-+ "ld.ab blink, [sp, 4] \n\t" \
-+ :"+r" (_sys_result) \
-+ : \
-+ :"r1","r2","r3","r4","r5","r6", \
-+ "r7","r8","r9","r10","r11","r12" \
-+ );
-+
-+#endif /* IS_IN_rtld */
-+
-+/* -1 to -1023 as valid error values will suffice for some time */
-+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
-+ ((unsigned int) (val) > (unsigned int) -1024)
-+
-+/*
-+ * Standard sycall wrapper
-+ * -Gets syscall name (conv to __NR_xxx)
-+ * -sets errno, return success/error-codes
-+ */
-+#define INLINE_SYSCALL(name, nr_args, args...) \
-+({ \
-+ register int __res __asm__("r0"); \
-+ __res = INTERNAL_SYSCALL_NCS(__NR_##name, , nr_args, args); \
-+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
-+ { \
-+ ERRNO_ERRANDS(__res); \
-+ } \
-+ __res; \
-+})
-+
-+/* variant of INLINE_SYSCALL, gets syscall number
-+ */
-+#define INLINE_SYSCALL_NCS(num, nr_args, args...) \
-+({ \
-+ register int __res __asm__("r0"); \
-+ __res = INTERNAL_SYSCALL_NCS(num, , nr_args, args); \
-+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
-+ { \
-+ ERRNO_ERRANDS(__res); \
-+ } \
-+ __res; \
-+})
-+
-+/*-------------------------------------------------------------------------
-+ * Mechanics of Trap - specific to ARC700
-+ *
-+ * Note the memory clobber is not strictly needed for intended semantics of
-+ * the inline asm. However some of the cases, such as old-style 6 arg mmap
-+ * gcc was generating code for inline syscall ahead of buffer packing needed
-+ * for syscall itself.
-+ *-------------------------------------------------------------------------*/
-+
-+#define ARC_TRAP_INSN "trap0 \n\t"
-+
-+#define INTERNAL_SYSCALL_NCS(nm, err, nr_args, args...) \
-+({ \
-+ /* Per ABI, r0 is 1st arg and return reg */ \
-+ register int __ret __asm__("r0"); \
-+ register int _sys_num __asm__("r8"); \
-+ \
-+ LOAD_ARGS_##nr_args (nm, args) \
-+ \
-+ __asm__ volatile ( \
-+ ARC_TRAP_INSN \
-+ : "+r" (__ret) \
-+ : "r"(_sys_num) ASM_ARGS_##nr_args \
-+ : "memory"); \
-+ \
-+ __ret; \
-+})
-+
-+/* Macros for setting up inline __asm__ input regs */
-+#define ASM_ARGS_0
-+#define ASM_ARGS_1 ASM_ARGS_0, "r" (__ret)
-+#define ASM_ARGS_2 ASM_ARGS_1, "r" (_arg2)
-+#define ASM_ARGS_3 ASM_ARGS_2, "r" (_arg3)
-+#define ASM_ARGS_4 ASM_ARGS_3, "r" (_arg4)
-+#define ASM_ARGS_5 ASM_ARGS_4, "r" (_arg5)
-+#define ASM_ARGS_6 ASM_ARGS_5, "r" (_arg6)
-+#define ASM_ARGS_7 ASM_ARGS_6, "r" (_arg7)
-+
-+/* Macros for converting sys-call wrapper args into sys call args */
-+#define LOAD_ARGS_0(nm, arg) \
-+ _sys_num = (int) (nm); \
-+
-+#define LOAD_ARGS_1(nm, arg1) \
-+ __ret = (int) (arg1); \
-+ LOAD_ARGS_0 (nm, arg1)
-+
-+/*
-+ * Note that the use of _tmpX might look superflous, however it is needed
-+ * to ensure that register variables are not clobbered if arg happens to be
-+ * a function call itself. e.g. sched_setaffinity() calling getpid() for arg2
-+ *
-+ * Also this specific order of recursive calling is important to segregate
-+ * the tmp args evaluation (function call case described above) and assigment
-+ * of register variables
-+ */
-+#define LOAD_ARGS_2(nm, arg1, arg2) \
-+ int _tmp2 = (int) (arg2); \
-+ LOAD_ARGS_1 (nm, arg1) \
-+ register int _arg2 __asm__ ("r1") = _tmp2;
-+
-+#define LOAD_ARGS_3(nm, arg1, arg2, arg3) \
-+ int _tmp3 = (int) (arg3); \
-+ LOAD_ARGS_2 (nm, arg1, arg2) \
-+ register int _arg3 __asm__ ("r2") = _tmp3;
-+
-+#define LOAD_ARGS_4(nm, arg1, arg2, arg3, arg4) \
-+ int _tmp4 = (int) (arg4); \
-+ LOAD_ARGS_3 (nm, arg1, arg2, arg3) \
-+ register int _arg4 __asm__ ("r3") = _tmp4;
-+
-+#define LOAD_ARGS_5(nm, arg1, arg2, arg3, arg4, arg5) \
-+ int _tmp5 = (int) (arg5); \
-+ LOAD_ARGS_4 (nm, arg1, arg2, arg3, arg4) \
-+ register int _arg5 __asm__ ("r4") = _tmp5;
-+
-+#define LOAD_ARGS_6(nm, arg1, arg2, arg3, arg4, arg5, arg6) \
-+ int _tmp6 = (int) (arg6); \
-+ LOAD_ARGS_5 (nm, arg1, arg2, arg3, arg4, arg5) \
-+ register int _arg6 __asm__ ("r5") = _tmp6;
-+
-+#define LOAD_ARGS_7(nm, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
-+ int _tmp7 = (int) (arg7); \
-+ LOAD_ARGS_6 (nm, arg1, arg2, arg3, arg4, arg5, arg6) \
-+ register int _arg7 __asm__ ("r6") = _tmp7;
-+
-+#else
-+
-+#define ARC_TRAP_INSN trap0
-+
-+#endif /* __ASSEMBLER__ */
-+
-+#endif /* _BITS_SYSCALLS_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,53 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/*
-+ * Track misc arch-specific features that aren't config options
-+ */
-+
-+#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
-+#define _BITS_UCLIBC_ARCH_FEATURES_H
-+
-+/* instruction used when calling abort() to kill yourself */
-+#define __UCLIBC_ABORT_INSTRUCTION__ "flag 0"
-+
-+/* can your target use syscall6() for mmap ? */
-+#undef __UCLIBC_MMAP_HAS_6_ARGS__
-+
-+/* does your target use syscall4() for truncate64 ? (32bit arches only) */
-+#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+
-+/* does your target have a broken create_module() ? */
-+#undef __UCLIBC_BROKEN_CREATE_MODULE__
-+
-+/* does your target have to worry about older [gs]etrlimit() ? */
-+#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
-+
-+/* does your target have an asm .set ? */
-+#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
-+
-+/* define if target doesn't like .global */
-+#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
-+
-+/* define if target supports .weak */
-+#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
-+
-+/* define if target supports .weakext */
-+#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
-+
-+/* needed probably only for ppc64 */
-+#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
-+
-+/* define if target supports CFI pseudo ops */
-+#undef __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__
-+
-+/* define if target supports IEEE signed zero floats */
-+#define __UCLIBC_HAVE_SIGNED_ZERO__
-+
-+/* The default ';' is a comment on ARC. */
-+#define __UCLIBC_ASM_LINE_SEP__ `
-+
-+#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_page.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,26 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _UCLIBC_PAGE_H
-+#define _UCLIBC_PAGE_H
-+
-+/*
-+ * ARC700/linux supports 4k, 8k, 16k pages (build time).
-+ * We rely on the kernel exported header (aka uapi headers since 3.8)
-+ * for PAGE_SIZE and friends. This avoids hand-editing here when building
-+ * toolchain.
-+ *
-+ * Although uClibc determines page size dynamically, from kernel's auxv which
-+ * ARC Linux does pass, still the generic code needs a fall back
-+ * _dl_pagesize = auxvt[AT_PAGESZ].a_un.a_val ? : PAGE_SIZE
-+ *
-+ */
-+#include <asm/page.h>
-+
-+/* TBD: fix this with runtime value for a PAGE_SIZE agnostic uClibc */
-+#define MMAP2_PAGE_SHIFT PAGE_SHIFT
-+
-+#endif /* _UCLIBC_PAGE_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/wordsize.h uClibc-git/libc/sysdeps/linux/arc/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/wordsize.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bits/wordsize.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/arc/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-setjmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bsd-setjmp.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,20 @@
-+/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. ARC version.
-+ *
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
-+ We cannot do it in C because it must be a tail-call, so frame-unwinding
-+ in setjmp doesn't clobber the state restored by longjmp. */
-+
-+#include <sysdep.h>
-+
-+;@ r0 = jump buffer into which regs will be saved
-+
-+ENTRY(setjmp)
-+ b.d __sigsetjmp
-+ mov r1, 1 ; save signals
-+END(setjmp)
-+libc_hidden_def(setjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/arc/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-_setjmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/bsd-_setjmp.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,20 @@
-+/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. ARC version.
-+ *
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
-+ We cannot do it in C because it must be a tail-call, so frame-unwinding
-+ in setjmp doesn't clobber the state restored by longjmp. */
-+
-+#include <sysdep.h>
-+
-+;@ r0 = jump buffer into which regs will be saved
-+
-+ENTRY(_setjmp)
-+ b.d __sigsetjmp
-+ mov r1, 0 ; don't save signals
-+END(_setjmp)
-+libc_hidden_def(_setjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/cacheflush.c uClibc-git/libc/sysdeps/linux/arc/cacheflush.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/cacheflush.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/cacheflush.c 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,11 @@
-+/* cacheflush syscall for ARC
-+ *
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <sys/cachectl.h>
-+
-+_syscall3(int, cacheflush, void *, addr, int, nbytes, int, op)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/clone.S uClibc-git/libc/sysdeps/linux/arc/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/clone.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/clone.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,71 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <asm/errno.h>
-+#include <sys/syscall.h>
-+#include <sysdep.h>
-+
-+; Per man, libc clone( ) is as follows
-+;
-+; int clone(int (*fn)(void *), void *child_stack,
-+; int flags, void *arg, ...
-+; /* pid_t *ptid, struct user_desc *tls, pid_t *ctid */);
-+;
-+; NOTE: I'm assuming that the last 3 args are NOT var-args and in case all
-+; 3 are not relevant, caller will nevertheless pass those as NULL.
-+; Current (Jul 2012) upstream powerpc/clone.S assumes similarly.
-+; Our LTP (from 2007) doesn't seem to have tests to prove otherwise
-+
-+; clone syscall in kernel
-+;
-+; int sys_clone(unsigned long clone_flags, unsigned long newsp,
-+; int __user *parent_tidptr, void *tls,
-+; int __user *child_tidptr)
-+
-+
-+ENTRY(clone)
-+ cmp r0, 0 ; @fn can't be NULL
-+ cmp.ne r1, 0 ; @child_stack can't be NULL
-+ bz .L__sys_err
-+
-+ ; @fn and @args needed after the syscall for child
-+ ; However r3 containing @arg will be clobbered BEFORE syscall
-+ ; r0 containg @fn will be clobbered AFTER syscall (with ret val)
-+ mov r10, r0
-+ mov r11, r3
-+
-+ ; adjust libc args for syscall
-+ mov r0, r2 ; libc @flags is 1st syscall arg
-+ mov r2, r4 ; libc @ptid
-+ mov r3, r5 ; libc @tls
-+ mov r4, r6 ; libc @ctid
-+ mov r8, __NR_clone
-+ ARC_TRAP_INSN
-+
-+ cmp r0, 0 ; return code : 0 new process, !0 parent
-+ blt .L__sys_err2 ; < 0 (signed) error
-+ jnz [blink] ; Parent returns
-+
-+ ; child jumps off to @fn with @arg as argument, and returns here
-+ jl.d [r10]
-+ mov r0, r11
-+
-+ ; falls thru to _exit() with result from @fn (already in r0)
-+ b HIDDEN_JUMPTARGET(_exit)
-+
-+.L__sys_err:
-+ mov r0, -EINVAL
-+.L__sys_err2:
-+ ; (1) No need to make -ve kernel error code as positive errno
-+ ; __syscall_error expects the -ve error code returned by kernel
-+ ; (2) r0 still had orig -ve kernel error code
-+ ; (3) Tail call to __syscall_error so we dont have to come back
-+ ; here hence instead of jmp-n-link (reg push/pop) we do jmp
-+ ; (4) No need to route __syscall_error via PLT, B is inherently
-+ ; position independent
-+ b __syscall_error
-+END(clone)
-+libc_hidden_def(clone)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crt1.S uClibc-git/libc/sysdeps/linux/arc/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crt1.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/crt1.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,57 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+
-+.text
-+
-+#ifndef __UCLIBC_CTOR_DTOR__
-+ .weak _init
-+ .weak _fini
-+#endif
-+
-+/* Stick in a dummy reference to main(), so that if an application
-+ * is linking when the main() function is in a static library (.a)
-+ * we can be sure that main() actually gets linked in
-+ */
-+ .type main,@function
-+ .type _main,@function
-+
-+
-+/* When we enter this piece of code, the program stack looks like this:
-+ argc argument counter (integer)
-+ argv[0] program name (pointer)
-+ argv[1...N] program args (pointers)
-+ argv[argc-1] end of args (integer)
-+ NULL
-+ env[0...N] environment variables (pointers)
-+ NULL
-+*/
-+ .text
-+ .align 4
-+ .global __start
-+ .hidden __start
-+ .type __start,@function
-+__start:
-+ mov fp, 0
-+ ld_s r1, [sp] ; argc
-+
-+ mov_s r5, r0 ; rltd_fini
-+ add_s r2, sp, 4 ; argv
-+
-+ mov_s r0, main
-+ mov_s r3, _init
-+ mov r4, _fini
-+
-+ and sp, sp, -8
-+ mov r6, sp
-+
-+ /* __uClibc_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
-+ bl __uClibc_main
-+
-+ /* Should never get here.... */
-+ flag 1
-+.size __start,.-__start
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crti.S uClibc-git/libc/sysdeps/linux/arc/crti.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crti.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/crti.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,27 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+___gnu_compiled_c:
-+
-+ .section .init
-+ .align 4
-+ .global _init
-+ .type _init,@function
-+_init:
-+ st.a blink,[sp,-4]
-+ st.a fp,[sp,-4]
-+ mov fp,sp
-+
-+
-+ .section .fini
-+ .align 4
-+ .global _fini
-+ .type _fini,@function
-+_fini:
-+ st.a blink,[sp,-4]
-+ st.a fp,[sp,-4]
-+ mov fp,sp
-+ .align 4
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crtn.S uClibc-git/libc/sysdeps/linux/arc/crtn.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crtn.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/crtn.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,29 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+___gnu_compiled_c:
-+
-+ .section .init
-+ .align 4
-+ .global _init
-+ .type _init,@function
-+ ; EPILOGUE
-+ ld.ab fp,[sp,4]
-+ ld blink,[sp,0]
-+ j.d [blink]
-+ add sp,sp,4
-+; .size _init,.-_init
-+
-+ .section .fini
-+ .align 4
-+ .global _fini
-+ .type _fini,@function
-+ ; EPILOGUE
-+ ld.ab fp,[sp,4]
-+ ld blink,[sp,0]
-+ j.d [blink]
-+ add sp,sp,4
-+; .size _fini,.-_fini
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/arc/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/jmpbuf-offsets.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define __JMP_BUF_SP (13+1)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/arc/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/jmpbuf-unwind.h 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,13 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/__longjmp.S uClibc-git/libc/sysdeps/linux/arc/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/__longjmp.S 2014-07-25 20:36:06.533333255 +0200
-@@ -0,0 +1,38 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+
-+;@ r0 = jump buffer from which regs will be restored
-+;@ r1 = value that setjmp( ) will return due to this longjmp
-+
-+ENTRY(__longjmp)
-+
-+ ld_s r13, [r0]
-+ ld_s r14, [r0,4]
-+ ld r15, [r0,8]
-+ ld r16, [r0,12]
-+ ld r17, [r0,16]
-+ ld r18, [r0,20]
-+ ld r19, [r0,24]
-+ ld r20, [r0,28]
-+ ld r21, [r0,32]
-+ ld r22, [r0,36]
-+ ld r23, [r0,40]
-+ ld r24, [r0,44]
-+ ld r25, [r0,48]
-+
-+ ld blink, [r0,60] ; load it early enough to not stall the pipeline
-+ ld fp, [r0,52]
-+ ld sp, [r0,56]
-+
-+ mov.f r0, r1 ; get the setjmp return value(due to longjmp) in place
-+
-+ j.d [blink] ; to caller of setjmp location, right after the call
-+ mov.z r0, 1 ; can't let setjmp return 0 when it is due to longjmp
-+
-+END(__longjmp)
-+libc_hidden_def(__longjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile uClibc-git/libc/sysdeps/linux/arc/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/Makefile 2014-07-25 20:36:06.533333255 +0200
-@@ -0,0 +1,13 @@
-+# Makefile for uClibc
-+#
-+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+top_srcdir=../../../../
-+top_builddir=../../../../
-+all: objs
-+include $(top_builddir)Rules.mak
-+include Makefile.arch
-+include $(top_srcdir)Makerules
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile.arch uClibc-git/libc/sysdeps/linux/arc/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/Makefile.arch 2014-07-25 20:36:06.533333255 +0200
-@@ -0,0 +1,11 @@
-+# Makefile for uClibc
-+#
-+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+CSRC-y := syscall.c sigaction.c __syscall_error.c cacheflush.c
-+
-+SSRC-y := sigrestorer.S __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
-+ vfork.S clone.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/setjmp.S uClibc-git/libc/sysdeps/linux/arc/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/setjmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/setjmp.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,39 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+
-+;@ r0 = jump buffer into which regs will be saved
-+;@ r1 = do we need to save signals
-+
-+ENTRY(__sigsetjmp)
-+
-+ st_s r13, [r0]
-+ st_s r14, [r0,4]
-+ st r15, [r0,8]
-+ st r16, [r0,12]
-+ st r17, [r0,16]
-+ st r18, [r0,20]
-+ st r19, [r0,24]
-+ st r20, [r0,28]
-+ st r21, [r0,32]
-+ st r22, [r0,36]
-+ st r23, [r0,40]
-+ st r24, [r0,44]
-+ st r25, [r0,48]
-+ st fp, [r0,52]
-+ st sp, [r0,56]
-+
-+ ; make a note of where longjmp will return to.
-+ ; that will be right next to this setjmp call-site which will be
-+ ; contained in blink, since "C" caller of this routine will do
-+ ; a branch-n-link
-+
-+ st blink, [r0,60]
-+ b __sigjmp_save
-+
-+END(__sigsetjmp)
-+libc_hidden_def(__sigsetjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigaction.c uClibc-git/libc/sysdeps/linux/arc/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigaction.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sigaction.c 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,52 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <errno.h>
-+#include <signal.h>
-+#include <string.h>
-+#include <sys/syscall.h>
-+#include <bits/kernel_sigaction.h>
-+
-+extern void __default_rt_sa_restorer(void);
-+//libc_hidden_proto(__default_rt_sa_restorer);
-+
-+#define SA_RESTORER 0x04000000
-+
-+/* If @act is not NULL, change the action for @sig to @act.
-+ If @oact is not NULL, put the old action for @sig in @oact. */
-+int
-+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
-+{
-+ struct sigaction kact;
-+
-+ /* !act means caller only wants to know @oact
-+ * Hence only otherwise, do SA_RESTORER stuff
-+ *
-+ * For the normal/default cases (user not providing SA_RESTORER) use
-+ * a real sigreturn stub to avoid kernel synthesizing one on user stack
-+ * at runtime, which needs PTE permissions update (hence TLB entry
-+ * update) and costly cache line flushes for code modification
-+ */
-+ if (act && !(act->sa_flags & SA_RESTORER)) {
-+ memcpy(&kact, act, sizeof(kact));
-+ kact.sa_restorer = __default_rt_sa_restorer;
-+ kact.sa_flags |= SA_RESTORER;
-+
-+ act = &kact;
-+ }
-+
-+ return __syscall_rt_sigaction(sig, act, oact, sizeof(act->sa_mask));
-+}
-+
-+#ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
-+weak_alias(__libc_sigaction,sigaction)
-+libc_hidden_weak(sigaction)
-+# endif
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigrestorer.S uClibc-git/libc/sysdeps/linux/arc/sigrestorer.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigrestorer.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sigrestorer.S 2014-07-25 20:36:06.549333339 +0200
-@@ -0,0 +1,21 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sysdep.h>
-+#include <sys/syscall.h>
-+
-+/*
-+ * Provide a real sigreturn stub to avoid kernel synthesizing one
-+ * on user stack at runtime, which needs PTE permissions update
-+ * (hence TLB entry update) and costly cache line flushes for
-+ * code modification
-+ */
-+
-+ENTRY(__default_rt_sa_restorer)
-+ mov r8, __NR_rt_sigreturn
-+ ARC_TRAP_INSN
-+END(__default_rt_sa_restorer)
-+libc_hidden_def(__default_rt_sa_restorer)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/cachectl.h uClibc-git/libc/sysdeps/linux/arc/sys/cachectl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/cachectl.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sys/cachectl.h 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,21 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _SYS_CACHECTL_H
-+#define _SYS_CACHECTL_H 1
-+
-+/*
-+ * Get the kernel definition for the flag bits
-+ */
-+#include <asm/cachectl.h>
-+
-+__BEGIN_DECLS
-+
-+extern int cacheflush(void *addr, int nbytes, int flags);
-+
-+__END_DECLS
-+
-+#endif /* sys/cachectl.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/procfs.h uClibc-git/libc/sysdeps/linux/arc/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/procfs.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sys/procfs.h 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,109 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _SYS_PROCFS_H
-+#define _SYS_PROCFS_H 1
-+
-+/* This is somewhat modelled after the file of the same name on SVR4
-+ systems. It provides a definition of the core file format for ELF
-+ used on Linux. It doesn't have anything to do with the /proc file
-+ system, even though Linux has one.
-+
-+ Anyway, the whole purpose of this file is for GDB and GDB only.
-+ Don't read too much into it. Don't use it for anything other than
-+ GDB unless you know what you are doing. */
-+
-+#include <features.h>
-+#include <sys/time.h>
-+#include <sys/types.h>
-+#include <sys/user.h>
-+
-+__BEGIN_DECLS
-+
-+/* Type for a general-purpose register. */
-+typedef unsigned long elf_greg_t;
-+
-+/* And the whole bunch of them. We could have used `struct
-+ user_regs' directly in the typedef, but tradition says that
-+ the register set is an array, which does have some peculiar
-+ semantics, so leave it that way. */
-+#define ELF_NGREG 40
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+typedef struct { } elf_fpregset_t;
-+
-+/* Signal info. */
-+struct elf_siginfo
-+ {
-+ int si_signo; /* Signal number. */
-+ int si_code; /* Extra code. */
-+ int si_errno; /* Errno. */
-+ };
-+
-+/* Definitions to generate Intel SVR4-like core files. These mostly
-+ have the same names as the SVR4 types with "elf_" tacked on the
-+ front to prevent clashes with Linux definitions, and the typedef
-+ forms have been avoided. This is mostly like the SVR4 structure,
-+ but more Linuxy, with things that Linux does not support and which
-+ GDB doesn't really use excluded. */
-+
-+struct elf_prstatus
-+ {
-+ struct elf_siginfo pr_info; /* Info associated with signal. */
-+ short int pr_cursig; /* Current signal. */
-+ unsigned long int pr_sigpend; /* Set of pending signals. */
-+ unsigned long int pr_sighold; /* Set of held signals. */
-+ __pid_t pr_pid;
-+ __pid_t pr_ppid;
-+ __pid_t pr_pgrp;
-+ __pid_t pr_sid;
-+ struct timeval pr_utime; /* User time. */
-+ struct timeval pr_stime; /* System time. */
-+ struct timeval pr_cutime; /* Cumulative user time. */
-+ struct timeval pr_cstime; /* Cumulative system time. */
-+ elf_gregset_t pr_reg; /* GP registers. */
-+ int pr_fpvalid; /* True if math copro being used. */
-+ };
-+
-+
-+#define ELF_PRARGSZ (80) /* Number of chars for args. */
-+
-+struct elf_prpsinfo
-+ {
-+ char pr_state; /* Numeric process state. */
-+ char pr_sname; /* Char for pr_state. */
-+ char pr_zomb; /* Zombie. */
-+ char pr_nice; /* Nice val. */
-+ unsigned long int pr_flag; /* Flags. */
-+ unsigned short int pr_uid;
-+ unsigned short int pr_gid;
-+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
-+ /* Lots missing */
-+ char pr_fname[16]; /* Filename of executable. */
-+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
-+ };
-+
-+/* The rest of this file provides the types for emulation of the
-+ Solaris <proc_service.h> interfaces that should be implemented by
-+ users of libthread_db. */
-+
-+/* Addresses. */
-+typedef void *psaddr_t;
-+
-+/* Register sets. Linux has different names. */
-+typedef elf_gregset_t prgregset_t;
-+typedef elf_fpregset_t prfpregset_t;
-+
-+/* We don't have any differences between processes and threads,
-+ therefore have only one PID type. */
-+typedef __pid_t lwpid_t;
-+
-+/* Process status and info. In the end we do provide typedefs for them. */
-+typedef struct elf_prstatus prstatus_t;
-+typedef struct elf_prpsinfo prpsinfo_t;
-+
-+__END_DECLS
-+
-+#endif /* sys/procfs.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/arc/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sys/ucontext.h 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,22 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _SYS_UCONTEXT_H
-+#define _SYS_UCONTEXT_H 1
-+
-+#include <features.h>
-+#include <signal.h>
-+#include <bits/sigcontext.h>
-+
-+typedef struct ucontext {
-+ unsigned long uc_flags;
-+ struct ucontext *uc_link;
-+ stack_t uc_stack;
-+ struct sigcontext uc_mcontext;
-+ sigset_t uc_sigmask; /* mask last for extensibility */
-+} ucontext_t;
-+
-+#endif /* sys/ucontext.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/user.h uClibc-git/libc/sysdeps/linux/arc/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/user.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sys/user.h 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,23 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _SYS_USER_H
-+#define _SYS_USER_H 1
-+
-+/* The whole purpose of this file is for GDB and GDB only. Don't read
-+ too much into it. Don't use it for anything other than GDB unless
-+ you know what you are doing. */
-+
-+
-+/* Actually apps like strace also expect a struct user, so it's better to
-+ * have a dummy implementation
-+ */
-+
-+struct user {
-+ int dummy;
-+};
-+
-+#endif /* sys/user.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/syscall.c uClibc-git/libc/sysdeps/linux/arc/syscall.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/syscall.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/syscall.c 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,17 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+#include <errno.h>
-+#include <sys/types.h>
-+#include <sys/syscall.h>
-+
-+extern long syscall(long int sysnum, long a, long b, long c, long d, long e, long f);
-+
-+long syscall(long int sysnum, long a, long b, long c, long d, long e, long f)
-+{
-+ return INLINE_SYSCALL_NCS(sysnum, 6, a, b, c, d, e, f);
-+}
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/__syscall_error.c uClibc-git/libc/sysdeps/linux/arc/__syscall_error.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/__syscall_error.c 2014-07-25 20:36:06.533333255 +0200
-@@ -0,0 +1,15 @@
-+/* Wrapper for setting errno.
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <errno.h>
-+#include <sys/syscall.h>
-+
-+int __syscall_error(int err_no)
-+{
-+ __set_errno(-err_no);
-+ return -1;
-+}
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sysdep.h uClibc-git/libc/sysdeps/linux/arc/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sysdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/sysdep.h 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,22 @@
-+#ifndef _LINUX_ARC_SYSDEP_H
-+#define _LINUX_ARC_SYSDEP_H 1
-+
-+#include <features.h>
-+#include <libc-internal.h>
-+
-+#ifdef __ASSEMBLER__
-+
-+#define ENTRY(nm) \
-+ .text ` \
-+ .align 4 ` \
-+ .globl nm ` \
-+ .type nm,@function ` \
-+nm:
-+
-+#define END(name) .size name,.-name
-+
-+#endif /* __ASSEMBLER __*/
-+
-+#include <common/sysdep.h>
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/vfork.S uClibc-git/libc/sysdeps/linux/arc/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/vfork.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/vfork.S 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1,31 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <sysdep.h>
-+
-+/* No legacy syscall ABI means NR_vfork is not available at all, use clone */
-+#define _SIGNAL_H
-+#include <bits/signum.h> /* For SIGCHLD */
-+
-+#define CLONE_VM 0x00000100
-+#define CLONE_VFORK 0x00004000
-+#define CLONE_FLAGS_FOR_VFORK (CLONE_VM|CLONE_VFORK|SIGCHLD)
-+
-+ENTRY(__vfork)
-+ mov r0, CLONE_FLAGS_FOR_VFORK
-+ mov_s r1, sp
-+ mov r8, __NR_clone
-+ ARC_TRAP_INSN
-+
-+ cmp r0, 0
-+ jge [blink] ; pid >=0 return, else detour via tailcall to errno
-+
-+ b __syscall_error
-+END(__vfork)
-+
-+weak_alias(__vfork,vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/xstatconv.c uClibc-git/libc/sysdeps/linux/arc/xstatconv.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arc/xstatconv.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arc/xstatconv.c 2014-07-25 20:36:06.565333423 +0200
-@@ -0,0 +1 @@
-+/* We don't need any of this. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_assert.c uClibc-git/libc/sysdeps/linux/arm/aeabi_assert.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_assert.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_assert.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,16 +12,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #undef NDEBUG
- #include <assert.h>
- #include <stdlib.h>
-
-
--void __aeabi_assert(const char *assertion, const char *file, unsigned int line);
-+void __aeabi_assert(const char *assertion, const char *file, unsigned int line) attribute_noreturn;
- void __aeabi_assert(const char *assertion, const char *file, unsigned int line)
- {
- __assert (assertion, file, line, NULL);
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_atexit.c uClibc-git/libc/sysdeps/linux/arm/aeabi_atexit.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_atexit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_atexit.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_errno_addr.c uClibc-git/libc/sysdeps/linux/arm/aeabi_errno_addr.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_errno_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_errno_addr.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_lcsts.c uClibc-git/libc/sysdeps/linux/arm/aeabi_lcsts.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_lcsts.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_lcsts.c 2014-07-25 20:36:06.577333486 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The ARM EABI requires that we provide ISO compile-time constants as
- link-time constants. Some portable applications may reference these. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_localeconv.c uClibc-git/libc/sysdeps/linux/arm/aeabi_localeconv.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_localeconv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_localeconv.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <locale.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_math.c uClibc-git/libc/sysdeps/linux/arm/aeabi_math.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_math.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_math.c 2014-07-25 20:36:06.577333486 +0200
-@@ -29,9 +29,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c uClibc-git/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,16 +12,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <langinfo.h>
- #include <locale.h>
- #include <stdlib.h>
-
--int
--__aeabi_MB_CUR_MAX (void)
-+int __aeabi_MB_CUR_MAX (void);
-+int __aeabi_MB_CUR_MAX (void)
- {
- return MB_CUR_MAX;
- }
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memclr.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memclr.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memclr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memclr.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memcpy.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memcpy.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memcpy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memcpy.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memmove.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memmove.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memmove.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memmove.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memset.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memset.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memset.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_sighandlers.S uClibc-git/libc/sysdeps/linux/arm/aeabi_sighandlers.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_sighandlers.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_sighandlers.S 2014-07-25 20:36:06.577333486 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The ARM EABI defines these as "functions". */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c uClibc-git/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c 2014-07-25 20:36:06.577333486 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Because some objects in ld.so and libc.so are built with
- -fexceptions, we end up with references to this personality
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_asm.h uClibc-git/libc/sysdeps/linux/arm/bits/arm_asm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_asm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/arm_asm.h 2014-07-25 20:36:06.593333569 +0200
-@@ -3,8 +3,10 @@
- #define _ARM_ASM_H
-
- #ifdef __thumb2__
-+# ifdef __ASSEMBLER__
- .thumb
- .syntax unified
-+# endif /* __ASSEMBLER__ */
- #define IT(t, cond) i##t cond
- #else
- /* XXX: This can be removed if/when we require an assembler that supports
-@@ -24,12 +26,4 @@
- #define THUMB1_ONLY 1
- #endif
-
--#if defined(__USE_BX__)
--# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
-- || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
-- )
--# error Use of BX was requested, but is not available on the target processor.
--# endif /* ARCH level */
--#endif /* __USE_BX__ */
--
- #endif /* _ARM_ASM_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_bx.h uClibc-git/libc/sysdeps/linux/arm/bits/arm_bx.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_bx.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/arm_bx.h 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,34 @@
-+/* Copyright (C) 2013 Yann E. MORIN <yann.morin.1998@free.fr>
-+ *
-+ * This file is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License as
-+ * published by the Free Software Foundation; either version 2.1 of
-+ * the License, or (at your option) any later version.
-+ *
-+ * This file is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with the GNU C Library; if not, see
-+ * <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef _ARM_BX_H
-+#define _ARM_BX_H
-+
-+/* We need features.h first */
-+#if !defined _FEATURES_H
-+#error Please include features.h first
-+#endif /* features.h not yet included */
-+
-+#if defined(__USE_BX__)
-+# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
-+ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
-+ )
-+# error Use of BX was requested, but is not available on the target processor.
-+# endif /* ARCH level */
-+#endif /* __USE_BX__ */
-+
-+#endif /* _ARM_BX_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/armsigctx.h uClibc-git/libc/sysdeps/linux/arm/bits/armsigctx.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/armsigctx.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/armsigctx.h 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The format of struct sigcontext changed between 2.0 and 2.1 kernels.
- Fortunately 2.0 puts a magic number in the first word and this is not
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/atomic.h uClibc-git/libc/sysdeps/linux/arm/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/atomic.h 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if defined __thumb__ && !defined __thumb2__
- #include_next <common/bits/atomic.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fcntl.h uClibc-git/libc/sysdeps/linux/arm/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/fcntl.h 2014-07-25 20:36:06.593333569 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fenv.h uClibc-git/libc/sysdeps/linux/arm/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/fenv.h 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/huge_val.h uClibc-git/libc/sysdeps/linux/arm/bits/huge_val.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/huge_val.h 2014-07-25 20:36:06.593333569 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/arm/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/kernel_types.h 2014-07-25 20:36:06.593333569 +0200
-@@ -32,6 +32,8 @@
- typedef unsigned short __kernel_old_gid_t;
- typedef long long __kernel_loff_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- #ifdef __USE_ALL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/mathdef.h uClibc-git/libc/sysdeps/linux/arm/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/mathdef.h 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/setjmp.h uClibc-git/libc/sysdeps/linux/arm/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/setjmp.h 2014-07-25 20:36:06.593333569 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
-+/* Copyright (C) 1997,1998,2005,2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,19 +12,18 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. ARM version. */
-+
- #ifndef _BITS_SETJMP_H
--#define _BITS_SETJMP_H 1
-+#define _BITS_SETJMP_H 1
-
- #if !defined _SETJMP_H && !defined _PTHREAD_H
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- /* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not
- saved. */
- #ifdef __ARM_EABI__
-@@ -38,15 +37,10 @@
- #elif defined __MAVERICK__ || defined __IWMMXT__
- typedef int __jmp_buf[34];
- #else
-+# ifdef __UCLIBC_HAS_FPU__
- typedef int __jmp_buf[22];
-+# else
-+typedef int __jmp_buf[10];
-+# endif
- #endif
- #endif
--
--#define __JMP_BUF_SP 8
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
--
--#endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/shm.h uClibc-git/libc/sysdeps/linux/arm/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/shm.h 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/arm/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/sigcontextinfo.h 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <bits/armsigctx.h>
- #include <linux/version.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/arm/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/stackinfo.h 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h 2014-07-25 20:36:06.593333569 +0200
-@@ -11,11 +11,11 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
- #ifdef __ARM_EABI__
--#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+#define __UCLIBC_SYSCALL_ALIGN_64BIT__
- #else
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
- #endif
-
- /* does your target have a broken create_module() ? */
-@@ -48,4 +48,15 @@
- /* only weird assemblers generally need this */
- #undef __UCLIBC_ASM_LINE_SEP__
-
-+#ifdef __GNUC__
-+# define __need_uClibc_config_h
-+# include <bits/uClibc_config.h>
-+# undef __need_uClibc_config_h
-+# if defined __CONFIG_ARM_EABI__ && !defined __ARM_EABI__
-+# error Your toolchain does not support EABI
-+# elif !defined __CONFIG_ARM_EABI__ && defined __ARM_EABI__
-+# error Your toolchain was built for EABI, but you have chosen OABI
-+# endif
-+#endif
-+
- #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/wordsize.h uClibc-git/libc/sysdeps/linux/arm/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bits/wordsize.h 2014-07-25 20:36:06.593333569 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/brk.c uClibc-git/libc/sysdeps/linux/arm/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/brk.c 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/arm/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bsd-setjmp.S 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <bits/arm_asm.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/arm/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/bsd-_setjmp.S 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <bits/arm_asm.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/clone.S uClibc-git/libc/sysdeps/linux/arm/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/clone.S 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-@@ -25,6 +24,7 @@
- #include <bits/errno.h>
- #include <sys/syscall.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- #if defined(__NR_clone)
- /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
-@@ -111,8 +111,9 @@
- ldr r4, [sp, #12]
- DO_CALL (clone)
- movs a1, a1
-- blt __error
-+ IT(t, ne)
- ldmnefd sp!, {r4}
-+ blt __error
- IT(t, ne)
- #if defined(__USE_BX__)
- bxne lr
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/crt1.S uClibc-git/libc/sysdeps/linux/arm/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/crt1.S 2014-07-25 20:36:06.593333569 +0200
-@@ -31,9 +31,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This is the canonical entry point, usually the first thing in the text
- segment.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/find_exidx.c uClibc-git/libc/sysdeps/linux/arm/find_exidx.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/find_exidx.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/find_exidx.c 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <link.h>
- #include <unwind.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/fpu_control.h uClibc-git/libc/sysdeps/linux/arm/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/fpu_control.h 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/getcontext.S uClibc-git/libc/sysdeps/linux/arm/getcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/getcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/getcontext.S 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,80 @@
-+/* Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+ .syntax unified
-+ .text
-+
-+/* int getcontext (ucontext_t *ucp) */
-+
-+ENTRY(__getcontext)
-+ /* No need to save r0-r3, d0-d7, or d16-d31. */
-+ add r1, r0, #MCONTEXT_ARM_R4
-+ stmia r1, {r4-r11}
-+
-+ /* Save R13 separately as Thumb can't STM it. */
-+ str r13, [r0, #MCONTEXT_ARM_SP]
-+ str r14, [r0, #MCONTEXT_ARM_LR]
-+ /* Return to LR */
-+ str r14, [r0, #MCONTEXT_ARM_PC]
-+ /* Return zero */
-+ mov r2, #0
-+ str r2, [r0, #MCONTEXT_ARM_R0]
-+
-+ /* Save ucontext_t * across the next call. */
-+ mov r4, r0
-+
-+ /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
-+ mov r0, #SIG_BLOCK
-+ mov r1, #0
-+ add r2, r4, #UCONTEXT_SIGMASK
-+ bl PLTJMP(sigprocmask)
-+
-+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
-+# ifdef __VFP_FP__
-+ /* Store the VFP registers. */
-+ /* Following instruction is fstmiax ip!, {d8-d15}. */
-+ stc p11, cr8, [r0], #64
-+ /* Store the floating-point status register. */
-+ /* Following instruction is fmrx r2, fpscr. */
-+ mrc p10, 7, r1, cr1, cr0, 0
-+ str r1, [r0], #4
-+# endif
-+#endif
-+#ifdef __IWMMXT__
-+ /* Save the call-preserved iWMMXt registers. */
-+ /* Following instructions are wstrd wr10, [r0], #8 (etc.) */
-+ stcl p1, cr10, [r0], #8
-+ stcl p1, cr11, [r0], #8
-+ stcl p1, cr12, [r0], #8
-+ stcl p1, cr13, [r0], #8
-+ stcl p1, cr14, [r0], #8
-+ stcl p1, cr15, [r0], #8
-+#endif
-+
-+ /* Restore the clobbered R4 and LR. */
-+ ldr r14, [r4, #MCONTEXT_ARM_LR]
-+ ldr r4, [r4, #MCONTEXT_ARM_R4]
-+
-+ mov r0, #0
-+ DO_RET(r14)
-+
-+END(__getcontext)
-+weak_alias(__getcontext, getcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/ioperm.c uClibc-git/libc/sysdeps/linux/arm/ioperm.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/ioperm.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/ioperm.c 2014-07-25 20:36:06.593333569 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* I/O port access on the ARM is something of a fiction. What we do is to
- map an appropriate area of /dev/mem into user space so that a program
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/iopl.c uClibc-git/libc/sysdeps/linux/arm/iopl.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/iopl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/iopl.c 2014-07-25 20:36:06.593333569 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/io.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/arm/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/jmpbuf-offsets.h 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,23 @@
-+/* Private macros for accessing __jmp_buf contents. ARM version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifdef __UCLIBC_HAS_FPU__
-+#define __JMP_BUF_SP 20
-+#else
-+#define __JMP_BUF_SP 8
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/arm/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/jmpbuf-unwind.h 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,29 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#undef _JMPBUF_UNWINDS
-+#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
-+ ((void *) (address) < (void *) demangle (jmpbuf[__JMP_BUF_SP]))
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[__JMP_BUF_SP] - (_adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/__longjmp.S uClibc-git/libc/sysdeps/linux/arm/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/__longjmp.S 2014-07-25 20:36:06.577333486 +0200
-@@ -13,16 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <bits/arm_asm.h>
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
--
-+#include <bits/arm_bx.h>
-
- .global __longjmp
- .type __longjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/makecontext.c uClibc-git/libc/sysdeps/linux/arm/makecontext.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/makecontext.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/makecontext.c 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,73 @@
-+/* Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <stdarg.h>
-+#include <ucontext.h>
-+
-+/* Number of arguments that go in registers. */
-+#define NREG_ARGS 4
-+
-+/* Take a context previously prepared via getcontext() and set to
-+ call func() with the given int only args. */
-+void
-+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-+{
-+ extern void __startcontext (void);
-+ unsigned long *funcstack;
-+ va_list vl;
-+ unsigned long *regptr;
-+ unsigned int reg;
-+ int misaligned;
-+
-+ /* Start at the top of stack. */
-+ funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
-+
-+ /* Ensure the stack stays eight byte aligned. */
-+ misaligned = ((unsigned long) funcstack & 4) != 0;
-+
-+ if ((argc > NREG_ARGS) && (argc & 1) != 0)
-+ misaligned = !misaligned;
-+
-+ if (misaligned)
-+ funcstack -= 1;
-+
-+ va_start (vl, argc);
-+
-+ /* Reserve space for the on-stack arguments. */
-+ if (argc > NREG_ARGS)
-+ funcstack -= (argc - NREG_ARGS);
-+
-+ ucp->uc_mcontext.arm_sp = (unsigned long) funcstack;
-+ ucp->uc_mcontext.arm_pc = (unsigned long) func;
-+
-+ /* Exit to startcontext() with the next context in R4 */
-+ ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link;
-+ ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext;
-+
-+ /* The first four arguments go into registers. */
-+ regptr = &(ucp->uc_mcontext.arm_r0);
-+
-+ for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++)
-+ *regptr++ = va_arg (vl, unsigned long);
-+
-+ /* And the remainder on the stack. */
-+ for (; reg < argc; reg++)
-+ *funcstack++ = va_arg (vl, unsigned long);
-+
-+ va_end (vl);
-+}
-+weak_alias (__makecontext, makecontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/Makefile.arch uClibc-git/libc/sysdeps/linux/arm/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/Makefile.arch 2014-07-25 20:36:06.577333486 +0200
-@@ -5,42 +5,40 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c
-+CSRC-y := brk.c ioperm.c iopl.c __syscall_error.c sigaction.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S setjmp.S bsd-setjmp.S \
-- bsd-_setjmp.S sigrestorer.S mmap64.S \
-+ bsd-_setjmp.S sigrestorer.S \
- vfork.S clone.S
-
--ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--SSRC += libc-aeabi_read_tp.S libc-thumb_atomics.S
--endif
--
--ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
--CSRC += posix_fadvise.c posix_fadvise64.c
--endif
-+SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
-+SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-aeabi_read_tp.S libc-thumb_atomics.S
-+CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
-+SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += getcontext.S setcontext.S swapcontext.S
-
- # Is our compiler set up for EABI ?
--IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
-- | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y' \
-- )
-+CC_IS_EABI_CHECK = $(filter-out -include libc-symbols.h,$(CC) $(CFLAGS))
-+$(eval $(call cache-output-var,IS_EABI,$(CC_IS_EABI_CHECK) -x c - -E -dM </dev/null 2>/dev/null | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y'))
-
--ifeq ($(IS_EABI),y)
--CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
-+CSRC-$(IS_EABI) += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
- aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
- aeabi_memmove.c aeabi_memset.c find_exidx.c
--SSRC += syscall-eabi.S
--ARCH_OBJ_FILTEROUT := syscall.c
--ifeq ($(UCLIBC_HAS_WCHAR),y)
--CSRC += aeabi_mb_cur_max.c
--endif
--else
--CSRC += syscall.c
--endif
--
-+SSRC-$(IS_EABI) += syscall-eabi.S
-+CSRC-$(if $(IS_EABI),,y)) += syscall.c
-+ARCH_OBJ_FILTEROUT-$(IS_EABI) := syscall.c
- ifeq ($(IS_EABI),y)
--libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
-- $(ARCH_OUT)/aeabi_sighandlers.o
--libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
-- $(ARCH_OUT)/aeabi_sighandlers.os $(ARCH_OUT)/aeabi_unwind_cpp_pr1.o
-+CSRC-$(UCLIBC_HAS_WCHAR) += aeabi_mb_cur_max.c
- endif
-+
-+libc-static-$(IS_EABI) += $(addprefix $(ARCH_OUT)/, \
-+ aeabi_lcsts.o \
-+ aeabi_math.o \
-+ aeabi_sighandlers.o \
-+ )
-+libc-nonshared-$(IS_EABI) += $(addprefix $(ARCH_OUT)/, \
-+ aeabi_lcsts.os \
-+ aeabi_math.os \
-+ aeabi_sighandlers.os \
-+ aeabi_unwind_cpp_pr1.o \
-+ )
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap64.S uClibc-git/libc/sysdeps/linux/arm/mmap64.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap64.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/mmap64.S 2014-07-25 20:36:06.593333569 +0200
-@@ -12,17 +12,17 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
-+#include <_lfs_64.h>
- #define _ERRNO_H
- #include <bits/errno.h>
- #include <sys/syscall.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_mmap2
-+#ifdef __NR_mmap2
-
- /* The mmap2 system call takes six arguments, all in registers. */
- .text
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap.c uClibc-git/libc/sysdeps/linux/arm/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,74 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * _mmap() for uClibc
-- *
-- * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org>
-- *
-- * GNU Library General Public License (LGPL) version 2 or later.
-- */
--#include <errno.h>
--#include <unistd.h>
--#include <sys/mman.h>
--#include <sys/syscall.h>
--
--#if defined (__NR_mmap) || defined (__NR_mmap2)
--
--libc_hidden_proto(mmap)
--#if defined (__UCLIBC_MMAP_HAS_6_ARGS__) && defined (__NR_mmap)
--#define __NR__mmap __NR_mmap
--static __inline__ _syscall6 (__ptr_t, _mmap, __ptr_t, addr, size_t, len,
-- int, prot, int, flags, int, fd, __off_t, offset)
--__ptr_t mmap(__ptr_t addr, size_t len, int prot,
-- int flags, int fd, __off_t offset)
--{
-- return (__ptr_t) _mmap (addr, len, prot, flags,
-- fd, offset);
--}
--
--#elif defined (__NR_mmap2)
--#define __NR__mmap __NR_mmap2
--
--#ifndef MMAP2_PAGE_SHIFT
--# define MMAP2_PAGE_SHIFT 12
--#endif
--
--static __inline__ _syscall6 (__ptr_t, _mmap, __ptr_t, addr, size_t, len,
-- int, prot, int, flags, int, fd, __off_t, offset);
--__ptr_t mmap(__ptr_t addr, size_t len, int prot,
-- int flags, int fd, __off_t offset)
--{
-- /* check if offset is page aligned */
-- if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1))
-- {
-- __set_errno(EINVAL);
-- return MAP_FAILED;
-- }
--#ifdef __USE_FILE_OFFSET64
-- return (__ptr_t) _mmap (addr, len, prot, flags,
-- fd, ((__u_quad_t) offset >> MMAP2_PAGE_SHIFT));
--#else
-- return (__ptr_t) _mmap (addr, len, prot, flags,
-- fd, ((__u_long) offset >> MMAP2_PAGE_SHIFT));
--#endif
--}
--#elif defined (__NR_mmap)
--# define __NR__mmap __NR_mmap
--static __inline__ _syscall1(__ptr_t, _mmap, unsigned long *, buffer)
--__ptr_t mmap(__ptr_t addr, size_t len, int prot,
-- int flags, int fd, __off_t offset)
--{
-- unsigned long buffer[6];
--
-- buffer[0] = (unsigned long) addr;
-- buffer[1] = (unsigned long) len;
-- buffer[2] = (unsigned long) prot;
-- buffer[3] = (unsigned long) flags;
-- buffer[4] = (unsigned long) fd;
-- buffer[5] = (unsigned long) offset;
-- return (__ptr_t) _mmap(buffer);
--}
--#endif
--libc_hidden_def (mmap)
--#else
--# error "Your architecture doesn't seem to provide mmap() !?"
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/arm/posix_fadvise64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,59 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * posix_fadvise64() for ARM uClibc
-- * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <fcntl.h>
--
--#ifdef __UCLIBC_HAS_LFS__
--
--#if defined __NR_arm_fadvise64_64
--
--/* Was named __libc_posix_fadvise64 for some inexplicable reason.
--** google says only uclibc has *__libc*_posix_fadviseXXX,
--** so it cannot be compat with anything.
--**
--** Remove this comment and one at the end after 0.9.31
--*/
--
--/* This is for the ARM version of fadvise64_64 which swaps the params
-- * about to avoid having ABI compat issues
-- */
--#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
--{
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
-- __LONG_LONG_PAIR ((long)(offset >> 32), (long)offset),
-- __LONG_LONG_PAIR ((long)(len >> 32), (long)len));
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- if (INTERNAL_SYSCALL_ERRNO (ret, err) != ENOSYS)
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
-- return 0;
--}
--
--/* weak_alias(__libc_posix_fadvise64, posix_fadvise64); */
--
--#elif defined __UCLIBC_HAS_STUBS__
--
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
--{
-- return ENOSYS;
--}
--
--#endif
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise.c uClibc-git/libc/sysdeps/linux/arm/posix_fadvise.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,49 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * posix_fadvise() for ARM uClibc
-- * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--#include <sys/syscall.h>
--#include <fcntl.h>
--
--#if defined __NR_arm_fadvise64_64
--
--#define HIGH_BITS(x) (sizeof(x) > 4 ? (x) >> 32 : 0)
--
--/* Was named __libc_posix_fadvise for some inexplicable reason.
--** google says only uclibc has *__libc*_posix_fadviseXXX,
--** so it cannot be compat with anything.
--**
--** Remove this comment and one at the end after 0.9.31
--*/
--
--/* This is for the ARM version of fadvise64_64 which swaps the params
-- * about to avoid having ABI compat issues
-- */
--#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64
--int posix_fadvise(int fd, off_t offset, off_t len, int advise)
--{
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
-- __LONG_LONG_PAIR (HIGH_BITS(offset), (long)offset),
-- __LONG_LONG_PAIR (HIGH_BITS(len), (long)len));
--
-- if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
-- return 0;
--}
--
--/* weak_alias(__libc_posix_fadvise, posix_fadvise); */
--
--#elif defined __UCLIBC_HAS_STUBS__
--
--int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
--{
-- return ENOSYS;
--}
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/setcontext.S uClibc-git/libc/sysdeps/linux/arm/setcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/setcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/setcontext.S 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,76 @@
-+/* Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+ .syntax unified
-+ .text
-+
-+/* int setcontext (const ucontext_t *ucp) */
-+
-+ENTRY(__setcontext)
-+ mov r4, r0
-+
-+#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
-+# ifdef __VFP_FP__
-+ /* Following instruction is vldmia r0!, {d8-d15}. */
-+ ldc p11, cr8, [r0], #64
-+ /* Restore the floating-point status register. */
-+ ldr r1, [r0], #4
-+ /* Following instruction is fmxr fpscr, r1. */
-+ mcr p10, 7, r1, cr1, cr0, 0
-+# endif
-+#endif
-+
-+#ifdef __IWMMXT__
-+ /* Restore the call-preserved iWMMXt registers. */
-+ /* Following instructions are wldrd wr10, [r0], #8 (etc.) */
-+ ldcl p1, cr10, [r0], #8
-+ ldcl p1, cr11, [r0], #8
-+ ldcl p1, cr12, [r0], #8
-+ ldcl p1, cr13, [r0], #8
-+ ldcl p1, cr14, [r0], #8
-+ ldcl p1, cr15, [r0], #8
-+#endif
-+
-+ /* Now bring back the signal status. */
-+ mov r0, #SIG_SETMASK
-+ add r1, r4, #UCONTEXT_SIGMASK
-+ mov r2, #0
-+ bl PLTJMP(sigprocmask)
-+
-+ /* Loading r0-r3 makes makecontext easier. */
-+ add r14, r4, #MCONTEXT_ARM_R0
-+ ldmia r14, {r0-r11}
-+ ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)]
-+ add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0)
-+ ldmia r14, {r14, pc}
-+
-+END(setcontext)
-+weak_alias(__setcontext, setcontext)
-+
-+ /* Called when a makecontext() context returns. Start the
-+ context in R4 or fall through to exit(). */
-+ENTRY(__startcontext)
-+ movs r0, r4
-+ bne PLTJMP(__setcontext)
-+
-+ @ New context was 0 - exit
-+ b PLTJMP(_exit)
-+END(__startcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/setjmp.S uClibc-git/libc/sysdeps/linux/arm/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/setjmp.S 2014-07-25 20:36:06.593333569 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <bits/arm_asm.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigaction.c uClibc-git/libc/sysdeps/linux/arm/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sigaction.c 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-
- Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-@@ -29,8 +28,6 @@
- extern void __default_sa_restorer(void);
- extern void __default_rt_sa_restorer(void);
-
--extern __typeof(sigaction) __libc_sigaction;
--
- /* When RT signals are in use we need to use a different return stub. */
- #ifdef __NR_rt_sigreturn
- #define choose_restorer(flags) \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigrestorer.S uClibc-git/libc/sysdeps/linux/arm/sigrestorer.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigrestorer.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sigrestorer.S 2014-07-25 20:36:06.593333569 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <bits/arm_asm.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/swapcontext.S uClibc-git/libc/sysdeps/linux/arm/swapcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/swapcontext.S 2014-07-25 20:36:06.593333569 +0200
-@@ -0,0 +1,63 @@
-+/* Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+ .syntax unified
-+ .text
-+
-+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-+
-+ENTRY(swapcontext)
-+
-+ /* Have getcontext() do most of the work then fix up
-+ LR afterwards. Save R3 to keep the stack aligned. */
-+ push {r0,r1,r3,r14}
-+ cfi_adjust_cfa_offset (16)
-+ cfi_rel_offset (r0,0)
-+ cfi_rel_offset (r1,4)
-+ cfi_rel_offset (r3,8)
-+ cfi_rel_offset (r14,12)
-+
-+ bl __getcontext
-+ mov r4, r0
-+
-+ pop {r0,r1,r3,r14}
-+ cfi_adjust_cfa_offset (-16)
-+ cfi_restore (r0)
-+ cfi_restore (r1)
-+ cfi_restore (r3)
-+ cfi_restore (r14)
-+
-+ /* Exit if getcontext() failed. */
-+ cmp r4, #0
-+ itt ne
-+ movne r0, r4
-+ RETINSTR(ne, r14)
-+
-+ /* Fix up LR and the PC. */
-+ str r13,[r0, #MCONTEXT_ARM_SP]
-+ str r14,[r0, #MCONTEXT_ARM_LR]
-+ str r14,[r0, #MCONTEXT_ARM_PC]
-+
-+ /* And swap using swapcontext(). */
-+ mov r0, r1
-+ b __setcontext
-+
-+END(swapcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/elf.h uClibc-git/libc/sysdeps/linux/arm/sys/elf.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sys/elf.h 2014-07-25 20:36:06.609333653 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ELF_H
- #define _SYS_ELF_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/io.h uClibc-git/libc/sysdeps/linux/arm/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sys/io.h 2014-07-25 20:36:06.609333653 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
-
-@@ -23,6 +22,7 @@
-
- __BEGIN_DECLS
-
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges. */
-@@ -34,6 +34,7 @@
- permission to access any I/O port is granted. This call requires
- root privileges. */
- extern int iopl (int __level) __THROW;
-+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
-
- /* The functions that actually perform reads and writes. */
- extern unsigned char inb (unsigned long int port) __THROW;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/procfs.h uClibc-git/libc/sysdeps/linux/arm/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sys/procfs.h 2014-07-25 20:36:06.609333653 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/ucontext.h uClibc-git/libc/sysdeps/linux/arm/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sys/ucontext.h 2014-07-25 20:36:06.609333653 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* System V/ARM ABI compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/user.h uClibc-git/libc/sysdeps/linux/arm/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sys/user.h 2014-07-25 20:36:06.609333653 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/syscall-eabi.S uClibc-git/libc/sysdeps/linux/arm/syscall-eabi.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/syscall-eabi.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/syscall-eabi.S 2014-07-25 20:36:06.609333653 +0200
-@@ -12,12 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/syscall.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- /* In the EABI syscall interface, we don't need a special syscall to
- implement syscall(). It won't work reliably with 64-bit arguments
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sysdep.h uClibc-git/libc/sysdeps/linux/arm/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/sysdep.h 2014-07-25 20:36:06.609333653 +0200
-@@ -13,15 +13,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINUX_ARM_SYSDEP_H
- #define _LINUX_ARM_SYSDEP_H 1
-
- #include <common/sysdep.h>
--#include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- #include <sys/syscall.h>
- /* For Linux we can use the system call table in the header file
-@@ -157,6 +156,7 @@
- #define PSEUDO_END_ERRVAL(name) \
- END (name)
-
-+#undef ret_ERRVAL
- #define ret_ERRVAL PSEUDO_RET_NOERRNO
-
- #if defined NOT_IN_libc
-@@ -254,7 +254,7 @@
- #undef INLINE_SYSCALL
- #define INLINE_SYSCALL(name, nr, args...) \
- ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
-- if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
-+ if (unlikely (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
- { \
- __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
- _inline_sys_result = (unsigned int) -1; \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/ucontext_i.sym uClibc-git/libc/sysdeps/linux/arm/ucontext_i.sym
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/arm/ucontext_i.sym 2014-07-25 20:36:06.609333653 +0200
-@@ -0,0 +1,30 @@
-+#include <inttypes.h>
-+#include <signal.h>
-+#include <stddef.h>
-+#include <sys/ucontext.h>
-+
-+SIG_BLOCK
-+SIG_SETMASK
-+
-+-- Offsets of the fields in the ucontext_t structure.
-+#define ucontext(member) offsetof (ucontext_t, member)
-+#define mcontext(member) ucontext (uc_mcontext.member)
-+
-+UCONTEXT_FLAGS ucontext (uc_flags)
-+UCONTEXT_LINK ucontext (uc_link)
-+UCONTEXT_STACK ucontext (uc_stack)
-+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
-+UCONTEXT_SIGMASK ucontext (uc_sigmask)
-+
-+UCONTEXT_REGSPACE ucontext (uc_regspace)
-+
-+MCONTEXT_TRAP_NO mcontext (trap_no)
-+MCONTEXT_ERROR_CODE mcontext (error_code)
-+MCONTEXT_OLDMASK mcontext (oldmask)
-+MCONTEXT_ARM_R0 mcontext (arm_r0)
-+MCONTEXT_ARM_R4 mcontext (arm_r4)
-+MCONTEXT_ARM_SP mcontext (arm_sp)
-+MCONTEXT_ARM_LR mcontext (arm_lr)
-+MCONTEXT_ARM_PC mcontext (arm_pc)
-+MCONTEXT_ARM_CPSR mcontext (arm_cpsr)
-+MCONTEXT_FAULT_ADDRESS mcontext (fault_address)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/unwind.h uClibc-git/libc/sysdeps/linux/arm/unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/unwind.h 2014-07-25 20:36:06.609333653 +0200
-@@ -22,9 +22,8 @@
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
-- along with this program; see the file COPYING. If not, write to
-- the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ along with this program; see the file COPYING. If not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Language-independent unwinder header public defines. This contains both
- ABI defined objects, and GNU support routines. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/vfork.S uClibc-git/libc/sysdeps/linux/arm/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/arm/vfork.S 2014-07-25 20:36:06.609333653 +0200
-@@ -7,6 +7,7 @@
-
- #include <features.h>
- #include <bits/arm_asm.h>
-+#include <bits/arm_bx.h>
-
- #define _ERRNO_H
- #include <bits/errno.h>
-@@ -104,5 +105,5 @@
- .size __vfork,.-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/atomic.h uClibc-git/libc/sysdeps/linux/avr32/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/bits/atomic.h 2014-07-25 20:36:06.629333758 +0200
-@@ -28,6 +28,7 @@
-
- #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ \
-+ __uint32_t __result; \
- __typeof__(*(mem)) __prev; \
- __asm__ __volatile__( \
- "/* __arch_compare_and_exchange_val_32_acq */\n" \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/avr32/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/bits/kernel_types.h 2014-07-25 20:36:06.629333758 +0200
-@@ -39,6 +39,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef unsigned short __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- #ifdef __GNUC__
- typedef long long __kernel_loff_t;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/setjmp.h uClibc-git/libc/sysdeps/linux/avr32/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/bits/setjmp.h 2014-07-25 20:36:06.629333758 +0200
-@@ -12,19 +12,10 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- /*
- * The jump buffer contains r0-r7, sr, sp and lr. Other registers are
- * not saved.
- */
- typedef int __jmp_buf[11];
--#endif
--
--#define __JMP_BUF_SP 4
--
--/* Test if longjmp to JMPBUF would unwind the frame containing a local
-- variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *)(address) < (void *)(jmpbuf[__JMP_BUF_SP]))
-
- #endif /* _BITS_SETJMP_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/avr32/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/bits/stackinfo.h 2014-07-25 20:36:06.629333758 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h 2014-07-25 20:36:06.629333758 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-offsets.h 2014-07-25 20:36:06.629333758 +0200
-@@ -0,0 +1,9 @@
-+/* Private macros for accessing __jmp_buf contents. avr32 version.
-+ * Copyright (C) 2004-2005 Atmel Corporation
-+ *
-+ * This file is subject to the terms and conditions of the GNU Lesser General
-+ * Public License. See the file "COPYING.LIB" in the main directory of this
-+ * archive for more details.
-+ */
-+
-+#define __JMP_BUF_SP 4
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-unwind.h 2014-07-25 20:36:06.629333758 +0200
-@@ -0,0 +1,14 @@
-+/*
-+ * Copyright (C) 2004-2005 Atmel Corporation
-+ *
-+ * This file is subject to the terms and conditions of the GNU Lesser General
-+ * Public License. See the file "COPYING.LIB" in the main directory of this
-+ * archive for more details.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame containing a local
-+ variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *)(address) < (void *)(jmpbuf[__JMP_BUF_SP]))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile uClibc-git/libc/sysdeps/linux/avr32/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/Makefile 2014-07-25 20:36:06.617333696 +0200
-@@ -13,8 +13,7 @@
- # details.
- #
- # You should have received a copy of the GNU Library General Public License
--# along with this program; if not, write to the Free Software Foundation, Inc.,
--# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- top_srcdir=../../../../
- top_builddir=../../../../
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile.arch uClibc-git/libc/sysdeps/linux/avr32/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/Makefile.arch 2014-07-25 20:36:06.617333696 +0200
-@@ -5,7 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c clone.c mmap.c prctl.c sigaction.c
-+CSRC-y := brk.c clone.c mmap.c prctl.c sigaction.c
-
--SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
-+SSRC-y := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
- sigrestorer.S syscall.S vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/mmap.c uClibc-git/libc/sysdeps/linux/avr32/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/mmap.c 2014-07-25 20:36:06.629333758 +0200
-@@ -12,10 +12,10 @@
- #include <sys/syscall.h>
-
-
--static _syscall6(__ptr_t, mmap2, __ptr_t, addr, size_t, len, int, prot,
-- int, flags, int, fd, __off_t, pgoff)
-+static __inline__ _syscall6(void *, mmap2, void *, addr, size_t, len, int, prot,
-+ int, flags, int, fd, __off_t, pgoff)
-
--__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
-+void *mmap(void *addr, size_t len, int prot, int flags, int fd, __off_t offset)
- {
- unsigned long page_size = sysconf(_SC_PAGESIZE);
- unsigned long pgoff;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/setjmp.S uClibc-git/libc/sysdeps/linux/avr32/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/setjmp.S 2014-07-25 20:36:06.629333758 +0200
-@@ -5,9 +5,6 @@
- * Public License. See the file "COPYING.LIB" in the main directory of this
- * archive for more details.
- */
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
-
- .text
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sigaction.c uClibc-git/libc/sysdeps/linux/avr32/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/sigaction.c 2014-07-25 20:36:06.629333758 +0200
-@@ -14,8 +14,6 @@
- #define SA_RESTORER 0x04000000
- extern void __default_rt_sa_restorer(void);
-
--extern __typeof(sigaction) __libc_sigaction;
--
- /*
- * If act is not NULL, change the action for sig to *act.
- * If oact is not NULL, put the old action for sig in *oact.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/elf.h uClibc-git/libc/sysdeps/linux/avr32/sys/elf.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/sys/elf.h 2014-07-25 20:36:06.645333842 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ELF_H
- #define _SYS_ELF_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/procfs.h uClibc-git/libc/sysdeps/linux/avr32/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/sys/procfs.h 2014-07-25 20:36:06.645333842 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/ucontext.h uClibc-git/libc/sysdeps/linux/avr32/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/sys/ucontext.h 2014-07-25 20:36:06.645333842 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Linux/AVR32 ABI compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/vfork.S uClibc-git/libc/sysdeps/linux/avr32/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/avr32/vfork.S 2014-07-25 20:36:06.645333842 +0200
-@@ -17,10 +17,10 @@
- * Fortunately, the Linux kernel preserves LR across system calls.
- */
-
--#include <features.h>
- #include <sys/syscall.h>
-
- .global __vfork
-+ .hidden __vfork
- .type __vfork,@function
- .align 1
- __vfork:
-@@ -55,4 +55,4 @@
- .size __vfork, . - __vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/elf-fdpic.h uClibc-git/libc/sysdeps/linux/bfin/bits/elf-fdpic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/elf-fdpic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/elf-fdpic.h 2014-07-25 20:36:06.677334010 +0200
-@@ -22,8 +22,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_ELF_FDPIC_H
- #define _BITS_ELF_FDPIC_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/fcntl.h uClibc-git/libc/sysdeps/linux/bfin/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/fcntl.h 2014-07-25 20:36:06.677334010 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/huge_val.h uClibc-git/libc/sysdeps/linux/bfin/bits/huge_val.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/huge_val.h 2014-07-25 20:36:06.677334010 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/bfin/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/kernel_types.h 2014-07-25 20:36:06.677334010 +0200
-@@ -32,6 +32,8 @@
- typedef unsigned short __kernel_old_gid_t;
- typedef long long __kernel_loff_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- #ifdef __USE_ALL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/setjmp.h uClibc-git/libc/sysdeps/linux/bfin/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/setjmp.h 2014-07-25 20:36:06.677334010 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. bfin version. Lineo, Inc. 2001*/
- #ifndef _BITS_SETJMP_H
-@@ -24,7 +23,6 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- /* Jump buffer contains r7-r4, p5-p3, fp, sp and pc. Other registers are not saved. */
- typedef struct
- {
-@@ -45,13 +43,4 @@
- unsigned long pc;
- }__jmp_buf[1];
-
--#endif
--
--#define __JMP_BUF_SP 8
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)->fp)
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h 2014-07-25 20:36:06.677334010 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT int _code, struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS _code,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/bfin/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/stackinfo.h 2014-07-25 20:36:06.677334010 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/typesizes.h uClibc-git/libc/sysdeps/linux/bfin/bits/typesizes.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/typesizes.h 2014-07-25 20:36:06.677334010 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h 2014-07-25 20:36:06.677334010 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/wordsize.h uClibc-git/libc/sysdeps/linux/bfin/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/bits/wordsize.h 2014-07-25 20:36:06.677334010 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/cacheflush.c uClibc-git/libc/sysdeps/linux/bfin/cacheflush.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/cacheflush.c 2014-07-25 20:36:06.677334010 +0200
-@@ -6,9 +6,10 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <unistd.h>
--#include <errno.h>
- #include <sys/syscall.h>
--#include <sys/cachectl.h>
-
--_syscall3 (int, cacheflush, void *, start, const int, nbytes, const int, flags)
-+#ifdef __NR_cacheflush
-+# include <sys/cachectl.h>
-+
-+_syscall3 (int, cacheflush, void *, addr, const int, nbytes, const int, flags)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crt1.S uClibc-git/libc/sysdeps/linux/bfin/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/crt1.S 2014-07-25 20:36:06.677334010 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
-
- /* When we enter this piece of code, the user stack looks like this:
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crti.S uClibc-git/libc/sysdeps/linux/bfin/crti.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crti.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/crti.S 2014-07-25 20:36:06.677334010 +0200
-@@ -16,9 +16,8 @@
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
--along with GCC; see the file COPYING. If not, write to
--the Free Software Foundation, 59 Temple Place - Suite 330,
--Boston, MA 02111-1307, USA. */
-+along with GCC; see the file COPYING. If not, see
-+<http://www.gnu.org/licenses/>. */
-
- /* As a special exception, if you link this library with files
- compiled with GCC to produce an executable, this does not cause
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtn.S uClibc-git/libc/sysdeps/linux/bfin/crtn.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtn.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/crtn.S 2014-07-25 20:36:06.677334010 +0200
-@@ -16,9 +16,8 @@
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
--along with GCC; see the file COPYING. If not, write to
--the Free Software Foundation, 59 Temple Place - Suite 330,
--Boston, MA 02111-1307, USA. */
-+along with GCC; see the file COPYING. If not, see
-+<http://www.gnu.org/licenses/>. */
-
- /* As a special exception, if you link this library with files
- compiled with GCC to produce an executable, this does not cause
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtreloc.c uClibc-git/libc/sysdeps/linux/bfin/crtreloc.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtreloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/crtreloc.c 2014-07-25 20:36:06.677334010 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #ifdef __BFIN_FDPIC__
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-offsets.h 2014-07-25 20:36:06.677334010 +0200
-@@ -0,0 +1,8 @@
-+/* Private macros for accessing __jmp_buf contents. BFIN version. */
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define __JMP_BUF_SP 8
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-unwind.h 2014-07-25 20:36:06.677334010 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->fp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/Makefile.arch uClibc-git/libc/sysdeps/linux/bfin/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/Makefile.arch 2014-07-25 20:36:06.661333926 +0200
-@@ -5,9 +5,11 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := bsdsetjmp.c clone.c \
-- sram-alloc.c sram-free.c dma-memcpy.c cacheflush.c
-+CSRC-y := bsdsetjmp.c clone.c \
-+ sram-alloc.c sram-free.c dma-memcpy.c
-
--SSRC := __longjmp.S setjmp.S bsd-_setjmp.S
-+SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S
-+
-+CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
-
- ARCH_HEADERS := bfin_fixed_code.h bfin_l1layout.h bfin_sram.h
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/cachectl.h uClibc-git/libc/sysdeps/linux/bfin/sys/cachectl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/cachectl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/sys/cachectl.h 2014-07-25 20:36:06.689334073 +0200
-@@ -18,7 +18,7 @@
-
- __BEGIN_DECLS
-
--extern int cacheflush (void *addr, __const int nbytes, __const int flags);
-+extern int cacheflush (void *addr, const int nbytes, const int flags);
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/elf.h uClibc-git/libc/sysdeps/linux/bfin/sys/elf.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/sys/elf.h 2014-07-25 20:36:06.689334073 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ELF_H
- #define _SYS_ELF_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/io.h uClibc-git/libc/sysdeps/linux/bfin/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/sys/io.h 2014-07-25 20:36:06.689334073 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
-
-@@ -23,17 +22,18 @@
-
- __BEGIN_DECLS
-
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
- /* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
- permission to access any I/O port is granted. This call requires
- root privileges. */
- extern int iopl (int __level) __THROW;
-+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
-
- /* The functions that actually perform reads and writes. */
- extern unsigned char inb (unsigned long int port) __THROW;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/procfs.h uClibc-git/libc/sysdeps/linux/bfin/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/sys/procfs.h 2014-07-25 20:36:06.689334073 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/ucontext.h uClibc-git/libc/sysdeps/linux/bfin/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/bfin/sys/ucontext.h 2014-07-25 20:36:06.689334073 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* System V/blackfin ABI compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/byteswap.h uClibc-git/libc/sysdeps/linux/c6x/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/byteswap.h 2014-07-25 20:36:06.721334241 +0200
-@@ -14,9 +14,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #ifndef _ASM_BITS_BYTESWAP_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/elf-dsbt.h uClibc-git/libc/sysdeps/linux/c6x/bits/elf-dsbt.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/elf-dsbt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/elf-dsbt.h 2014-07-25 20:36:06.721334241 +0200
-@@ -25,8 +25,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_ELF_DSBT_H
- #define _BITS_ELF_DSBT_H
-@@ -59,15 +58,10 @@
-
- struct elf32_dsbt_loadmap {
- /* Protocol version number, must be zero. */
-- Elf32_Word version;
--
-- /* Pointer to DSBT */
-- unsigned *dsbt_table;
-- unsigned dsbt_size;
-- unsigned dsbt_index;
-+ Elf32_Half version;
-
- /* number of segments */
-- Elf32_Word nsegs;
-+ Elf32_Half nsegs;
-
- /* The actual memory map. */
- struct elf32_dsbt_loadseg segs[0];
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/fcntl.h uClibc-git/libc/sysdeps/linux/c6x/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/fcntl.h 2014-07-25 20:36:06.721334241 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/ipc.h uClibc-git/libc/sysdeps/linux/c6x/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/ipc.h 2014-07-25 20:36:06.721334241 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/c6x/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/kernel_types.h 2014-07-25 20:36:06.721334241 +0200
-@@ -22,6 +22,8 @@
- typedef unsigned int __kernel_old_uid_t;
- typedef unsigned int __kernel_old_gid_t;
- typedef unsigned int __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef unsigned int __kernel_size_t;
- typedef int __kernel_ssize_t;
- typedef int __kernel_ptrdiff_t;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/mathdef.h uClibc-git/libc/sysdeps/linux/c6x/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/mathdef.h 2014-07-25 20:36:06.721334241 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/nan.h uClibc-git/libc/sysdeps/linux/c6x/bits/nan.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/nan.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/nan.h 2014-07-25 20:36:06.721334241 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/nan.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/poll.h uClibc-git/libc/sysdeps/linux/c6x/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/poll.h 2014-07-25 20:36:06.721334241 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/resource.h uClibc-git/libc/sysdeps/linux/c6x/bits/resource.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/resource.h 2014-07-25 20:36:06.721334241 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_RESOURCE_H
- # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/setjmp.h uClibc-git/libc/sysdeps/linux/c6x/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/setjmp.h 2014-07-25 20:36:06.721334241 +0200
-@@ -14,12 +14,14 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
--#ifndef _SETJMP_H
-+#ifndef _BITS_SETJMP_H
-+#define _BITS_SETJMP_H 1
-+
-+#if !defined _SETJMP_H && !defined _PTHREAD_H
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
-@@ -28,12 +30,4 @@
- unsigned long __pc; /* the return address */
- } __jmp_buf[1];
-
--/* the stack pointer (B15) */
--#define JP_SP 11
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)->__regs[JP_SP])
--
--
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h 2014-07-25 20:36:06.721334241 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT int _code, struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS _code,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/c6x/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/stackinfo.h 2014-07-25 20:36:06.721334241 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/syscalls.h uClibc-git/libc/sysdeps/linux/c6x/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/syscalls.h 2014-07-25 20:36:06.721334241 +0200
-@@ -37,7 +37,7 @@
- #undef INLINE_SYSCALL
- #define INLINE_SYSCALL(name, nr, args...) \
- ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
-- if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
-+ if (unlikely (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
- { \
- __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
- _inline_sys_result = (unsigned int) -1; \
-@@ -103,7 +103,7 @@
- register long __B6 __asm__ ("B6") = (long)(arg4); \
- register long __A8 __asm__ ("A8") = (long)(arg5); \
- register long __g1 __asm__ ("g1") = __NR_clone; \
-- __asm __volatile (__CLONE_SYSCALL_STRING : \
-+ __asm__ __volatile__ (__CLONE_SYSCALL_STRING : \
- "=r" (__g1), "=r" (__A4), "=r" (__B4) : \
- "0" (__g1), "1" (__A4), "2" (__B4), \
- "r" (__A6), "r" (__B6), "r" (__A8) : \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h 2014-07-25 20:36:06.721334241 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/wordsize.h uClibc-git/libc/sysdeps/linux/c6x/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bits/wordsize.h 2014-07-25 20:36:06.721334241 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/brk.c uClibc-git/libc/sysdeps/linux/c6x/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/brk.c 2014-07-25 20:36:06.721334241 +0200
-@@ -14,9 +14,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-_setjmp.s uClibc-git/libc/sysdeps/linux/c6x/bsd-_setjmp.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-_setjmp.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bsd-_setjmp.s 2014-07-25 20:36:06.721334241 +0200
-@@ -14,8 +14,7 @@
- ; for more details.
- ;
- ; You should have received a copy of the GNU Library General Public License
-- ; along with this program; if not, write to the Free Software Foundation,
-- ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ ; along with this program; if not, see <http://www.gnu.org/licenses/>.
- ;
-
- .global _setjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/c6x/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/bsd-setjmp.S 2014-07-25 20:36:06.721334241 +0200
-@@ -14,8 +14,7 @@
- ; for more details.
- ;
- ; You should have received a copy of the GNU Library General Public License
-- ; along with this program; if not, write to the Free Software Foundation,
-- ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ ; along with this program; if not, see <http://www.gnu.org/licenses/>.
- ;
-
- .global setjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/clone.S uClibc-git/libc/sysdeps/linux/c6x/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/clone.S 2014-07-25 20:36:06.721334241 +0200
-@@ -14,8 +14,7 @@
- ; for more details.
- ;
- ; You should have received a copy of the GNU Library General Public License
-- ; along with this program; if not, write to the Free Software Foundation,
-- ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ ; along with this program; if not, see <http://www.gnu.org/licenses/>.
- ;
- #define __ASSEMBLY__
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/crt1.S uClibc-git/libc/sysdeps/linux/c6x/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/crt1.S 2014-07-25 20:36:06.721334241 +0200
-@@ -15,8 +15,7 @@
- ; for more details.
- ;
- ; You should have received a copy of the GNU Library General Public License
--; along with this program; if not, write to the Free Software Foundation,
--; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+; along with this program; if not, see <http://www.gnu.org/licenses/>.
- ;
-
- .text
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-offsets.h 2014-07-25 20:36:06.721334241 +0200
-@@ -0,0 +1,22 @@
-+/* Private macros for accessing __jmp_buf contents. c6x version.
-+ * Port of uClibc for TMS320C6000 DSP architecture
-+ * Copyright (C) 2004 Texas Instruments Incorporated
-+ * Author of TMS320C6000 port: Aurelien Jacquiot
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public License
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
-+ */
-+
-+/* the stack pointer (B15) */
-+#define JP_SP 11
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-unwind.h 2014-07-25 20:36:06.721334241 +0200
-@@ -0,0 +1,28 @@
-+/*
-+ * Port of uClibc for TMS320C6000 DSP architecture
-+ * Copyright (C) 2004 Texas Instruments Incorporated
-+ * Author of TMS320C6000 port: Aurelien Jacquiot
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Library General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public License
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->__regs[JP_SP])
-+
-+
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/__longjmp.S uClibc-git/libc/sysdeps/linux/c6x/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/__longjmp.S 2014-07-25 20:36:06.709334178 +0200
-@@ -14,8 +14,7 @@
- ; for more details.
- ;
- ; You should have received a copy of the GNU Library General Public License
-- ; along with this program; if not, write to the Free Software Foundation,
-- ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ ; along with this program; if not, see <http://www.gnu.org/licenses/>.
- ;
-
- .global __longjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/Makefile.arch uClibc-git/libc/sysdeps/linux/c6x/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/Makefile.arch 2014-07-25 20:36:06.709334178 +0200
-@@ -5,6 +5,6 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c pread_write.c syscall.c prctl.c
-+CSRC-y := brk.c syscall.c prctl.c
-
--SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S _vfork.S
-+SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S _vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/pread_write.c uClibc-git/libc/sysdeps/linux/c6x/pread_write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/pread_write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/pread_write.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,103 +0,0 @@
--/* vi: set sw=4 ts=4:
-- *
-- * Copyright (C) 2002 by Erik Andersen <andersen@uclibc.org>
-- * Based in part on the files
-- * ./sysdeps/unix/sysv/linux/pwrite.c,
-- * ./sysdeps/unix/sysv/linux/pread.c,
-- * sysdeps/posix/pread.c
-- * sysdeps/posix/pwrite.c
-- * from GNU libc 2.2.5, but reworked considerably...
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of the GNU Library General Public License as published by
-- * the Free Software Foundation; either version 2 of the License, or (at your
-- * option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
-- * for more details.
-- *
-- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- */
--
--#define _LARGEFILE64_SOURCE
--#include <features.h>
--#undef __OPTIMIZE__
--/* We absolutely do _NOT_ want interfaces silently
-- * * * renamed under us or very bad things will happen... */
--#ifdef __USE_FILE_OFFSET64
--# undef __USE_FILE_OFFSET64
--#endif
--
--
--#include <errno.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <unistd.h>
--#include <stdint.h>
--
--extern __typeof(pread) __libc_pread;
--extern __typeof(pwrite) __libc_pwrite;
--#ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pread64) __libc_pread64;
--extern __typeof(pwrite64) __libc_pwrite64;
--#endif
--
--#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
--# ifdef __NR_pread
--# error "__NR_pread and __NR_pread64 both defined???"
--# endif
--# define __NR_pread __NR_pread64
--#endif
--
--#define __NR___syscall_pread __NR_pread
--static inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
-- size_t, count, off_t, offset_hi, off_t, offset_lo);
--
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return(__syscall_pread(fd,buf,count,offset,offset >> 31));
--}
--weak_alias (__libc_pread, pread)
--
--#if defined __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return(__syscall_pread(fd, buf, count, low, high));
--}
--weak_alias (__libc_pread64, pread64)
--#endif /* __UCLIBC_HAS_LFS__ */
--
--
--#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
--# ifdef __NR_pwrite
--# error "__NR_pwrite and __NR_pwrite64 both defined???"
--# endif
--# define __NR_pwrite __NR_pwrite64
--#endif
--
--#define __NR___syscall_pwrite __NR_pwrite
--static inline _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-- size_t, count, off_t, offset_hi, off_t, offset_lo);
--
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- return(__syscall_pwrite(fd,buf,count,offset,offset >> 31));
--}
--weak_alias (__libc_pwrite, pwrite)
--
--#if defined __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return(__syscall_pwrite(fd, buf, count, low, high));
--}
--weak_alias (__libc_pwrite64, pwrite64)
--#endif /* __UCLIBC_HAS_LFS__ */
--
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/setjmp.s uClibc-git/libc/sysdeps/linux/c6x/setjmp.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/setjmp.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/setjmp.s 2014-07-25 20:36:06.721334241 +0200
-@@ -14,8 +14,7 @@
- ; for more details.
- ;
- ; You should have received a copy of the GNU Library General Public License
-- ; along with this program; if not, write to the Free Software Foundation,
-- ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ ; along with this program; if not, see <http://www.gnu.org/licenses/>.
- ;
-
- .global __sigsetjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sigaction.c uClibc-git/libc/sysdeps/linux/c6x/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/sigaction.c 2014-07-25 20:36:06.721334241 +0200
-@@ -17,8 +17,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA.
-+ see <http://www.gnu.org/licenses/>.
-
- Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-@@ -34,8 +33,6 @@
-
- #define SA_RESTORER 0x04000000
-
--extern __typeof(sigaction) __libc_sigaction;
--
- extern void restore_rt(void) __asm__ ("__restore_rt") attribute_hidden;
- extern void restore(void) __asm__ ("__restore") attribute_hidden;
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/procfs.h uClibc-git/libc/sysdeps/linux/c6x/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/sys/procfs.h 2014-07-25 20:36:06.729334283 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ptrace.h uClibc-git/libc/sysdeps/linux/c6x/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/sys/ptrace.h 2014-07-25 20:36:06.729334283 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-@@ -112,12 +111,6 @@
- PTRACE_SYSCALL = 24,
- #define PT_SYSCALL PTRACE_SYSCALL
-
-- /* Obtain the load map of the main program or the interpreter of the
-- ptraced process, depending on whether the addr argument is
-- (void*)0 or (void*)1, respectively. */
-- PTRACE_GETDSBT = 31,
--#define PT_GETDSBT PTRACE_GETDSBT
--
- /* Set ptrace filter options. */
- PTRACE_SETOPTIONS = 0x4200,
- #define PT_SETOPTIONS PTRACE_SETOPTIONS
-@@ -135,9 +128,6 @@
- #define PT_SETSIGINFO PTRACE_SETSIGINFO
- };
-
--#define PTRACE_GETDSBT_EXEC ((void*)0) /* [addr] request the executable loadmap */
--#define PTRACE_GETDSBT_INTERP ((void*)1) /* [addr] request the interpreter loadmap */
--
- /* Options set using PTRACE_SETOPTIONS. */
- enum __ptrace_setoptions {
- PTRACE_O_TRACESYSGOOD = 0x00000001,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/reg.h uClibc-git/libc/sysdeps/linux/c6x/sys/reg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/sys/reg.h 2014-07-25 20:36:06.729334283 +0200
-@@ -14,9 +14,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
- #ifndef _SYS_REG_H
- #define _SYS_REG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ucontext.h uClibc-git/libc/sysdeps/linux/c6x/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/sys/ucontext.h 2014-07-25 20:36:06.729334283 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/user.h uClibc-git/libc/sysdeps/linux/c6x/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/sys/user.h 2014-07-25 20:36:06.729334283 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/_vfork.S uClibc-git/libc/sysdeps/linux/c6x/_vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/_vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/c6x/_vfork.S 2014-07-25 20:36:06.709334178 +0200
-@@ -16,8 +16,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
- #define __ASSEMBLY__
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/access.c uClibc-git/libc/sysdeps/linux/common/access.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/access.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/access.c 2014-07-25 20:36:06.757334429 +0200
-@@ -9,4 +9,14 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+
-+#if defined __NR_faccessat && !defined __NR_access
-+# include <fcntl.h>
-+int access(const char *pathname, int mode)
-+{
-+ return faccessat(AT_FDCWD, pathname, mode, 0);
-+}
-+
-+#else
- _syscall2(int, access, const char *, pathname, int, mode)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/alarm.c uClibc-git/libc/sysdeps/linux/common/alarm.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/alarm.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/alarm.c 2014-07-25 20:36:06.757334429 +0200
-@@ -10,12 +10,10 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
--
- #ifdef __NR_alarm
- _syscall1(unsigned int, alarm, unsigned int, seconds)
- #else
--#include <sys/time.h>
--
-+# include <sys/time.h>
-
- unsigned int alarm(unsigned int seconds)
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/arch_prctl.c uClibc-git/libc/sysdeps/linux/common/arch_prctl.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/arch_prctl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/arch_prctl.c 2014-07-25 20:36:06.757334429 +0200
-@@ -10,6 +10,6 @@
- #include <sys/syscall.h>
-
- #ifdef __NR_arch_prctl
--extern int arch_prctl(int code, unsigned long addr);
-+int arch_prctl(int code, unsigned long addr);
- _syscall2(int, arch_prctl, int, code, unsigned long, addr)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/atomic.h uClibc-git/libc/sysdeps/linux/common/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/atomic.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_ATOMIC_H
- #define _BITS_ATOMIC_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/byteswap-common.h uClibc-git/libc/sysdeps/linux/common/bits/byteswap-common.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/byteswap-common.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/byteswap-common.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _BYTESWAP_H && !defined _NETINET_IN_H
- # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/cmathcalls.h uClibc-git/libc/sysdeps/linux/common/bits/cmathcalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/cmathcalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/cmathcalls.h 2014-07-25 20:36:06.769334491 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* NOTE: Because of the special way this file is used by <complex.h>, this
- file must NOT be protected from multiple inclusion as header files
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/confname.h uClibc-git/libc/sysdeps/linux/common/bits/confname.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/confname.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/confname.h 2014-07-25 20:36:06.769334491 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UNISTD_H
- # error "Never use <bits/confname.h> directly; include <unistd.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dirent.h uClibc-git/libc/sysdeps/linux/common/bits/dirent.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/dirent.h 2014-07-25 20:36:06.769334491 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _DIRENT_H
- # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dlfcn.h uClibc-git/libc/sysdeps/linux/common/bits/dlfcn.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/dlfcn.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _DLFCN_H
- # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/environments.h uClibc-git/libc/sysdeps/linux/common/bits/environments.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/environments.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/environments.h 2014-07-25 20:36:06.769334491 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UNISTD_H
- # error "Never include this file directly. Use <unistd.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/errno.h uClibc-git/libc/sysdeps/linux/common/bits/errno.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/errno.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/errno.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef _ERRNO_H
-
-@@ -43,7 +42,6 @@
- # ifndef __ASSEMBLER__
- /* Function to get address of global `errno' variable. */
- extern int *__errno_location (void) __THROW __attribute__ ((__const__));
--libc_hidden_proto(__errno_location)
-
- # ifdef __UCLIBC_HAS_THREADS__
- /* When using threads, errno is a per-thread value. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/eventfd.h uClibc-git/libc/sysdeps/linux/common/bits/eventfd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/bits/eventfd.h 2014-07-25 20:36:06.769334491 +0200
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd. */
-+enum
-+ {
-+ EFD_SEMAPHORE = 00000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+ EFD_CLOEXEC = 02000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+ EFD_NONBLOCK = 00004000
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+ };
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/fenv.h uClibc-git/libc/sysdeps/linux/common/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/fenv.h 2014-07-25 20:36:06.769334491 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -53,4 +52,4 @@
- fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) -1l)
-+#define FE_DFL_ENV ((const fenv_t *) -1l)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/getopt.h uClibc-git/libc/sysdeps/linux/common/bits/getopt.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/getopt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/getopt.h 2014-07-25 20:36:06.769334491 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GETOPT_H
-
-@@ -26,31 +25,7 @@
- # define _GETOPT_H 1
- #endif
-
--/* If __GNU_LIBRARY__ is not already defined, either we are being used
-- standalone, or this is the first header included in the source file.
-- If we are being used with glibc, we need to include <features.h>, but
-- that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
-- not defined, include <ctype.h>, which will pull in <features.h> for us
-- if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
-- doesn't flood the namespace with stuff the way some other headers do.) */
--#if !defined __GNU_LIBRARY__
--# include <ctype.h>
--#endif
--
--#ifndef __THROW
--# ifndef __GNUC_PREREQ
--# define __GNUC_PREREQ(maj, min) (0)
--# endif
--# if defined __cplusplus && __GNUC_PREREQ (2,8)
--# define __THROW throw ()
--# else
--# define __THROW
--# endif
--#endif
--
--#ifdef __cplusplus
--extern "C" {
--#endif
-+__BEGIN_DECLS
-
- /* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
-@@ -147,17 +122,9 @@
- arguments to the option '\0'. This behavior is specific to the GNU
- `getopt'. */
-
--#if defined __GNU_LIBRARY__ || defined __UCLIBC__
--/* Many other libraries have conflicting prototypes for getopt, with
-- differences in the consts, in stdlib.h. To avoid compilation
-- errors, only prototype getopt for the GNU C library. */
- extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
- __THROW;
- libc_hidden_proto(getopt)
--#else /* not __GNU_LIBRARY__ */
--extern int getopt ();
--libc_hidden_proto(getopt)
--#endif /* __GNU_LIBRARY__ */
-
- #if defined __UCLIBC_HAS_GNU_GETOPT__ || defined __UCLIBC_HAS_GETOPT_LONG__
- #ifndef __need_getopt
-@@ -173,9 +140,7 @@
- #endif
- #endif
-
--#ifdef __cplusplus
--}
--#endif
-+__END_DECLS
-
- /* Make sure we later can get all the definitions and declarations. */
- #undef __need_getopt
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_valf.h uClibc-git/libc/sysdeps/linux/common/bits/huge_valf.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_valf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/huge_valf.h 2014-07-25 20:36:06.769334491 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/huge_valf.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_val.h uClibc-git/libc/sysdeps/linux/common/bits/huge_val.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/huge_val.h 2014-07-25 20:36:06.769334491 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/common/bits/huge_vall.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_vall.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/huge_vall.h 2014-07-25 20:36:06.769334491 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/inf.h uClibc-git/libc/sysdeps/linux/common/bits/inf.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/inf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/inf.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/inf.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/in.h uClibc-git/libc/sysdeps/linux/common/bits/in.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/in.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/in.h 2014-07-25 20:36:06.769334491 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-1999, 2000, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1991-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Linux version. */
-
-@@ -43,31 +42,49 @@
- #define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */
- #define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */
- #define IP_MSFILTER 41
--#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
--#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
--#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
--#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
--#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
--#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
--#define MCAST_MSFILTER 48
--
--#define MCAST_EXCLUDE 0
--#define MCAST_INCLUDE 1
--
--#define IP_ROUTER_ALERT 5 /* bool */
--#define IP_PKTINFO 8 /* bool */
--#define IP_PKTOPTIONS 9
--#define IP_PMTUDISC 10 /* obsolete name? */
--#define IP_MTU_DISCOVER 10 /* int; see below */
--#define IP_RECVERR 11 /* bool */
--#define IP_RECVTTL 12 /* bool */
--#define IP_RECVTOS 13 /* bool */
-+#if defined __USE_MISC || defined __USE_GNU
-+# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
-+# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
-+# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
-+# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
-+# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
-+# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
-+# define MCAST_MSFILTER 48
-+# define IP_MULTICAST_ALL 49
-+# define IP_UNICAST_IF 50
-+
-+# define MCAST_EXCLUDE 0
-+# define MCAST_INCLUDE 1
-+#endif
-+
-+#define IP_ROUTER_ALERT 5 /* bool */
-+#define IP_PKTINFO 8 /* bool */
-+#define IP_PKTOPTIONS 9
-+#define IP_PMTUDISC 10 /* obsolete name? */
-+#define IP_MTU_DISCOVER 10 /* int; see below */
-+#define IP_RECVERR 11 /* bool */
-+#define IP_RECVTTL 12 /* bool */
-+#define IP_RECVTOS 13 /* bool */
-+#define IP_MTU 14 /* int */
-+#define IP_FREEBIND 15
-+#define IP_IPSEC_POLICY 16
-+#define IP_XFRM_POLICY 17
-+#define IP_PASSSEC 18
-+#define IP_TRANSPARENT 19
-+#define IP_MULTICAST_ALL 49 /* bool */
-+
-+/* TProxy original addresses */
-+#define IP_ORIGDSTADDR 20
-+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
-+
-+#define IP_MINTTL 21
-
-
- /* IP_MTU_DISCOVER arguments. */
- #define IP_PMTUDISC_DONT 0 /* Never send DF frames. */
- #define IP_PMTUDISC_WANT 1 /* Use per route hints. */
- #define IP_PMTUDISC_DO 2 /* Always DF. */
-+#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
-
- /* To select the IP level. */
- #define SOL_IP 0
-@@ -76,6 +93,7 @@
- #define IP_DEFAULT_MULTICAST_LOOP 1
- #define IP_MAX_MEMBERSHIPS 20
-
-+#if defined __USE_MISC || defined __USE_GNU
- /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
- The `ip_dst' field is used for the first-hop gateway when using a
- source route (this gets put into the header proper). */
-@@ -100,6 +118,7 @@
- struct in_addr ipi_spec_dst; /* Routing destination address */
- struct in_addr ipi_addr; /* Header destination address */
- };
-+#endif
-
- #ifdef __UCLIBC_HAS_IPV6__
- /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
-@@ -159,6 +178,7 @@
- #define IPV6_PMTUDISC_DONT 0 /* Never send DF frames. */
- #define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
- #define IPV6_PMTUDISC_DO 2 /* Always DF. */
-+#define IPV6_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
-
- /* Socket level values for IPv6. */
- #define SOL_IPV6 41
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/initspin.h uClibc-git/libc/sysdeps/linux/common/bits/initspin.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/initspin.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* Initial value of a spinlock. Most platforms should use zero,
- unless they only implement a "test and clear" operation instead of
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctls.h uClibc-git/libc/sysdeps/linux/common/bits/ioctls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/ioctls.h 2014-07-25 20:36:06.769334491 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IOCTL_H
- # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctl-types.h uClibc-git/libc/sysdeps/linux/common/bits/ioctl-types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctl-types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/ioctl-types.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IOCTL_H
- # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ipc.h uClibc-git/libc/sysdeps/linux/common/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/ipc.h 2014-07-25 20:36:06.769334491 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel-features.h uClibc-git/libc/sysdeps/linux/common/bits/kernel-features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel-features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/kernel-features.h 2014-07-25 20:36:06.769334491 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file must not contain any C code. At least it must be protected
- to allow using the file also in assembler files. */
-@@ -311,17 +310,19 @@
-
- /* Support for various CLOEXEC and NONBLOCK flags was added for x86,
- * x86-64, PPC, IA-64, and SPARC in 2.6.27. */
--#if __LINUX_KERNEL_VERSION >= 0x02061b \
-- && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
-- || defined __ia64__ || defined __sparc__ || defined __s390__)
-+#if (__LINUX_KERNEL_VERSION >= 0x02061b \
-+ && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
-+ || defined __ia64__ || defined __sparc__ || defined __s390__) \
-+ ) || (__LINUX_KERNEL_VERSION >= 0x020621 && defined __alpha__) \
-+ || defined __aarch64__ || defined __tile__
- /* # define __ASSUME_SOCK_CLOEXEC 1 */
- /* # define __ASSUME_IN_NONBLOCK 1 */
- # define __ASSUME_PIPE2 1
- /* # define __ASSUME_EVENTFD2 1 */
- /* # define __ASSUME_SIGNALFD4 1 */
-+/* # define __ASSUME_DUP3 1 */
- #endif
-
--
- /* These features were surely available with 2.4.12. */
- #if __LINUX_KERNEL_VERSION >= 132108 && defined __mc68000__
- # define __ASSUME_MMAP2_SYSCALL 1
-@@ -494,6 +495,14 @@
- # define __ASSUME_PRIVATE_FUTEX 1
- #endif
-
-+/* Support for fallocate was added in 2.6.23,
-+ on s390 only after 2.6.23-rc1, on alpha only after 2.6.33-rc1. */
-+#if __LINUX_KERNEL_VERSION >= 0x020617 \
-+ && (!defined __s390__ || __LINUX_KERNEL_VERSION >= 0x020618) \
-+ && (!defined __alpha__ || __LINUX_KERNEL_VERSION >= 0x020621)
-+# define __ASSUME_FALLOCATE 1
-+#endif
-+
- /* getcpu is a syscall for x86-64 since 3.1. */
- #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100
- # define __ASSUME_GETCPU_SYSCALL 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/common/bits/kernel_sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/kernel_sigaction.h 2014-07-25 20:36:06.769334491 +0200
-@@ -19,18 +19,6 @@
- unsigned long sa_flags;
- void (*sa_restorer)(void);
- };
--/* In uclibc, userspace struct sigaction is identical to
-- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
-- * See sigaction.h
-- */
--
--extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
-- struct old_kernel_sigaction *);
--
- #endif
-
--
--extern int __syscall_rt_sigaction(int, const struct sigaction *,
-- struct sigaction *, size_t);
--
- #endif /* _BITS_SIGACTION_STRUCT_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/locale.h uClibc-git/libc/sysdeps/linux/common/bits/locale.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/locale.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/locale.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _LOCALE_H && !defined _LANGINFO_H
- # error "Never use <bits/locale.h> directly; include <locale.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/local_lim.h uClibc-git/libc/sysdeps/linux/common/bits/local_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/local_lim.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-@@ -71,6 +70,8 @@
-
- /* The number of threads per process. */
- #define _POSIX_THREAD_THREADS_MAX 64
-+/* We have no predefined limit on the number of threads. */
-+#undef PTHREAD_THREADS_MAX
-
- /* Maximum amount by which a process can descrease its asynchronous I/O
- priority level. */
-@@ -93,3 +94,6 @@
-
- /* Maximum message queue priority level. */
- #define MQ_PRIO_MAX 32768
-+
-+/* Maximum value the semaphore can have. */
-+#define SEM_VALUE_MAX (2147483647)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathcalls.h uClibc-git/libc/sysdeps/linux/common/bits/mathcalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathcalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/mathcalls.h 2014-07-25 20:36:06.769334491 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* NOTE: Because of the special way this file is used by <math.h>, this
- file must NOT be protected from multiple inclusion as header files
-@@ -49,7 +48,7 @@
-
-
- /* __MATHCALLX(type,function,[suffix],args,attrib) and
-- * __MATHCALLI(type,function,[suffix],args) include libm_hidden_def
-+ * __MATHCALLI(type,function,[suffix],args) include libm_hidden_proto
- * (for "double" versions only, xxxf and xxxl do not get this treatment).
- *
- * __MATHDECL(type,function,[suffix],args) does not.
-@@ -57,7 +56,7 @@
- * (it is just a shortcut to __MATHDECL(_Mdouble_,function,[suffix],args)).
- *
- * __MATHDECL_PRIV(type,function,[suffix],args,attrib)
-- * includes libm_hidden_def (always) and declares __foo, not foo.
-+ * includes libm_hidden_proto (always) and declares __foo, not foo.
- */
-
-
-@@ -155,7 +154,7 @@
- __MATHCALLI (exp2,, (_Mdouble_ __x))
-
- /* Compute base-2 logarithm of X. */
--__MATHCALL (log2,, (_Mdouble_ __x))
-+__MATHCALLI (log2,, (_Mdouble_ __x))
- __END_NAMESPACE_C99
- #endif
-
-@@ -223,7 +222,7 @@
-
-
- /* Return the fractional part of X after dividing out `ilogb (X)'. */
--__MATHCALL (significand,, (_Mdouble_ __x))
-+__MATHCALLI (significand,, (_Mdouble_ __x))
- #endif /* Use misc. */
-
- #if defined __USE_MISC || defined __USE_ISOC99
-@@ -236,7 +235,7 @@
- #ifdef __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Return representation of NaN for double type. */
--__MATHCALLX (nan,, (__const char *__tagb), (__const__))
-+__MATHCALLX (nan,, (const char *__tagb), (__const__))
- __END_NAMESPACE_C99
- #endif
-
-@@ -278,7 +277,7 @@
-
- #if defined __USE_MISC || defined __USE_XOPEN
- /* Obsolete alias for `lgamma'. */
--__MATHCALL (gamma,, (_Mdouble_))
-+__MATHCALLI (gamma,, (_Mdouble_))
- #endif
-
- #ifdef __USE_MISC
-@@ -286,6 +285,8 @@
- `signgam'. The reentrant version instead takes a pointer and stores
- the value through it. */
- __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp))
-+/* __MATHCALLI does not work here, probably due to ,_r, */
-+libm_hidden_proto(lgamma_r)
- #endif
-
-
-@@ -376,5 +377,5 @@
- #if (defined __USE_MISC || defined __USE_XOPEN_EXTENDED) \
- && defined __UCLIBC_SUSV3_LEGACY__
- /* Return X times (2 to the Nth power). */
--__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n))
-+__MATHCALLI (scalb,, (_Mdouble_ __x, _Mdouble_ __n))
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathdef.h uClibc-git/libc/sysdeps/linux/common/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/mathdef.h 2014-07-25 20:36:06.769334491 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mman-common.h uClibc-git/libc/sysdeps/linux/common/bits/mman-common.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mman-common.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/mman-common.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-@@ -64,7 +63,7 @@
- # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
- # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
- # define MAP_STACK 0x20000 /* Allocation is for a stack. */
--# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mqueue.h uClibc-git/libc/sysdeps/linux/common/bits/mqueue.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mqueue.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/mqueue.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MQUEUE_H
- # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/msq.h uClibc-git/libc/sysdeps/linux/common/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/msq.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/nan.h uClibc-git/libc/sysdeps/linux/common/bits/nan.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/nan.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/nan.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/nan.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/netdb.h uClibc-git/libc/sysdeps/linux/common/bits/netdb.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/netdb.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/netdb.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _NETDB_H
- # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/poll.h uClibc-git/libc/sysdeps/linux/common/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/poll.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix1_lim.h uClibc-git/libc/sysdeps/linux/common/bits/posix1_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix1_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/posix1_lim.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix2_lim.h uClibc-git/libc/sysdeps/linux/common/bits/posix2_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix2_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/posix2_lim.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Never include this file directly; include <limits.h> instead.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix_opt.h uClibc-git/libc/sysdeps/linux/common/bits/posix_opt.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix_opt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/posix_opt.h 2014-07-25 20:36:06.773334513 +0200
-@@ -1,5 +1,5 @@
- /* Define POSIX options for Linux.
-- Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+ Copyright (C) 1996-2004, 2006, 2008, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -13,12 +13,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
--#ifndef _POSIX_OPT_H
--#define _POSIX_OPT_H 1
-+#ifndef _BITS_POSIX_OPT_H
-+#define _BITS_POSIX_OPT_H 1
-
- /* Job control is supported. */
- #define _POSIX_JOB_CONTROL 1
-@@ -27,28 +26,28 @@
- #define _POSIX_SAVED_IDS 1
-
- /* Priority scheduling is supported. */
--#define _POSIX_PRIORITY_SCHEDULING 200112L
-+#define _POSIX_PRIORITY_SCHEDULING 200809L
-
- /* Synchronizing file data is supported. */
--#define _POSIX_SYNCHRONIZED_IO 200112L
-+#define _POSIX_SYNCHRONIZED_IO 200809L
-
- /* The fsync function is present. */
--#define _POSIX_FSYNC 200112L
-+#define _POSIX_FSYNC 200809L
-
- /* Mapping of files to memory is supported. */
--#define _POSIX_MAPPED_FILES 200112L
-+#define _POSIX_MAPPED_FILES 200809L
-
- /* Locking of all memory is supported. */
--#define _POSIX_MEMLOCK 200112L
-+#define _POSIX_MEMLOCK 200809L
-
- /* Locking of ranges of memory is supported. */
--#define _POSIX_MEMLOCK_RANGE 200112L
-+#define _POSIX_MEMLOCK_RANGE 200809L
-
- /* Setting of memory protections is supported. */
--#define _POSIX_MEMORY_PROTECTION 200112L
-+#define _POSIX_MEMORY_PROTECTION 200809L
-
--/* Only root can change owner of file. */
--#define _POSIX_CHOWN_RESTRICTED 1
-+/* Some filesystems allow all users to change file ownership. */
-+#define _POSIX_CHOWN_RESTRICTED 0
-
- /* `c_cc' member of 'struct termios' structure can be disabled by
- using the value _POSIX_VDISABLE. */
-@@ -60,53 +59,67 @@
- /* X/Open realtime support is available. */
- #define _XOPEN_REALTIME 1
-
-+/* X/Open thread realtime support is available. */
-+#define _XOPEN_REALTIME_THREADS 1
-+
- /* XPG4.2 shared memory is supported. */
- #define _XOPEN_SHM 1
-
- /* Tell we have POSIX threads. */
--#define _POSIX_THREADS 200112L
-+#define _POSIX_THREADS 200809L
-
- /* We have the reentrant functions described in POSIX. */
- #define _POSIX_REENTRANT_FUNCTIONS 1
--#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
-+#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
-
- /* We provide priority scheduling for threads. */
--#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
-+#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
-
- /* We support user-defined stack sizes. */
--#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
-+#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
-
- /* We support user-defined stacks. */
--#define _POSIX_THREAD_ATTR_STACKADDR 200112L
-+#define _POSIX_THREAD_ATTR_STACKADDR 200809L
-
--#ifdef __UCLIBC_HAS_REALTIME__
--/* We support POSIX.1b semaphores. */
--#define _POSIX_SEMAPHORES 200112L
-+/* We support priority inheritence. */
-+#define _POSIX_THREAD_PRIO_INHERIT 200809L
-+
-+/* We support priority protection, though only for non-robust
-+ mutexes. */
-+#define _POSIX_THREAD_PRIO_PROTECT 200809L
-+
-+#ifdef __USE_XOPEN2K8
-+/* We support priority inheritence for robust mutexes. */
-+# define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L
-+
-+/* We do not support priority protection for robust mutexes. */
-+# define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1
- #endif
-
-+/* We support POSIX.1b semaphores. */
-+#define _POSIX_SEMAPHORES 200809L
-+
- /* Real-time signals are supported. */
--#define _POSIX_REALTIME_SIGNALS 200112L
-+#define _POSIX_REALTIME_SIGNALS 200809L
-
- /* We support asynchronous I/O. */
--#define _POSIX_ASYNCHRONOUS_IO 200112L
-+#define _POSIX_ASYNCHRONOUS_IO 200809L
- #define _POSIX_ASYNC_IO 1
- /* Alternative name for Unix98. */
- #define _LFS_ASYNCHRONOUS_IO 1
- /* Support for prioritization is also available. */
--#define _POSIX_PRIORITIZED_IO 200112L
-+#define _POSIX_PRIORITIZED_IO 200809L
-
- /* The LFS support in asynchronous I/O is also available. */
- #define _LFS64_ASYNCHRONOUS_IO 1
-
--#ifdef __UCLIBC_HAS_LFS__
- /* The rest of the LFS is also available. */
- #define _LFS_LARGEFILE 1
- #define _LFS64_LARGEFILE 1
- #define _LFS64_STDIO 1
--#endif
-
- /* POSIX shared memory objects are implemented. */
--#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
-+#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
-
- /* CPU-time clocks support needs to be checked at runtime. */
- #define _POSIX_CPUTIME 0
-@@ -114,61 +127,53 @@
- /* Clock support in threads must be also checked at runtime. */
- #define _POSIX_THREAD_CPUTIME 0
-
--#ifdef __UCLIBC_HAS_REGEX__
- /* GNU libc provides regular expression handling. */
- #define _POSIX_REGEXP 1
--#endif
-
- /* Reader/Writer locks are available. */
--#define _POSIX_READER_WRITER_LOCKS 200112L
-+#define _POSIX_READER_WRITER_LOCKS 200809L
-
- /* We have a POSIX shell. */
- #define _POSIX_SHELL 1
-
- /* We support the Timeouts option. */
--#define _POSIX_TIMEOUTS 200112L
-+#define _POSIX_TIMEOUTS 200809L
-
- /* We support spinlocks. */
--#define _POSIX_SPIN_LOCKS 200112L
-+#define _POSIX_SPIN_LOCKS 200809L
-
- /* The `spawn' function family is supported. */
--#if 0 /* no support in uClibc (yet) */
--#define _POSIX_SPAWN 200112L
--#endif
-+#define _POSIX_SPAWN 200809L
-
- /* We have POSIX timers. */
--#define _POSIX_TIMERS 200112L
-+#define _POSIX_TIMERS 200809L
-
- /* The barrier functions are available. */
--#define _POSIX_BARRIERS 200112L
-+#define _POSIX_BARRIERS 200809L
-
- /* POSIX message queues are available. */
--#define _POSIX_MESSAGE_PASSING 200112L
-+#define _POSIX_MESSAGE_PASSING 200809L
-
- /* Thread process-shared synchronization is supported. */
--#define _POSIX_THREAD_PROCESS_SHARED 200112L
-+#define _POSIX_THREAD_PROCESS_SHARED 200809L
-
- /* The monotonic clock might be available. */
- #define _POSIX_MONOTONIC_CLOCK 0
-
- /* The clock selection interfaces are available. */
--#define _POSIX_CLOCK_SELECTION 200112L
-+#define _POSIX_CLOCK_SELECTION 200809L
-
- /* Advisory information interfaces are available. */
--#define _POSIX_ADVISORY_INFO 200112L
-+#define _POSIX_ADVISORY_INFO 200809L
-
--#ifdef __UCLIBC_HAS_IPV6__
- /* IPv6 support is available. */
--#define _POSIX_IPV6 200112L
--#endif
-+#define _POSIX_IPV6 200809L
-
--#ifdef __UCLIBC_HAS_SOCKET__
- /* Raw socket support is available. */
--#define _POSIX_RAW_SOCKETS 200112L
--#endif
-+#define _POSIX_RAW_SOCKETS 200809L
-
- /* We have at least one terminal. */
--#define _POSIX2_CHAR_TERM 200112L
-+#define _POSIX2_CHAR_TERM 200809L
-
- /* Neither process nor thread sporadic server interfaces is available. */
- #define _POSIX_SPORADIC_SERVER -1
-@@ -183,8 +188,4 @@
- /* Typed memory objects are not available. */
- #define _POSIX_TYPED_MEMORY_OBJECTS -1
-
--/* No support for priority inheritance or protection so far. */
--#define _POSIX_THREAD_PRIO_INHERIT -1
--#define _POSIX_THREAD_PRIO_PROTECT -1
--
--#endif /* posix_opt.h */
-+#endif /* bits/posix_opt.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/resource.h uClibc-git/libc/sysdeps/linux/common/bits/resource.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/resource.h 2014-07-25 20:36:06.773334513 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_RESOURCE_H
- # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sched.h uClibc-git/libc/sysdeps/linux/common/bits/sched.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sched.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sched.h 2014-07-25 20:36:06.773334513 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __need_schedparam
-
-@@ -109,6 +108,7 @@
- /* Size definition for CPU sets. */
- # define __CPU_SETSIZE 1024
- # define __NCPUBITS (8 * sizeof (__cpu_mask))
-+# include <stdlib.h>
-
- /* Type for array elements in 'cpu_set_t'. */
- typedef unsigned long int __cpu_mask;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/select.h uClibc-git/libc/sysdeps/linux/common/bits/select.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/select.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/select.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SELECT_H
- # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sem.h uClibc-git/libc/sysdeps/linux/common/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sem.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/shm.h uClibc-git/libc/sysdeps/linux/common/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/shm.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigaction.h uClibc-git/libc/sysdeps/linux/common/bits/sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sigaction.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/common/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sigcontext.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
- # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/common/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sigcontextinfo.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* In general we cannot provide any information. */
- #define SIGCONTEXT struct sigcontext *
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/siginfo.h uClibc-git/libc/sysdeps/linux/common/bits/siginfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/siginfo.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined __need_siginfo_t \
- && !defined __need_sigevent_t
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/signum.h uClibc-git/libc/sysdeps/linux/common/bits/signum.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/signum.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef _SIGNAL_H
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigset.h uClibc-git/libc/sysdeps/linux/common/bits/sigset.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigset.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sigset.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGSET_H_types
- # define _SIGSET_H_types 1
-@@ -153,7 +152,7 @@
- checking is done in the non __ versions. */
-
- # if !defined __USE_EXTERN_INLINES || defined __PROVIDE_OUT_OF_LINE_SIGSETFN
--extern int __sigismember (__const __sigset_t *, int);
-+extern int __sigismember (const __sigset_t *, int);
- libc_hidden_proto(__sigismember)
- extern int __sigaddset (__sigset_t *, int);
- libc_hidden_proto(__sigaddset)
-@@ -179,7 +178,7 @@
- return BODY; \
- }
-
--__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, __const)
-+__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
- __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
- __SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigstack.h uClibc-git/libc/sysdeps/linux/common/bits/sigstack.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sigstack.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include this file directly. Use <signal.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigthread.h uClibc-git/libc/sysdeps/linux/common/bits/sigthread.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigthread.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sigthread.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SIGTHREAD_H
- #define _BITS_SIGTHREAD_H 1
-@@ -29,7 +28,7 @@
- /* Modify the signal mask for the calling thread. The arguments have
- the same meaning as for sigprocmask(2). */
- extern int pthread_sigmask (int __how,
-- __const __sigset_t *__restrict __newmask,
-+ const __sigset_t *__restrict __newmask,
- __sigset_t *__restrict __oldmask)__THROW;
-
- /* Send signal SIGNO to the given thread. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sockaddr.h uClibc-git/libc/sysdeps/linux/common/bits/sockaddr.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sockaddr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/sockaddr.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Never include this file directly; use <sys/socket.h> instead.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket.h uClibc-git/libc/sysdeps/linux/common/bits/socket.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/socket.h 2014-07-25 20:36:06.773334513 +0200
-@@ -1,5 +1,6 @@
- /* System-specific socket constants and types. Linux version.
-- Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
-+ Copyright (C) 1991,1992,1994-2001,2004,2006-2012
-+ Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -13,19 +14,17 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef __BITS_SOCKET_H
- #define __BITS_SOCKET_H
-
--#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
-+#ifndef _SYS_SOCKET_H
- # error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
- #endif
-
- #define __need_size_t
--#define __need_NULL
- #include <stddef.h>
-
- #include <limits.h>
-@@ -37,37 +36,8 @@
- # define __socklen_t_defined
- #endif
-
--/* Types of sockets. */
--enum __socket_type
--{
-- SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
-- byte streams. */
--#define SOCK_STREAM SOCK_STREAM
-- SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
-- of fixed maximum length. */
--#define SOCK_DGRAM SOCK_DGRAM
-- SOCK_RAW = 3, /* Raw protocol interface. */
--#define SOCK_RAW SOCK_RAW
-- SOCK_RDM = 4, /* Reliably-delivered messages. */
--#define SOCK_RDM SOCK_RDM
-- SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-- datagrams of fixed maximum length. */
--#define SOCK_SEQPACKET SOCK_SEQPACKET
-- SOCK_PACKET = 10, /* Linux specific way of getting packets
-- at the dev level. For writing rarp and
-- other similar things on the user level. */
--#define SOCK_PACKET SOCK_PACKET
--
-- /* Flags to be ORed into the type parameter of socket and socketpair and
-- used for the flags parameter of paccept. */
--
-- SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
-- new descriptor(s). */
--#define SOCK_CLOEXEC SOCK_CLOEXEC
-- SOCK_NONBLOCK = 04000 /* Atomically mark descriptor(s) as
-- non-blocking. */
--#define SOCK_NONBLOCK SOCK_NONBLOCK
--};
-+/* Get the architecture-dependent definition of enum __socket_type. */
-+#include <bits/socket_type.h>
-
- /* Protocol families. */
- #define PF_UNSPEC 0 /* Unspecified. */
-@@ -94,22 +64,24 @@
- #define PF_ASH 18 /* Ash. */
- #define PF_ECONET 19 /* Acorn Econet. */
- #define PF_ATMSVC 20 /* ATM SVCs. */
-+#define PF_RDS 21 /* RDS sockets. */
- #define PF_SNA 22 /* Linux SNA Project */
- #define PF_IRDA 23 /* IRDA sockets. */
- #define PF_PPPOX 24 /* PPPoX sockets. */
- #define PF_WANPIPE 25 /* Wanpipe API sockets. */
--#define PF_LLC 26 /* Linux LLC. */
--#define PF_CAN 29 /* Controller Area Network. */
--#define PF_TIPC 30 /* TIPC sockets. */
-+#define PF_LLC 26 /* Linux LLC. */
-+#define PF_CAN 29 /* Controller Area Network. */
-+#define PF_TIPC 30 /* TIPC sockets. */
- #define PF_BLUETOOTH 31 /* Bluetooth sockets. */
- #define PF_IUCV 32 /* IUCV sockets. */
--#define PF_RXRPC 33 /* RxRPC sockets. */
--#define PF_ISDN 34 /* mISDN sockets. */
--#define PF_PHONET 35 /* Phonet sockets. */
--#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
--#define PF_CAIF 37 /* CAIF sockets. */
--#define PF_ALG 38 /* Algorithm sockets. */
--#define PF_MAX 39 /* For now.. */
-+#define PF_RXRPC 33 /* RxRPC sockets. */
-+#define PF_ISDN 34 /* mISDN sockets. */
-+#define PF_PHONET 35 /* Phonet sockets. */
-+#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
-+#define PF_CAIF 37 /* CAIF sockets. */
-+#define PF_ALG 38 /* Algorithm sockets. */
-+#define PF_NFC 39 /* NFC sockets. */
-+#define PF_MAX 40 /* For now.. */
-
- /* Address families. */
- #define AF_UNSPEC PF_UNSPEC
-@@ -136,21 +108,23 @@
- #define AF_ASH PF_ASH
- #define AF_ECONET PF_ECONET
- #define AF_ATMSVC PF_ATMSVC
-+#define AF_RDS PF_RDS
- #define AF_SNA PF_SNA
- #define AF_IRDA PF_IRDA
- #define AF_PPPOX PF_PPPOX
- #define AF_WANPIPE PF_WANPIPE
--#define AF_LLC PF_LLC
--#define AF_CAN PF_CAN
--#define AF_TIPC PF_TIPC
-+#define AF_LLC PF_LLC
-+#define AF_CAN PF_CAN
-+#define AF_TIPC PF_TIPC
- #define AF_BLUETOOTH PF_BLUETOOTH
--#define AF_IUCV PF_IUCV
--#define AF_RXRPC PF_RXRPC
--#define AF_ISDN PF_ISDN
--#define AF_PHONET PF_PHONET
--#define AF_IEEE802154 PF_IEEE802154
--#define AF_CAIF PF_CAIF
--#define AF_ALG PF_ALG
-+#define AF_IUCV PF_IUCV
-+#define AF_RXRPC PF_RXRPC
-+#define AF_ISDN PF_ISDN
-+#define AF_PHONET PF_PHONET
-+#define AF_IEEE802154 PF_IEEE802154
-+#define AF_CAIF PF_CAIF
-+#define AF_ALG PF_ALG
-+#define AF_NFC PF_NFC
- #define AF_MAX PF_MAX
-
- /* Socket level values. Others are defined in the appropriate headers.
-@@ -235,8 +209,14 @@
- #define MSG_ERRQUEUE MSG_ERRQUEUE
- MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
- #define MSG_NOSIGNAL MSG_NOSIGNAL
-- MSG_MORE = 0x8000 /* Sender will send more. */
-+ MSG_MORE = 0x8000, /* Sender will send more. */
- #define MSG_MORE MSG_MORE
-+ MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
-+#define MSG_WAITFORONE MSG_WAITFORONE
-+ MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
-+ descriptor received through
-+ SCM_RIGHTS. */
-+#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
- };
-
-
-@@ -290,7 +270,7 @@
- #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
- #define CMSG_FIRSTHDR(mhdr) \
- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
-- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
-+ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
- #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
- & (size_t) ~(sizeof (size_t) - 1))
- #define CMSG_SPACE(len) (CMSG_ALIGN (len) \
-@@ -302,14 +282,14 @@
- libc_hidden_proto(__cmsg_nxthdr)
- #ifdef __USE_EXTERN_INLINES
- # ifndef _EXTERN_INLINE
--# define _EXTERN_INLINE extern __inline
-+# define _EXTERN_INLINE __extern_inline
- # endif
- _EXTERN_INLINE struct cmsghdr *
- __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
- {
- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
- /* The kernel header does this so there may be a reason. */
-- return 0;
-+ return (struct cmsghdr *) 0;
-
- __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
- + CMSG_ALIGN (__cmsg->cmsg_len));
-@@ -318,7 +298,7 @@
- || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
- > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
- /* No more entries. */
-- return 0;
-+ return (struct cmsghdr *) 0;
- return __cmsg;
- }
- #endif /* Use `extern inline'. */
-@@ -329,20 +309,21 @@
- {
- SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
- #define SCM_RIGHTS SCM_RIGHTS
--#ifdef __USE_BSD
-+#ifdef __USE_GNU
- , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
- # define SCM_CREDENTIALS SCM_CREDENTIALS
- #endif
- };
-
-+#ifdef __USE_GNU
- /* User visible structure for SCM_CREDENTIALS message */
--
- struct ucred
- {
- pid_t pid; /* PID of sending process. */
- uid_t uid; /* UID of sending process. */
- gid_t gid; /* GID of sending process. */
- };
-+#endif
-
- /* Get socket manipulation related informations from kernel headers. */
- #ifndef __GLIBC__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket_type.h uClibc-git/libc/sysdeps/linux/common/bits/socket_type.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/bits/socket_type.h 2014-07-25 20:36:06.773334513 +0200
-@@ -0,0 +1,54 @@
-+/* Define enum __socket_type for generic Linux.
-+ Copyright (C) 1991-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_SOCKET_H
-+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
-+#endif
-+
-+/* Types of sockets. */
-+enum __socket_type
-+{
-+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
-+ byte streams. */
-+#define SOCK_STREAM SOCK_STREAM
-+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
-+ of fixed maximum length. */
-+#define SOCK_DGRAM SOCK_DGRAM
-+ SOCK_RAW = 3, /* Raw protocol interface. */
-+#define SOCK_RAW SOCK_RAW
-+ SOCK_RDM = 4, /* Reliably-delivered messages. */
-+#define SOCK_RDM SOCK_RDM
-+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-+ datagrams of fixed maximum length. */
-+#define SOCK_SEQPACKET SOCK_SEQPACKET
-+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
-+#define SOCK_DCCP SOCK_DCCP
-+ SOCK_PACKET = 10, /* Linux specific way of getting packets
-+ at the dev level. For writing rarp and
-+ other similar things on the user level. */
-+#define SOCK_PACKET SOCK_PACKET
-+
-+ /* Flags to be ORed into the type parameter of socket and socketpair. */
-+
-+ SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
-+ new descriptor(s). */
-+#define SOCK_CLOEXEC SOCK_CLOEXEC
-+ SOCK_NONBLOCK = 00004000 /* Atomically mark descriptor(s) as
-+ non-blocking. */
-+#define SOCK_NONBLOCK SOCK_NONBLOCK
-+};
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stab.def uClibc-git/libc/sysdeps/linux/common/bits/stab.def
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stab.def 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/stab.def 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This contains contribution from Cygnus Support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/common/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/stackinfo.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. Since there is no general truth we can't say
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statfs.h uClibc-git/libc/sysdeps/linux/common/bits/statfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/statfs.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STATFS_H
- # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stat.h uClibc-git/libc/sysdeps/linux/common/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/stat.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statvfs.h uClibc-git/libc/sysdeps/linux/common/bits/statvfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statvfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/statvfs.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STATVFS_H
- # error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio.h uClibc-git/libc/sysdeps/linux/common/bits/stdio.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/stdio.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _STDIO_H
- # error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio_lim.h uClibc-git/libc/sysdeps/linux/common/bits/stdio_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/stdio_lim.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
- # error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/syscalls-common.h uClibc-git/libc/sysdeps/linux/common/bits/syscalls-common.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/syscalls-common.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/syscalls-common.h 2014-07-25 20:36:06.773334513 +0200
-@@ -39,13 +39,13 @@
-
- /* Just like INLINE_SYSCALL(), but take a non-constant syscall (NCS) argument */
- #ifndef INLINE_SYSCALL_NCS
--# define INLINE_SYSCALL_NCS(name, nr, args...) \
-+# define INLINE_SYSCALL_NCS(num, nr, args...) \
- (__extension__ \
- ({ \
- INTERNAL_SYSCALL_DECL(__err); \
- (__extension__ \
- ({ \
-- long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args); \
-+ long __res = INTERNAL_SYSCALL_NCS(num, __err, nr, args); \
- if (unlikely(INTERNAL_SYSCALL_ERROR_P(__res, __err))) { \
- __set_errno(INTERNAL_SYSCALL_ERRNO(__res, __err)); \
- __res = -1L; \
-@@ -57,10 +57,10 @@
- )
- #endif
- #ifndef INLINE_SYSCALL_NOERR_NCS
--# define INLINE_SYSCALL_NOERR_NCS(name, nr, args...) \
-+# define INLINE_SYSCALL_NOERR_NCS(num, nr, args...) \
- ({ \
- INTERNAL_SYSCALL_DECL(__err); \
-- long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args); \
-+ long __res = INTERNAL_SYSCALL_NCS(num, __err, nr, args); \
- __res; \
- })
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/termios.h uClibc-git/libc/sysdeps/linux/common/bits/termios.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/termios.h 2014-07-25 20:36:06.773334513 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TERMIOS_H
- # error "Never include <bits/termios.h> directly; use <termios.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/time.h uClibc-git/libc/sysdeps/linux/common/bits/time.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/time.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/time.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Never include this file directly; use <time.h> instead.
-@@ -54,6 +53,12 @@
- # define CLOCK_PROCESS_CPUTIME_ID 2
- /* Thread-specific CPU-time clock. */
- # define CLOCK_THREAD_CPUTIME_ID 3
-+/* Monotonic system-wide clock, not adjusted for frequency scaling. */
-+# define CLOCK_MONOTONIC_RAW 4
-+/* Identifier for system-wide realtime clock, updated only on ticks. */
-+# define CLOCK_REALTIME_COARSE 5
-+/* Monotonic system-wide clock, updated only on ticks. */
-+# define CLOCK_MONOTONIC_COARSE 6
-
- /* Flag to indicate time is absolute. */
- # define TIMER_ABSTIME 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/types.h uClibc-git/libc/sysdeps/linux/common/bits/types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/types.h 2014-07-25 20:36:06.773334513 +0200
-@@ -1,5 +1,5 @@
- /* bits/types.h -- definitions of __*_t types underlying *_t types.
-- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-+ Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Never include this file directly; use <sys/types.h> instead.
-@@ -27,8 +26,6 @@
- #include <features.h>
- #include <bits/wordsize.h>
-
--#define __need_size_t
--#include <stddef.h>
- #ifdef _LIBC
- #include <bits/kernel_types.h>
- #endif
-@@ -49,7 +46,7 @@
- #if __WORDSIZE == 64
- typedef signed long int __int64_t;
- typedef unsigned long int __uint64_t;
--#elif defined(__GNUC__)
-+#elif defined(__GNUC__) || defined __ICC || defined __TenDRA__
- __extension__ typedef signed long long int __int64_t;
- __extension__ typedef unsigned long long int __uint64_t;
- #endif
-@@ -58,7 +55,7 @@
- #if __WORDSIZE == 64
- typedef long int __quad_t;
- typedef unsigned long int __u_quad_t;
--#elif defined(__GNUC__)
-+#elif defined(__GNUC__) || defined __ICC || defined __TenDRA__
- __extension__ typedef long long int __quad_t;
- __extension__ typedef unsigned long long int __u_quad_t;
- #else
-@@ -200,9 +197,4 @@
-
- #undef __STD_TYPE
-
--/* Now add the thread types. */
--#if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98)
--# include <bits/pthreadtypes.h>
--#endif
--
- #endif /* bits/types.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/typesizes.h uClibc-git/libc/sysdeps/linux/common/bits/typesizes.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/typesizes.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_arch_features.h 2014-07-25 20:36:06.773334513 +0200
-@@ -14,8 +14,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_ctype.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_ctype.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_ctype.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_ctype.h 2014-07-25 20:36:06.773334513 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_fpmax.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_fpmax.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_fpmax.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_fpmax.h 2014-07-25 20:36:06.773334513 +0200
-@@ -12,10 +12,6 @@
- #ifndef _UCLIBC_FPMAX_H
- #define _UCLIBC_FPMAX_H
-
--#ifndef _ISOC99_SOURCE
--#define _ISOC99_SOURCE 1
--#endif
--
- #include <features.h>
- #include <float.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_locale.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_locale.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_locale.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_locale.h 2014-07-25 20:36:06.773334513 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -93,7 +92,7 @@
- #ifdef _LIBC
-
- /* extern void _locale_set(const unsigned char *p); */
--/* extern void _locale_init(void); */
-+extern void weak_function _locale_init(void) attribute_hidden;
-
- #include <stddef.h>
- #include <stdint.h>
-@@ -338,7 +337,9 @@
- extern __locale_t __curlocale_var;
- # ifdef __UCLIBC_HAS_THREADS__
- extern __locale_t __curlocale(void) __THROW __attribute__ ((__const__));
-+libc_hidden_proto(__curlocale)
- extern __locale_t __curlocale_set(__locale_t newloc);
-+libc_hidden_proto(__curlocale_set)
- # define __UCLIBC_CURLOCALE (__curlocale())
- # else
- # define __UCLIBC_CURLOCALE (__curlocale_var)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_local_lim.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_local_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_local_lim.h 2014-07-25 20:36:06.773334513 +0200
-@@ -11,14 +11,22 @@
- #define _BITS_UCLIBC_LOCAL_LIM_H 1
-
- /* This file works correctly only if local_lim.h is the NPTL version */
--#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX
-+#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX || !defined SEM_VALUE_MAX
- # error local_lim.h was incorrectly updated, use the NPTL version from glibc
- #endif
-
- /* This should really be moved to thread specific directories */
- #if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_HAS_THREADS_NATIVE__
-+/* glibc uses 16384 */
- # define PTHREAD_THREADS_MAX 1024
- # define TIMER_MAX 256
-+# ifdef __LINUXTHREADS_OLD__
-+# undef SEM_VALUE_MAX
-+# define SEM_VALUE_MAX ((int) ((~0u) >> 1))
-+# endif
-+# undef PTHREAD_STACK_MIN
-+/* glibc uses at least 16364 */
-+# define PTHREAD_STACK_MIN 1024
- #endif
-
- #ifndef __UCLIBC_HAS_THREADS__
-@@ -28,6 +36,7 @@
- # undef PTHREAD_DESTRUCTOR_ITERATIONS
- # undef PTHREAD_STACK_MIN
- # undef DELAYTIMER_MAX
-+# undef SEM_VALUE_MAX
- #endif
-
- #endif /* bits/uClibc_local_lim.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_mutex.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_mutex.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_mutex.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_mutex.h 2014-07-25 20:36:06.773334513 +0200
-@@ -13,7 +13,9 @@
- #ifdef __UCLIBC_HAS_THREADS__
-
- #include <pthread.h>
-+#ifdef _LIBC
- #include <bits/uClibc_pthread.h>
-+#endif
-
- #define __UCLIBC_MUTEX_TYPE pthread_mutex_t
-
-@@ -108,8 +110,8 @@
- #define __UCLIBC_IO_MUTEX_AUTO_UNLOCK(M,A) __UCLIBC_MUTEX_AUTO_UNLOCK(M,A)
- #define __UCLIBC_IO_MUTEX_LOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M)
- #define __UCLIBC_IO_MUTEX_UNLOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M)
--#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
--#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
-+#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C)
-+#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C)
-
- #endif /* of __USE_STDIO_FUTEXES__ */
-
-@@ -146,8 +148,8 @@
- #define __UCLIBC_IO_MUTEX_AUTO_UNLOCK(M,A) __UCLIBC_MUTEX_AUTO_UNLOCK(M,A)
- #define __UCLIBC_IO_MUTEX_LOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M)
- #define __UCLIBC_IO_MUTEX_UNLOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M)
--#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
--#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
-+#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C)
-+#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C)
-
- #endif /* of __UCLIBC_HAS_THREADS__ */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_page.h 2014-07-25 20:36:06.773334513 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h 2014-07-25 20:36:06.773334513 +0200
-@@ -0,0 +1,136 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+/*
-+ * Never include this file directly; use <unistd.h> instead.
-+ */
-+
-+#ifndef _BITS_UCLIBC_POSIX_OPT_H
-+#define _BITS_UCLIBC_POSIX_OPT_H 1
-+
-+/* This file works correctly only if posix_opt.h is the NPTL version */
-+#ifndef _POSIX_THREADS
-+# error posix_opt.h was incorrectly updated, use the NPTL version from glibc
-+#endif
-+
-+/* change first options based on what glibc does */
-+
-+#ifndef __UCLIBC_HAS_THREADS_NATIVE__
-+# undef _POSIX_THREAD_PROCESS_SHARED
-+# define _POSIX_THREAD_PROCESS_SHARED -1
-+# undef _POSIX_CLOCK_SELECTION
-+# define _POSIX_CLOCK_SELECTION -1
-+# undef _POSIX_THREAD_PRIO_INHERIT
-+# define _POSIX_THREAD_PRIO_INHERIT -1
-+# undef _POSIX_THREAD_PRIO_PROTECT
-+# define _POSIX_THREAD_PRIO_PROTECT -1
-+# undef _POSIX_THREAD_ROBUST_PRIO_INHERIT
-+# undef _POSIX_THREAD_ROBUST_PRIO_PROTECT
-+#endif
-+
-+/* this has to be adapted to uClibc, not all are thread related */
-+#ifndef __UCLIBC_HAS_THREADS__
-+# undef _XOPEN_REALTIME_THREADS
-+# undef _POSIX_THREADS
-+# undef _POSIX_REENTRANT_FUNCTIONS
-+# undef _POSIX_THREAD_SAFE_FUNCTIONS
-+# undef _POSIX_THREAD_PRIORITY_SCHEDULING
-+# undef _POSIX_THREAD_ATTR_STACKSIZE
-+# undef _POSIX_THREAD_ATTR_STACKADDR
-+# undef _POSIX_THREAD_PRIO_INHERIT
-+# undef _POSIX_THREAD_PRIO_PROTECT
-+# undef _POSIX_SEMAPHORES
-+# undef _POSIX_ASYNCHRONOUS_IO
-+# undef _POSIX_ASYNC_IO
-+# undef _LFS_ASYNCHRONOUS_IO
-+# undef _POSIX_PRIORITIZED_IO
-+# undef _LFS64_ASYNCHRONOUS_IO
-+# undef _POSIX_CPUTIME
-+# undef _POSIX_THREAD_CPUTIME
-+# undef _POSIX_READER_WRITER_LOCKS
-+# undef _POSIX_TIMEOUTS
-+# undef _POSIX_SPIN_LOCKS
-+# undef _POSIX_BARRIERS
-+# undef _POSIX_MESSAGE_PASSING
-+# undef _POSIX_THREAD_PROCESS_SHARED
-+# undef _POSIX_CLOCK_SELECTION
-+# undef _POSIX_ADVISORY_INFO
-+/*# undef _POSIX_RAW_SOCKETS*/
-+/*# undef _POSIX2_CHAR_TERM*/
-+# undef _POSIX_SPORADIC_SERVER
-+# undef _POSIX_THREAD_SPORADIC_SERVER
-+/*# undef _POSIX_TRACE
-+# undef _POSIX_TRACE_EVENT_FILTER
-+# undef _POSIX_TRACE_INHERIT
-+# undef _POSIX_TRACE_LOG
-+# undef _POSIX_TYPED_MEMORY_OBJECTS*/
-+#endif
-+
-+/* were in earlier version, used by sysconf */
-+#define _POSIX_POLL 1
-+#define _POSIX_SELECT 1
-+
-+/* disable independently unsupported features */
-+#undef _POSIX_TRACE
-+#undef _POSIX_TRACE_EVENT_FILTER
-+#undef _POSIX_TRACE_INHERIT
-+#undef _POSIX_TRACE_LOG
-+#undef _POSIX_TYPED_MEMORY_OBJECTS
-+#undef _POSIX_SPAWN
-+
-+#if 0 /* does uClibc support these? */
-+# undef _POSIX_ASYNCHRONOUS_IO
-+# undef _POSIX_ASYNC_IO
-+# undef _LFS_ASYNCHRONOUS_IO
-+# undef _POSIX_PRIORITIZED_IO
-+# undef _LFS64_ASYNCHRONOUS_IO
-+# undef _POSIX_MESSAGE_PASSING
-+#endif
-+
-+/* change options based on uClibc config options */
-+
-+#if 0 /*ndef __UCLIBC_HAS_POSIX_TIMERS__*/
-+# undef _POSIX_TIMERS
-+# undef _POSIX_THREAD_CPUTIME
-+#endif
-+
-+#if 0 /*ndef __UCLIBC_HAS_POSIX_BARRIERS__*/
-+# undef _POSIX_BARRIERS
-+#endif
-+
-+#if 0 /*ndef __UCLIBC_HAS_POSIX_SPINLOCKS__*/
-+# undef _POSIX_SPIN_LOCKS
-+#endif
-+
-+#ifndef __ARCH_USE_MMU__
-+# undef _POSIX_MEMLOCK
-+# undef _POSIX_MEMLOCK_RANGE
-+# undef _POSIX_MEMORY_PROTECTION
-+#endif
-+
-+#ifndef __UCLIBC_HAS_LFS__
-+# undef _LFS64_ASYNCHRONOUS_IO
-+# undef _LFS_LARGEFILE
-+# undef _LFS64_LARGEFILE
-+# undef _LFS64_STDIO
-+#endif
-+
-+#ifndef __UCLIBC_HAS_REALTIME__
-+# undef _POSIX_SEMAPHORES
-+#endif
-+
-+#ifndef __UCLIBC_HAS_REGEX__
-+# undef _POSIX_REGEXP
-+#endif
-+
-+#ifndef __UCLIBC_HAS_IPV6__
-+# undef _POSIX_IPV6
-+#endif
-+
-+#ifndef __UCLIBC_HAS_SOCKET__
-+# undef _POSIX_RAW_SOCKETS
-+#endif
-+
-+#endif /* bits/uClibc_posix_opt.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_pthread.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_pthread.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_pthread.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_pthread.h 2014-07-25 20:36:06.773334513 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* Supply prototypes for the internal thread functions used by the
-@@ -27,15 +26,12 @@
- # error "Always include <pthread.h> rather than <bits/uClibc_pthread.h>"
- #endif
-
--#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
--
- struct _pthread_cleanup_buffer;
-
- /* Threading functions internal to uClibc. Make these thread functions
- * weak so that we can elide them from single-threaded processes. */
- extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutex_attr);
--extern int weak_function __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-+ const pthread_mutexattr_t *__mutex_attr);
- extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex);
- extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex);
- extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex);
-@@ -47,5 +43,3 @@
- int __execute);
-
- #endif
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_stdio.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_stdio.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2014-07-25 20:36:06.773334513 +0200
-@@ -54,27 +54,6 @@
- #endif
-
- /**********************************************************************/
--/* Make sure defines related to large files are consistent. */
--#ifdef _LIBC
--
--#ifdef __UCLIBC_HAS_LFS__
--#undef __USE_LARGEFILE
--#undef __USE_LARGEFILE64
--#undef __USE_FILE_OFFSET64
--/* If we're actually building uClibc with large file support, only define... */
--#define __USE_LARGEFILE64 1
--#endif /* __UCLIBC_HAS_LFS__ */
--
--#else /* not _LIBC */
--
--#ifndef __UCLIBC_HAS_LFS__
--#if defined(__LARGEFILE64_SOURCE) || defined(__USE_LARGEFILE64) || defined(__USE_FILE_OFFSET64)
--#error Sorry... uClibc was built without large file support!
--#endif
--#endif /* __UCLIBC_HAS_LFS__ */
--
--#endif /* _LIBC */
--/**********************************************************************/
- #ifdef __UCLIBC_HAS_WCHAR__
-
- #define __need_wchar_t
-@@ -99,22 +78,7 @@
- #define __STDIO_PUTC_MACRO
- #endif
-
--
--/* These are consistency checks on the different options */
--
--#ifndef __STDIO_BUFFERS
--#undef __STDIO_GETC_MACRO
--#undef __STDIO_PUTC_MACRO
--#endif
--
--#ifdef __BCC__
--#undef __UCLIBC_HAS_LFS__
--#endif
--
--#ifndef __UCLIBC_HAS_LFS__
--#undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__
--#endif
--
-+#ifdef _LIBC
- /**********************************************************************/
- #include <bits/uClibc_mutex.h>
-
-@@ -169,6 +133,8 @@
- #endif
- #endif
-
-+#endif /* _LIBC */
-+
- /**********************************************************************/
-
- #define __STDIO_IOFBF 0 /* Fully buffered. */
-@@ -209,7 +175,7 @@
-
- typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __bufsize);
- typedef __ssize_t __io_write_fn(void *__cookie,
-- __const char *__buf, size_t __bufsize);
-+ const char *__buf, size_t __bufsize);
- /* NOTE: GLIBC difference!!! -- fopencookie seek function
- * For glibc, the type of pos is always (__off64_t *) but in our case
- * it is type (__off_t *) when the lib is built without large file support.
-@@ -224,7 +190,7 @@
- __io_close_fn *close;
- } _IO_cookie_io_functions_t;
-
--#if defined(_LIBC) || defined(_GNU_SOURCE)
-+#ifdef __USE_GNU
-
- typedef __io_read_fn cookie_read_function_t;
- typedef __io_write_fn cookie_write_function_t;
-@@ -238,6 +204,17 @@
- #endif
- /**********************************************************************/
-
-+#if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_IO_MUTEX
-+/* keep this in sync with uClibc_mutex.h */
-+# ifdef __USE_STDIO_FUTEXES__
-+# include <bits/stdio-lock.h>
-+# define __UCLIBC_IO_MUTEX(M) _IO_lock_t M
-+# else
-+# include <bits/pthreadtypes.h>
-+# define __UCLIBC_IO_MUTEX(M) pthread_mutex_t M
-+# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
-+#endif
-+
- struct __STDIO_FILE_STRUCT {
- unsigned short __modeflags;
- /* There could be a hole here, but modeflags is used most.*/
-@@ -351,22 +328,27 @@
- **********************************************************************/
- #if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
-
--extern void _stdio_init(void) attribute_hidden;
--extern void _stdio_term(void) attribute_hidden;
-+extern void weak_function _stdio_init(void) attribute_hidden;
-+extern void weak_function _stdio_term(void) attribute_hidden;
-
- #ifdef __STDIO_HAS_OPENLIST
-
- extern struct __STDIO_FILE_STRUCT *_stdio_openlist;
-
- #ifdef __UCLIBC_HAS_THREADS__
--__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_add_lock);
-+__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_add_lock)
-+# ifndef __UCLIBC_HAS_THREADS_NATIVE__
-+ attribute_hidden
-+# endif
-+ ;
- #ifdef __STDIO_BUFFERS
--__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_del_lock);
--extern volatile int _stdio_openlist_use_count; /* _stdio_openlist_del_lock */
--extern int _stdio_openlist_del_count; /* _stdio_openlist_del_lock */
-+__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_del_lock)
-+# ifndef __UCLIBC_HAS_THREADS_NATIVE__
-+ attribute_hidden
-+# endif
-+ ;
- #endif
- extern int _stdio_user_locking;
--extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
- #endif
-
- #endif
-@@ -465,6 +447,8 @@
-
- #else
-
-+# define __stdin stdin
-+
- #endif /* __STDIO_GETC_MACRO */
-
-
-@@ -524,4 +508,8 @@
- # endif
- # endif
-
-+#else
-+
-+# define __stdout stdout
-+
- #endif /* __STDIO_PUTC_MACRO */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_touplow.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_touplow.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_touplow.h 2014-07-25 20:36:06.777334534 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h 2014-07-25 20:36:06.777334534 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -28,16 +27,6 @@
- #ifndef _UINTMAXTOSTR_H
- #define _UINTMAXTOSTR_H 1
-
--#ifdef _FEATURES_H
--# ifndef __USE_ISOC99
--# error features was included without defining _ISOC99_SOURCE!
--# endif
--#else
--# ifndef _ISOC99_SOURCE
--# define _ISOC99_SOURCE
--# endif
--#endif
--
- #include <features.h>
- #include <limits.h>
- #include <stdint.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uwchar.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uwchar.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uwchar.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uwchar.h 2014-07-25 20:36:06.777334534 +0200
-@@ -11,9 +11,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_va_copy.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_va_copy.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_va_copy.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_va_copy.h 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-+ * License along with the GNU C Library; see the file COPYING.LIB. If
-+ * not, see <http://www.gnu.org/licenses/>.
- */
-
- #ifndef _UCLIBC_VA_COPY_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uio.h uClibc-git/libc/sysdeps/linux/common/bits/uio.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uio.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/uio.h 2014-07-25 20:36:06.777334534 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SYS_UIO_H && !defined _FCNTL_H
- # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ustat.h uClibc-git/libc/sysdeps/linux/common/bits/ustat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ustat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/ustat.h 2014-07-25 20:36:06.777334534 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USTAT_H
- # error "Never include <bits/ustat.h> directly; use <sys/ustat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmp.h uClibc-git/libc/sysdeps/linux/common/bits/utmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/utmp.h 2014-07-25 20:36:06.777334534 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UTMP_H
- # error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmpx.h uClibc-git/libc/sysdeps/linux/common/bits/utmpx.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmpx.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/utmpx.h 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UTMPX_H
- # error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utsname.h uClibc-git/libc/sysdeps/linux/common/bits/utsname.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utsname.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/utsname.h 2014-07-25 20:36:06.777334534 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UTSNAME_H
- # error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitflags.h uClibc-git/libc/sysdeps/linux/common/bits/waitflags.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitflags.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/waitflags.h 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SYS_WAIT_H && !defined _STDLIB_H
- # error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitstatus.h uClibc-git/libc/sysdeps/linux/common/bits/waitstatus.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitstatus.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/waitstatus.h 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SYS_WAIT_H && !defined _STDLIB_H
- # error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
-@@ -25,7 +24,7 @@
- /* Everything extant so far uses these same bits. */
-
-
--/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
-+/* If WIFEXITED(STATUS), the low-order 8 bits of exit(N). */
- #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
-
- /* If WIFSIGNALED(STATUS), the terminating signal. */
-@@ -37,12 +36,20 @@
- /* Nonzero if STATUS indicates normal termination. */
- #define __WIFEXITED(status) (__WTERMSIG(status) == 0)
-
--/* Nonzero if STATUS indicates termination by a signal. */
--#define __WIFSIGNALED(status) \
-- (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
-+/* Nonzero if STATUS indicates termination by a signal.
-+ * Note that status 0x007f is "died from signal 127", not "stopped by signal 0".
-+ * This does happen on MIPS.
-+ * The comparison is "< 0xff", not "< 0x7f", because WCOREDUMP bit (0x80)
-+ * can be set too.
-+ */
-+#define __WIFSIGNALED(status) (((unsigned)((status) & 0xffff) - 1U) < 0xffU)
-
- /* Nonzero if STATUS indicates the child is stopped. */
-+#if !defined(__mips__)
- #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
-+#else
-+#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f && ((status) & 0xff00))
-+#endif
-
- /* Nonzero if STATUS indicates the child continued after a stop. We only
- define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/wchar.h uClibc-git/libc/sysdeps/linux/common/bits/wchar.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/wchar.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/wchar.h 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_WCHAR_H
- #define _BITS_WCHAR_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/xopen_lim.h uClibc-git/libc/sysdeps/linux/common/bits/xopen_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/xopen_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/bits/xopen_lim.h 2014-07-25 20:36:06.777334534 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Never include this file directly; use <limits.h> instead.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/brk.c uClibc-git/libc/sysdeps/linux/common/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/brk.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,10 +8,8 @@
- #include <unistd.h>
- #include <sys/syscall.h>
-
--libc_hidden_proto(brk)
--
- #define __NR___syscall_brk __NR_brk
--static inline _syscall1(void *, __syscall_brk, void *, end)
-+static __always_inline _syscall1(void *, __syscall_brk, void *, end)
-
- /* This must be initialized data because commons can't have aliases. */
- void * __curbrk attribute_hidden = 0;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/capget.c uClibc-git/libc/sysdeps/linux/common/capget.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/capget.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/capget.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,7 +8,8 @@
- */
-
- #include <sys/syscall.h>
--int capget(void *header, void *data);
-+
- #ifdef __NR_capget
-+int capget(void *header, void *data);
- _syscall2(int, capget, void *, header, void *, data)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/capset.c uClibc-git/libc/sysdeps/linux/common/capset.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/capset.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/capset.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,7 +9,7 @@
-
- #include <sys/syscall.h>
-
--int capset(void *header, const void *data);
- #ifdef __NR_capset
-+int capset(void *header, const void *data);
- _syscall2(int, capset, void *, header, const void *, data)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chdir.c uClibc-git/libc/sysdeps/linux/common/chdir.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/chdir.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/chdir.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,15 +8,7 @@
- */
-
- #include <sys/syscall.h>
--#include <string.h>
- #include <unistd.h>
--#include <sys/param.h>
-
--
--#define __NR___syscall_chdir __NR_chdir
--static __inline__ _syscall1(int, __syscall_chdir, const char *, path)
--int chdir(const char *path)
--{
-- return __syscall_chdir(path);
--}
-+_syscall1(int, chdir, const char *, path)
- libc_hidden_def(chdir)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chmod.c uClibc-git/libc/sysdeps/linux/common/chmod.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/chmod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/chmod.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,13 +9,22 @@
-
- #include <sys/syscall.h>
- #include <sys/stat.h>
-+#include <unistd.h>
-
-+#if defined __NR_fchmodat && !defined __NR_chmod
-+# include <fcntl.h>
-+int chmod(const char *path, mode_t mode)
-+{
-+ return fchmodat(AT_FDCWD, path, mode, 0);
-+}
-
--#define __NR___syscall_chmod __NR_chmod
-+#else
-+# define __NR___syscall_chmod __NR_chmod
- static __inline__ _syscall2(int, __syscall_chmod, const char *, path, __kernel_mode_t, mode)
-
- int chmod(const char *path, mode_t mode)
- {
- return __syscall_chmod(path, mode);
- }
-+#endif
- libc_hidden_def(chmod)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chown.c uClibc-git/libc/sysdeps/linux/common/chown.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/chown.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/chown.c 2014-07-25 20:36:06.777334534 +0200
-@@ -11,18 +11,26 @@
- #include <unistd.h>
- #include <bits/wordsize.h>
-
-+#if defined __NR_fchownat && !defined __NR_chown
-+# include <fcntl.h>
-+int chown(const char *path, uid_t owner, gid_t group)
-+{
-+ return fchownat(AT_FDCWD, path, owner, group, 0);
-+}
-
--#if (__WORDSIZE == 32 && defined(__NR_chown32)) || __WORDSIZE == 64
--# ifdef __NR_chown32
--# undef __NR_chown
--# define __NR_chown __NR_chown32
--# endif
-+#else
-+
-+# if (__WORDSIZE == 32 && defined(__NR_chown32)) || __WORDSIZE == 64
-+# ifdef __NR_chown32
-+# undef __NR_chown
-+# define __NR_chown __NR_chown32
-+# endif
-
- _syscall3(int, chown, const char *, path, uid_t, owner, gid_t, group)
-
--#else
-+# else
-
--# define __NR___syscall_chown __NR_chown
-+# define __NR___syscall_chown __NR_chown
- static __inline__ _syscall3(int, __syscall_chown, const char *, path,
- __kernel_uid_t, owner, __kernel_gid_t, group)
-
-@@ -35,6 +43,7 @@
- }
- return (__syscall_chown(path, owner, group));
- }
--#endif
-+# endif
-
-+#endif
- libc_hidden_def(chown)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_getres.c uClibc-git/libc/sysdeps/linux/common/clock_getres.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_getres.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/clock_getres.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,11 +9,11 @@
-
- #include <sys/syscall.h>
- #include <time.h>
--#include <unistd.h>
-
- #ifdef __NR_clock_getres
- _syscall2(int, clock_getres, clockid_t, clock_id, struct timespec*, res)
- #else
-+# include <unistd.h>
-
- int clock_getres(clockid_t clock_id, struct timespec* res)
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_gettime.c uClibc-git/libc/sysdeps/linux/common/clock_gettime.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/clock_gettime.c 2014-07-25 20:36:06.777334534 +0200
-@@ -10,11 +10,11 @@
-
- #include <sys/syscall.h>
- #include <time.h>
--#include <sys/time.h>
-
- #ifdef __NR_clock_gettime
- _syscall2(int, clock_gettime, clockid_t, clock_id, struct timespec*, tp)
- #else
-+# include <sys/time.h>
-
- int clock_gettime(clockid_t clock_id, struct timespec* tp)
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_settime.c uClibc-git/libc/sysdeps/linux/common/clock_settime.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_settime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/clock_settime.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,11 +9,11 @@
-
- #include <sys/syscall.h>
- #include <time.h>
--#include <sys/time.h>
-
- #ifdef __NR_clock_settime
- _syscall2(int, clock_settime, clockid_t, clock_id, const struct timespec*, tp)
- #else
-+# include <sys/time.h>
-
- int clock_settime(clockid_t clock_id, const struct timespec* tp)
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/close.c uClibc-git/libc/sysdeps/linux/common/close.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/close.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/close.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,12 +9,13 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+#include <cancel.h>
-
--_syscall1(int, close, int, fd)
-+#define __NR___close_nocancel __NR_close
-+_syscall1(int, __NC(close), int, fd)
-
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(close)
--#else
--libc_hidden_weak(close)
--strong_alias(close,__libc_close)
--#endif
-+#define __NR___close_nocancel_no_status __NR_close
-+_syscall_noerr1(void, __close_nocancel_no_status, int, fd)
-+
-+CANCELLABLE_SYSCALL(int, close, (int fd), (fd))
-+lt_libc_hidden(close)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/cmsg_nxthdr.c uClibc-git/libc/sysdeps/linux/common/cmsg_nxthdr.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/cmsg_nxthdr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/cmsg_nxthdr.c 2014-07-25 20:36:06.777334534 +0200
-@@ -13,12 +13,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define __FORCE_GLIBC
- #include <features.h>
-+#include <stddef.h>
- /* Prevent math.h from defining a colliding inline */
- #undef __USE_EXTERN_INLINES
- #include <sys/socket.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/creat64.c uClibc-git/libc/sysdeps/linux/common/creat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/creat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/creat64.c 2014-07-25 20:36:06.777334534 +0200
-@@ -12,19 +12,17 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
--
--#ifdef __UCLIBC_HAS_LFS__
- #include <fcntl.h>
--#include <sys/types.h>
-+#include <cancel.h>
-
- /* Create FILE with protections MODE. */
- int creat64(const char *file, mode_t mode)
- {
-- return open64(file, O_WRONLY|O_CREAT|O_TRUNC, mode);
-+ return open64(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
- }
--#endif /* __UCLIBC_HAS_LFS__ */
-+/* open handled cancellation, noop on uClibc */
-+LIBC_CANCEL_HANDLED();
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/creat.c uClibc-git/libc/sysdeps/linux/common/creat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/creat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/creat.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,8 +8,11 @@
- */
-
- #include <fcntl.h>
-+#include <cancel.h>
-
- int creat(const char *file, mode_t mode)
- {
- return open(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
- }
-+/* open handled cancellation, noop on uClibc */
-+LIBC_CANCEL_HANDLED();
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/create_module.c uClibc-git/libc/sysdeps/linux/common/create_module.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/create_module.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/create_module.c 2014-07-25 20:36:06.777334534 +0200
-@@ -7,10 +7,10 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <errno.h>
--#include <unistd.h>
- #include <features.h>
--#include <sys/types.h>
-+#define __need_size_t
-+#include <stddef.h>
-+#include <errno.h>
- #include <sys/syscall.h>
-
- #ifdef __NR_create_module
-@@ -22,7 +22,7 @@
- static __inline__ _syscall2(long, __create_module, const char *, name, size_t, size)
- /* By checking the value of errno, we know if we have been fooled
- * by the syscall2 macro making a very high address look like a
-- * negative, so we we fix it up here. */
-+ * negative, so we fix it up here. */
- unsigned long create_module(const char *name, size_t size)
- {
- long ret = __create_module(name, size);
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/delete_module.c uClibc-git/libc/sysdeps/linux/common/delete_module.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/delete_module.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/delete_module.c 2014-07-25 20:36:06.777334534 +0200
-@@ -7,7 +7,7 @@
- */
-
- #include <sys/syscall.h>
--int delete_module(const char *name, unsigned int flags);
- #ifdef __NR_delete_module
-+int delete_module(const char *name, unsigned int flags);
- _syscall2(int, delete_module, const char *, name, unsigned int, flags)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dl-osinfo.h uClibc-git/libc/sysdeps/linux/common/dl-osinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/dl-osinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/dl-osinfo.h 2014-07-25 20:36:06.777334534 +0200
-@@ -17,10 +17,11 @@
- # endif
-
- # include <stdint.h>
--# include <sys/time.h>
-
- # ifdef IS_IN_libc
--#include <fcntl.h>
-+# include <fcntl.h>
-+# include <unistd.h>
-+# include <sys/time.h>
- # define OPEN open
- # define READ read
- # define CLOSE close
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dup2.c uClibc-git/libc/sysdeps/linux/common/dup2.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/dup2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/dup2.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,7 +9,24 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+#if defined __NR_dup3 && !defined __NR_dup2
-+# include <fcntl.h>
-+extern int __libc_fcntl (int fd, int cmd, ...);
-+libc_hidden_proto(__libc_fcntl);
-
-+int dup2(int old, int newfd)
-+{
-+ /*
-+ * Check if old fd is valid before we try
-+ * to ducplicate it. Return it if valid
-+ * or EBADF otherwise
-+ */
-+ if (old == newfd)
-+ return fcntl(old, F_GETFL, 0) < 0 ? -1 : newfd;
-
-+ return dup3(old, newfd, 0);
-+}
-+#else
- _syscall2(int, dup2, int, oldfd, int, newfd)
-+#endif
- libc_hidden_def(dup2)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dup3.c uClibc-git/libc/sysdeps/linux/common/dup3.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/dup3.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/dup3.c 2014-07-25 20:36:06.777334534 +0200
-@@ -0,0 +1,16 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * dup3() for uClibc
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <unistd.h>
-+
-+#if defined(__NR_dup3)
-+_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
-+libc_hidden_def(dup3)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/epoll.c uClibc-git/libc/sysdeps/linux/common/epoll.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/epoll.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/epoll.c 2014-07-25 20:36:06.777334534 +0200
-@@ -1,6 +1,6 @@
- /* vi: set sw=4 ts=4: */
- /*
-- * epoll_create() / epoll_ctl() / epoll_wait() for uClibc
-+ * epoll_create() / epoll_ctl() / epoll_wait() / epoll_pwait() for uClibc
- *
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
-@@ -9,75 +9,61 @@
-
- #include <sys/syscall.h>
- #include <sys/epoll.h>
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
--#else
--# define SINGLE_THREAD_P 1
--#endif
-+#include <cancel.h>
-
--/*
-- * epoll_create()
-- */
- #ifdef __NR_epoll_create
- _syscall1(int, epoll_create, int, size)
- #endif
-
--/*
-- * epoll_create1()
-- */
- #ifdef __NR_epoll_create1
- _syscall1(int, epoll_create1, int, flags)
- #endif
-
--/*
-- * epoll_ctl()
-- */
-+#if defined __NR_epoll_create1 && !defined __NR_epoll_create
-+int epoll_create(int size)
-+{
-+ return INLINE_SYSCALL(epoll_create1, 1, 0);
-+}
-+
-+#endif
-+
- #ifdef __NR_epoll_ctl
--_syscall4(int,epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event)
-+_syscall4(int, epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event)
- #endif
-
--/*
-- * epoll_wait()
-- */
- #ifdef __NR_epoll_wait
--extern __typeof(epoll_wait) __libc_epoll_wait;
--int __libc_epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
-+static int __NC(epoll_wait)(int epfd, struct epoll_event *events, int maxevents, int timeout)
- {
-- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- else {
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
-- }
--# endif
-+ return INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
- }
--weak_alias(__libc_epoll_wait, epoll_wait)
-+CANCELLABLE_SYSCALL(int, epoll_wait, (int epfd, struct epoll_event *events, int maxevents, int timeout),
-+ (epfd, events, maxevents, timeout))
- #endif
-
--/*
-- * epoll_pwait()
-- */
- #ifdef __NR_epoll_pwait
- # include <signal.h>
-
--extern __typeof(epoll_pwait) __libc_epoll_pwait;
--int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
-- int timeout, const sigset_t *set)
-+# define __NR___syscall_epoll_pwait __NR_epoll_pwait
-+static __always_inline _syscall6(int, __syscall_epoll_pwait, int, epfd, struct epoll_event *, events,
-+ int, maxevents, int, timeout, const sigset_t *, sigmask, size_t, sigsetsize)
-+
-+static int __NC(epoll_pwait)(int epfd, struct epoll_event *events, int maxevents, int timeout,
-+ const sigset_t *set)
- {
-- int nsig = _NSIG / 8;
-- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- else {
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
-- }
--# endif
-+ return __syscall_epoll_pwait(epfd, events, maxevents, timeout, set, __SYSCALL_SIGSET_T_SIZE);
- }
--weak_alias(__libc_epoll_pwait, epoll_pwait)
-+CANCELLABLE_SYSCALL(int, epoll_pwait, (int epfd, struct epoll_event *events, int maxevents, int timeout,
-+ const sigset_t *set),
-+ (epfd, events, maxevents, timeout, set))
-+/*
-+ * If epoll_wait is not defined, then call epoll_pwait instead using NULL
-+ * for sigmask argument
-+ */
-+# ifndef __NR_epoll_wait
-+# include <stddef.h>
-+int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
-+{
-+ return INLINE_SYSCALL(epoll_pwait, 5, epfd, events, maxevents, timeout, NULL);
-+}
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/eventfd.c uClibc-git/libc/sysdeps/linux/common/eventfd.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/eventfd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/eventfd.c 2014-07-25 20:36:06.777334534 +0200
-@@ -7,12 +7,24 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <errno.h>
- #include <sys/syscall.h>
- #include <sys/eventfd.h>
-
- /*
- * eventfd()
- */
--#ifdef __NR_eventfd
--_syscall2(int, eventfd, int, count, int, flags)
-+#if defined __NR_eventfd || defined __NR_eventfd2
-+int eventfd (int count, int flags)
-+{
-+#if defined __NR_eventfd2
-+ return INLINE_SYSCALL (eventfd2, 2, count, flags);
-+#elif defined __NR_eventfd
-+ if (flags != 0) {
-+ __set_errno (EINVAL);
-+ return -1;
-+ }
-+ return INLINE_SYSCALL (eventfd, 1, count);
-+#endif
-+}
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/_exit.c uClibc-git/libc/sysdeps/linux/common/_exit.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/_exit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/_exit.c 2014-07-25 20:36:06.757334429 +0200
-@@ -7,28 +7,36 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--#include <errno.h>
- #include <unistd.h>
--#include <sys/types.h>
-+#include <stdlib.h>
- #include <sys/syscall.h>
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep.h>
-+#include <bits/kernel-features.h>
-+
-+#ifdef __UCLIBC_ABORT_INSTRUCTION__
-+# define ABORT_INSTRUCTION __asm__(__UCLIBC_ABORT_INSTRUCTION__)
-+#else
-+# warning "no abort instruction defined for this arch"
- #endif
-
-+/* have to check for kernel 2.5.35 too, since NR was earlier present */
-+#if defined __NR_exit_group && __LINUX_KERNEL_VERSION >= 0x020600 \
-+ && defined __UCLIBC_HAS_THREADS__
-+# undef __NR_exit
-+# define __NR_exit __NR_exit_group
-+#endif
-
--void attribute_noreturn _exit(int status)
-+void _exit(int status)
- {
- /* The loop is added only to keep gcc happy. */
- while(1)
- {
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# ifdef __NR_exit_group
-- INLINE_SYSCALL(exit_group, 1, status);
--# endif
--#endif
- INLINE_SYSCALL(exit, 1, status);
-+#ifdef ABORT_INSTRUCTION
-+ ABORT_INSTRUCTION;
-+#endif
- }
- }
- libc_hidden_def(_exit)
-+#ifdef __USE_ISOC99
- weak_alias(_exit,_Exit)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/faccessat.c uClibc-git/libc/sysdeps/linux/common/faccessat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/faccessat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/faccessat.c 2014-07-25 20:36:06.777334534 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_faccessat
- _syscall4(int, faccessat, int, fd, const char *, file, int, type, int, flag)
-+libc_hidden_def(faccessat)
- #else
- /* should add emulation with faccess() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchdir.c uClibc-git/libc/sysdeps/linux/common/fchdir.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchdir.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fchdir.c 2014-07-25 20:36:06.777334534 +0200
-@@ -10,6 +10,7 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
--
-+#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
- _syscall1(int, fchdir, int, fd)
- libc_hidden_def(fchdir)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchmodat.c uClibc-git/libc/sysdeps/linux/common/fchmodat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchmodat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fchmodat.c 2014-07-25 20:36:06.777334534 +0200
-@@ -32,6 +32,7 @@
-
- return INLINE_SYSCALL(fchmodat, 3, fd, file, mode);
- }
-+libc_hidden_def(fchmodat)
- #else
- /* should add emulation with fchmod() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchownat.c uClibc-git/libc/sysdeps/linux/common/fchownat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchownat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fchownat.c 2014-07-25 20:36:06.777334534 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_fchownat
- _syscall5(int, fchownat, int, fd, const char *, file, uid_t, owner, gid_t, group, int, flag)
-+libc_hidden_def(fchownat)
- #else
- /* should add emulation with fchown() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fdatasync.c uClibc-git/libc/sysdeps/linux/common/fdatasync.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fdatasync.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fdatasync.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,36 +8,17 @@
- */
-
- #include <sys/syscall.h>
--#include <unistd.h>
-
- #if !defined __NR_fdatasync && defined __NR_osf_fdatasync
- # define __NR_fdatasync __NR_osf_fdatasync
- #endif
-
- #ifdef __NR_fdatasync
-+# include <unistd.h>
-+# include <cancel.h>
-
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
--# else
--# define SINGLE_THREAD_P 1
--# endif
--
--#define __NR___syscall_fdatasync __NR_fdatasync
--
--static __always_inline
--_syscall1(int, __syscall_fdatasync, int, fd)
--
--int fdatasync(int fd)
--{
-- if (SINGLE_THREAD_P)
-- return __syscall_fdatasync(fd);
--
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __syscall_fdatasync(fd);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--# endif
--}
-+# define __NR___fdatasync_nocancel __NR_fdatasync
-+static _syscall1(int, __NC(fdatasync), int, fd)
-
-+CANCELLABLE_SYSCALL(int, fdatasync, (int fd), (fd))
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fork.c uClibc-git/libc/sysdeps/linux/common/fork.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fork.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,16 +8,35 @@
- */
-
- #include <sys/syscall.h>
--#include <unistd.h>
-
--#ifdef __ARCH_USE_MMU__
--
--#ifdef __NR_fork
--#define __NR___libc_fork __NR_fork
-+#if defined __ARCH_USE_MMU__
-+# include <unistd.h>
- extern __typeof(fork) __libc_fork;
--_syscall0(pid_t, __libc_fork)
--weak_alias(__libc_fork,fork)
-+# if defined __NR_fork
-+# include <cancel.h>
-+# define __NR___libc_fork __NR_fork
-+_syscall0(pid_t, fork)
-+
-+# elif defined __NR_clone && !defined __NR_fork
-+# include <sys/types.h>
-+# include <signal.h>
-+# include <stddef.h>
-+pid_t fork(void)
-+{
-+ pid_t pid = INLINE_SYSCALL(clone, 4, SIGCHLD, NULL, NULL, NULL);
-+
-+ if (pid < 0)
-+ return -1;
-+
-+ return pid;
-+}
-+
-+# endif
-+# ifdef __UCLIBC_HAS_THREADS__
-+strong_alias(fork,__libc_fork)
- libc_hidden_weak(fork)
--#endif
-+# else
-+libc_hidden_def(fork)
-+# endif
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fpu_control.h uClibc-git/libc/sysdeps/linux/common/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fpu_control.h 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat64.c uClibc-git/libc/sysdeps/linux/common/fstat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fstat64.c 2014-07-25 20:36:06.777334534 +0200
-@@ -7,20 +7,20 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_fstat64
--#include <unistd.h>
--#include <sys/stat.h>
--#include "xstatconv.h"
--
--
--#define __NR___syscall_fstat64 __NR_fstat64
--static __inline__ _syscall2(int, __syscall_fstat64,
-- int, filedes, struct kernel_stat64 *, buf)
-+#ifdef __NR_fstat64
-+# include <unistd.h>
-+# include <sys/stat.h>
-+# include "xstatconv.h"
-+# define __NR___syscall_fstat64 __NR_fstat64
-+static __always_inline _syscall2(int, __syscall_fstat64,
-+ int, filedes, struct kernel_stat64 *, buf)
-
- int fstat64(int fd, struct stat64 *buf)
- {
-+#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- int result;
- struct kernel_stat64 kbuf;
-
-@@ -29,6 +29,9 @@
- __xstat64_conv(&kbuf, buf);
- }
- return result;
-+#else
-+ return __syscall_fstat64(fd, buf);
-+#endif
- }
- libc_hidden_def(fstat64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat64.c uClibc-git/libc/sysdeps/linux/common/fstatat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fstatat64.c 2014-07-25 20:36:06.777334534 +0200
-@@ -6,20 +6,21 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <_lfs_64.h>
-+#include <bits/wordsize.h>
- #include <sys/syscall.h>
--#include <sys/stat.h>
--#include "xstatconv.h"
--
--#ifdef __UCLIBC_HAS_LFS__
-
- /* 64bit ports tend to favor newfstatat() */
--#ifdef __NR_newfstatat
-+#if __WORDSIZE == 64 && defined __NR_newfstatat
- # define __NR_fstatat64 __NR_newfstatat
- #endif
-
- #ifdef __NR_fstatat64
-+# include <sys/stat.h>
-+# include "xstatconv.h"
- int fstatat64(int fd, const char *file, struct stat64 *buf, int flag)
- {
-+# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- int ret;
- struct kernel_stat64 kbuf;
-
-@@ -28,9 +29,11 @@
- __xstat64_conv(&kbuf, buf);
-
- return ret;
-+# else
-+ return INLINE_SYSCALL(fstatat64, 4, fd, file, buf, flag);
-+# endif
- }
-+libc_hidden_def(fstatat64)
- #else
- /* should add emulation with fstat64() and /proc/self/fd/ ... */
- #endif
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat.c uClibc-git/libc/sysdeps/linux/common/fstatat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fstatat.c 2014-07-25 20:36:06.777334534 +0200
-@@ -11,7 +11,7 @@
- #include "xstatconv.h"
-
- /* 64bit ports tend to favor newfstatat() */
--#ifdef __NR_newfstatat
-+#if __WORDSIZE == 64 && defined __NR_newfstatat
- # define __NR_fstatat64 __NR_newfstatat
- #endif
-
-@@ -19,14 +19,26 @@
- int fstatat(int fd, const char *file, struct stat *buf, int flag)
- {
- int ret;
-+# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- struct kernel_stat64 kbuf;
--
- ret = INLINE_SYSCALL(fstatat64, 4, fd, file, &kbuf, flag);
- if (ret == 0)
- __xstat32_conv(&kbuf, buf);
--
-+# else
-+ ret = INLINE_SYSCALL(fstatat64, 4, fd, file, buf, flag);
-+ if (ret == 0) {
-+ /* Did we overflow */
-+ if (buf->__pad1 || buf->__pad2 || buf->__pad3
-+ || buf->__pad4 || buf->__pad5 || buf->__pad6
-+ || buf->__pad7) {
-+ __set_errno(EOVERFLOW);
-+ return -1;
-+ }
-+ }
-+# endif /* __ARCH_HAS_DEPRECATED_SYSCALLS__ */
- return ret;
- }
-+libc_hidden_def(fstatat)
- #else
- /* should add emulation with fstat() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat.c uClibc-git/libc/sysdeps/linux/common/fstat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fstat.c 2014-07-25 20:36:06.777334534 +0200
-@@ -12,10 +12,28 @@
- #include <sys/stat.h>
- #include "xstatconv.h"
-
-+#if defined __NR_fstat64 && !defined __NR_fstat
-+int fstat(int fd, struct stat *buf)
-+{
-+ int result = INLINE_SYSCALL(fstat64, 2, fd, buf);
-+ if (result == 0) {
-+ /* Did we overflow? */
-+ if (buf->__pad1 || buf->__pad2 || buf->__pad3
-+ || buf->__pad4 || buf->__pad5
-+ || buf->__pad6 || buf->__pad7) {
-+ __set_errno(EOVERFLOW);
-+ return -1;
-+ }
-+ }
-+ return result;
-+}
-+libc_hidden_def(fstat)
-+
-+#elif defined __NR_fstat
- int fstat(int fd, struct stat *buf)
- {
- int result;
--#ifdef __NR_fstat64
-+# ifdef __NR_fstat64
- /* normal stat call has limited values for various stat elements
- * e.g. uid device major/minor etc.
- * so we use 64 variant if available
-@@ -26,19 +44,21 @@
- if (result == 0) {
- __xstat32_conv(&kbuf, buf);
- }
--#else
-+# else
- struct kernel_stat kbuf;
-
- result = INLINE_SYSCALL(fstat, 2, fd, &kbuf);
- if (result == 0) {
- __xstat_conv(&kbuf, buf);
- }
--#endif
-+# endif
- return result;
- }
- libc_hidden_def(fstat)
-
--#if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
-+# if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
- strong_alias_untyped(fstat,fstat64)
- libc_hidden_def(fstat64)
-+# endif
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatfs.c uClibc-git/libc/sysdeps/linux/common/fstatfs.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatfs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fstatfs.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,8 +9,9 @@
-
- #include <sys/syscall.h>
- #include <sys/vfs.h>
-+#include <string.h>
-
--#ifndef __USE_FILE_OFFSET64
-+#ifndef __USE_FILE_OFFSET64__
- extern int fstatfs (int __fildes, struct statfs *__buf)
- __THROW __nonnull ((2));
- #else
-@@ -23,8 +24,26 @@
- #endif
-
- extern __typeof(fstatfs) __libc_fstatfs attribute_hidden;
--#define __NR___libc_fstatfs __NR_fstatfs
-+#ifdef __NR_fstatfs
-+# define __NR___libc_fstatfs __NR_fstatfs
- _syscall2(int, __libc_fstatfs, int, fd, struct statfs *, buf)
-+#else
-+int __libc_fstatfs (int __fildes, struct statfs *__buf)
-+{
-+ int err = INLINE_SYSCALL(fstatfs64, 3, __fildes, sizeof(*__buf), __buf);
-+
-+ if (err == 0) {
-+ /* Did we overflow? */
-+ if (__buf->__pad1 || __buf->__pad2 || __buf->__pad3 ||
-+ __buf->__pad4 || __buf->__pad5) {
-+ __set_errno(EOVERFLOW);
-+ return -1;
-+ }
-+ }
-+ return err;
-+};
-+/* Redefined fstatfs because we need it for backwards compatibility */
-+#endif /* __NR_fstatfs */
-
- #if defined __UCLIBC_LINUX_SPECIFIC__
- weak_alias(__libc_fstatfs,fstatfs)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fsync.c uClibc-git/libc/sysdeps/linux/common/fsync.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/fsync.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/fsync.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,29 +9,9 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+#include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include "sysdep-cancel.h"
--#else
--#define SINGLE_THREAD_P 1
--#endif
-+#define __NR___fsync_nocancel __NR_fsync
-+static _syscall1(int, __NC(fsync), int, fd)
-
--#define __NR___syscall_fsync __NR_fsync
--static inline _syscall1(int, __syscall_fsync, int, fd)
--
--extern __typeof(fsync) __libc_fsync;
--
--int __libc_fsync(int fd)
--{
-- if (SINGLE_THREAD_P)
-- return __syscall_fsync(fd);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __syscall_fsync(fd);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--
--weak_alias(__libc_fsync, fsync)
-+CANCELLABLE_SYSCALL(int, fsync, (int fd), (fd))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate64.c uClibc-git/libc/sysdeps/linux/common/ftruncate64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ftruncate64.c 2014-07-25 20:36:06.777334534 +0200
-@@ -7,50 +7,41 @@
- * and on 32 bit machines this sends things into the kernel as
- * two 32-bit arguments (high and low 32 bits of length) that
- * are ordered based on endianess. It turns out endian.h has
-- * just the macro we need to order things, __LONG_LONG_PAIR.
-+ * just the macro we need to order things, OFF64_HI_LO.
- */
-
--#include <features.h>
-+#include <_lfs_64.h>
-+#include <sys/syscall.h>
-+#include <unistd.h>
-
--#ifdef __UCLIBC_HAS_LFS__
-+#ifdef __NR_ftruncate64
-+# include <bits/wordsize.h>
-
--# include <unistd.h>
--# include <errno.h>
--# include <endian.h>
--# include <stdint.h>
--# include <sys/types.h>
--# include <sys/syscall.h>
--
--
--# ifdef __NR_ftruncate64
--
--# if __WORDSIZE == 64
-+# if __WORDSIZE == 64
-
- /* For a 64 bit machine, life is simple... */
- _syscall2(int, ftruncate64, int, fd, __off64_t, length)
-
--# elif __WORDSIZE == 32
-+# elif __WORDSIZE == 32
-+# include <endian.h>
-+# include <stdint.h>
-
- /* The exported ftruncate64 function. */
- int ftruncate64 (int fd, __off64_t length)
- {
-- uint32_t low = length & 0xffffffff;
-- uint32_t high = length >> 32;
--# if defined(__UCLIBC_TRUNCATE64_HAS_4_ARGS__)
-- return INLINE_SYSCALL(ftruncate64,
-- 4, fd, 0, __LONG_LONG_PAIR (high, low));
--# else
-- return INLINE_SYSCALL(ftruncate64, 3, fd,
-- __LONG_LONG_PAIR (high, low));
--# endif
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+ return INLINE_SYSCALL(ftruncate64, 4, fd, 0, OFF64_HI_LO(length));
-+# else
-+ return INLINE_SYSCALL(ftruncate64, 3, fd, OFF64_HI_LO(length));
-+# endif
- }
-
--# else /* __WORDSIZE */
--# error Your machine is not 64 bit or 32 bit, I am dazed and confused.
--# endif /* __WORDSIZE */
--
--# else /* __NR_ftruncate64 */
-+# else /* __WORDSIZE */
-+# error Your machine is not 64 bit or 32 bit, I am dazed and confused.
-+# endif /* __WORDSIZE */
-
-+#else /* __NR_ftruncate64 */
-+# include <errno.h>
-
- int ftruncate64 (int fd, __off64_t length)
- {
-@@ -65,7 +56,5 @@
- return -1;
- }
-
--# endif /* __NR_ftruncate64 */
-+#endif /* __NR_ftruncate64 */
- libc_hidden_def(ftruncate64)
--
--#endif /* __UCLIBC_HAS_LFS__ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate.c uClibc-git/libc/sysdeps/linux/common/ftruncate.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ftruncate.c 2014-07-25 20:36:06.777334534 +0200
-@@ -10,6 +10,20 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
-+#if defined __NR_ftruncate64 && !defined __NR_ftruncate
-+# include <endian.h>
-+# include <stdint.h>
-+int ftruncate(int fd, __off_t length)
-+{
-+# if defined __UCLIBC_HAS_LFS__
-+ return ftruncate64(fd, length);
-+# elif __WORDSIZE == 32
-+ return INLINE_SYSCALL(ftruncate64, 3, fd, OFF_HI_LO(length));
-+# endif
-+}
-+libc_hidden_def(ftruncate);
-
-+#else
- _syscall2(int, ftruncate, int, fd, __off_t, length)
- libc_hidden_def(ftruncate)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/futimens.c uClibc-git/libc/sysdeps/linux/common/futimens.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/futimens.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/futimens.c 2014-07-25 20:36:06.777334534 +0200
-@@ -16,13 +16,13 @@
- * Note that due to not including the header, we have to alias the call
- * manually.
- */
--extern int utimensat (int __fd, __const char *__path,
-- __const struct timespec __times[2],
-+extern int utimensat (int __fd, const char *__path,
-+ const struct timespec __times[2],
- int __flags) __THROW;
- libc_hidden_proto(utimensat)
-
--int futimens (int __fd, __const struct timespec __times[2]) __THROW;
--int futimens (int fd, __const struct timespec ts[2])
-+int futimens (int __fd, const struct timespec __times[2]) __THROW;
-+int futimens (int fd, const struct timespec ts[2])
- {
- return utimensat(fd, 0, ts, 0);
- }
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents64.c uClibc-git/libc/sysdeps/linux/common/getdents64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getdents64.c 2014-07-25 20:36:06.777334534 +0200
-@@ -4,7 +4,11 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
-+#include <_lfs_64.h>
-+#include <sys/syscall.h>
-+
-+#ifdef __NR_getdents64
-+
- #include <assert.h>
- #include <errno.h>
- #include <dirent.h>
-@@ -13,17 +17,9 @@
- #include <string.h>
- #include <unistd.h>
- #include <sys/param.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <bits/kernel_types.h>
-+#include <bits/wordsize.h>
- #include <bits/uClibc_alloc.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64
--
--# ifndef offsetof
--# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
--# endif
--
- struct kernel_dirent64
- {
- uint64_t d_ino;
-@@ -36,7 +32,6 @@
- # define __NR___syscall_getdents64 __NR_getdents64
- static __inline__ _syscall3(int, __syscall_getdents64, int, fd, unsigned char *, dirp, size_t, count)
-
--ssize_t __getdents64 (int fd, char *buf, size_t nbytes) attribute_hidden;
- ssize_t __getdents64 (int fd, char *buf, size_t nbytes)
- {
- struct dirent64 *dp;
-@@ -96,10 +91,10 @@
- return (char *) dp - buf;
- }
-
--#if __WORDSIZE == 64
-+#if __WORDSIZE == 64 || (defined __UCLIBC_HAS_LFS__ && !defined __NR_getdents)
- /* since getdents doesnt give us d_type but getdents64 does, try and
- * use getdents64 as much as possible */
--attribute_hidden strong_alias(__getdents64,__getdents)
-+strong_alias(__getdents64,__getdents)
- #endif
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents.c uClibc-git/libc/sysdeps/linux/common/getdents.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getdents.c 2014-07-25 20:36:06.777334534 +0200
-@@ -4,21 +4,17 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <assert.h>
--#include <errno.h>
-+#include <sys/syscall.h>
-+#include <bits/wordsize.h>
-+
-+#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
-+
- #include <dirent.h>
--#include <stddef.h>
--#include <stdint.h>
- #include <string.h>
--#include <unistd.h>
--#include <sys/param.h>
- #include <sys/types.h>
--#include <sys/syscall.h>
- #include <bits/kernel_types.h>
- #include <bits/kernel-features.h>
--#include <bits/uClibc_alloc.h>
-
--#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
- /* If the condition above is met, __getdents is defined as an alias
- * for __getdents64 (see getdents64.c). Otherwise...
- */
-@@ -30,10 +26,7 @@
- * version / arch details.
- */
-
--#ifndef offsetof
--# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
--#endif
--
-+# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- struct kernel_dirent
- {
- long int d_ino;
-@@ -41,13 +34,16 @@
- unsigned short int d_reclen;
- char d_name[256];
- };
-+# else
-+# define kernel_dirent dirent
-+# endif
-
--ssize_t __getdents (int fd, char *buf, size_t nbytes) attribute_hidden;
--
--#define __NR___syscall_getdents __NR_getdents
-+# if defined __NR_getdents
-+# define __NR___syscall_getdents __NR_getdents
- static __always_inline _syscall3(int, __syscall_getdents, int, fd, unsigned char *, kdirp, size_t, count)
-+# endif
-
--#if defined __ASSUME_GETDENTS32_D_TYPE
-+# if defined __ASSUME_GETDENTS32_D_TYPE && defined __NR_getdents
-
- ssize_t __getdents (int fd, char *buf, size_t nbytes)
- {
-@@ -76,7 +72,14 @@
- return retval;
- }
-
--#elif ! defined __UCLIBC_HAS_LFS__ || ! defined __NR_getdents64
-+# elif ! defined __UCLIBC_HAS_LFS__ || !defined __NR_getdents64
-+
-+# include <assert.h>
-+# include <stddef.h>
-+# include <errno.h>
-+# include <unistd.h>
-+# include <sys/param.h>
-+# include <bits/uClibc_alloc.h>
-
- ssize_t __getdents (int fd, char *buf, size_t nbytes)
- {
-@@ -88,6 +91,7 @@
- const size_t size_diff = (offsetof (struct dirent, d_name)
- - offsetof (struct kernel_dirent, d_name));
-
-+# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- red_nbytes = MIN (nbytes - ((nbytes /
- (offsetof (struct dirent, d_name) + 14)) * size_diff),
- nbytes - size_diff);
-@@ -96,6 +100,21 @@
- skdp = kdp = stack_heap_alloc(red_nbytes);
-
- retval = __syscall_getdents(fd, (unsigned char *)kdp, red_nbytes);
-+# else
-+
-+ dp = (struct dirent *) buf;
-+ skdp = kdp = stack_heap_alloc(nbytes);
-+
-+ retval = INLINE_SYSCALL(getdents64, 3, fd, (unsigned char *)kdp, nbytes);
-+ if (retval > 0) {
-+ /* Did we overflow? */
-+ if (kdp->__pad1 || kdp->__pad2) {
-+ __set_errno(EINVAL);
-+ return -1;
-+ }
-+ }
-+# endif
-+
- if (retval == -1) {
- stack_heap_free(skdp);
- return -1;
-@@ -137,9 +156,10 @@
- return (char *) dp - buf;
- }
-
--#elif __WORDSIZE == 32
-+# elif __WORDSIZE == 32 && !defined __NR_getdents64
-+
-+# include <stddef.h>
-
--extern __typeof(__getdents) __getdents64 attribute_hidden;
- ssize_t __getdents (int fd, char *buf, size_t nbytes)
- {
- struct dirent *dp;
-@@ -165,10 +185,10 @@
- return ret;
- }
-
--#endif
-+# endif
-
--#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
--attribute_hidden strong_alias(__getdents,__getdents64)
--#endif
-+# if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
-+strong_alias(__getdents,__getdents64)
-+# endif
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdirname.c uClibc-git/libc/sysdeps/linux/common/getdirname.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdirname.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getdirname.c 2014-07-25 20:36:06.777334534 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getgroups.c uClibc-git/libc/sysdeps/linux/common/getgroups.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getgroups.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getgroups.c 2014-07-25 20:36:06.777334534 +0200
-@@ -8,10 +8,7 @@
- */
-
- #include <sys/syscall.h>
--#include <stdlib.h>
- #include <unistd.h>
--#include <grp.h>
--
-
- #if defined(__NR_getgroups32)
- # undef __NR_getgroups
-@@ -22,12 +19,14 @@
- _syscall2(int, getgroups, int, size, gid_t *, list)
-
- #else
--
--#define MIN(a,b) (((a)<(b))?(a):(b))
--
--#define __NR___syscall_getgroups __NR_getgroups
--static __inline__ _syscall2(int, __syscall_getgroups,
-- int, size, __kernel_gid_t *, list)
-+# include <errno.h>
-+# include <stdlib.h>
-+# include <sys/types.h>
-+# include <sys/param.h>
-+
-+# define __NR___syscall_getgroups __NR_getgroups
-+static __always_inline
-+_syscall2(int, __syscall_getgroups, int, size, __kernel_gid_t *, list)
-
- int getgroups(int size, gid_t groups[])
- {
-@@ -56,5 +55,4 @@
- }
- }
- #endif
--
- libc_hidden_def(getgroups)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/get_kernel_syms.c uClibc-git/libc/sysdeps/linux/common/get_kernel_syms.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/get_kernel_syms.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/get_kernel_syms.c 2014-07-25 20:36:06.777334534 +0200
-@@ -9,8 +9,8 @@
-
- #include <sys/syscall.h>
-
--struct kernel_sym;
--int get_kernel_syms(struct kernel_sym *table attribute_unused);
- #ifdef __NR_get_kernel_syms
-+struct kernel_sym;
-+int get_kernel_syms(struct kernel_sym *table);
- _syscall1(int, get_kernel_syms, struct kernel_sym *, table)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getpagesize.c uClibc-git/libc/sysdeps/linux/common/getpagesize.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getpagesize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getpagesize.c 2014-07-25 20:36:06.777334534 +0200
-@@ -12,16 +12,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <features.h>
- #include <sys/param.h>
-
--extern size_t __pagesize;
--
- /* Return the system page size. */
- /* couldn't make __getpagesize hidden, because shm.h uses it in a macro */
- extern __typeof(getpagesize) __getpagesize;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit64.c uClibc-git/libc/sysdeps/linux/common/getrlimit64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getrlimit64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -12,20 +12,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
--
--#include <sys/types.h>
--#include <sys/resource.h>
- #include <bits/wordsize.h>
-
- /* the regular getrlimit will work just fine for 64bit users */
-+#if __WORDSIZE == 32
-
--#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
--
-+# include <sys/resource.h>
-
- /* Put the soft and hard limits for RESOURCE in *RLIMITS.
- Returns 0 if successful, -1 if not (and sets errno). */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit.c uClibc-git/libc/sysdeps/linux/common/getrlimit.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/getrlimit.c 2014-07-25 20:36:06.777334534 +0200
-@@ -7,12 +7,9 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define getrlimit64 __hide_getrlimit64
- #include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/resource.h>
--#undef getrlimit64
--
-+#include <bits/wordsize.h>
-
- /* Only wrap getrlimit if the new ugetrlimit is not present and getrlimit sucks */
-
-@@ -25,14 +22,14 @@
- struct rlimit *, rlim)
- int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
- {
-- return (__syscall_ugetrlimit(resource, rlimits));
-+ return __syscall_ugetrlimit(resource, rlimits);
- }
-
- #elif !defined(__UCLIBC_HANDLE_OLDER_RLIMIT__)
-
- /* We don't need to wrap getrlimit() */
- _syscall2(int, getrlimit, __rlimit_resource_t, resource,
-- struct rlimit *, rlim)
-+ struct rlimit *, rlim)
-
- #else
-
-@@ -59,9 +56,8 @@
- return result;
- }
- #endif
--
- libc_hidden_def(getrlimit)
-
- #if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
--strong_alias(getrlimit, getrlimit64)
-+strong_alias_untyped(getrlimit, getrlimit64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/gettimeofday.c uClibc-git/libc/sysdeps/linux/common/gettimeofday.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/gettimeofday.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/gettimeofday.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,9 +10,5 @@
- #include <sys/syscall.h>
- #include <sys/time.h>
-
--#ifdef __USE_BSD
--_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz)
--#else
--_syscall2(int, gettimeofday, struct timeval *, tv, void *, tz)
--#endif
-+_syscall2(int, gettimeofday, struct timeval *, tv, __timezone_ptr_t, tz)
- libc_hidden_def(gettimeofday)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/hp-timing.h uClibc-git/libc/sysdeps/linux/common/hp-timing.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/hp-timing.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/hp-timing.h 2014-07-25 20:36:06.781334555 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _HP_TIMING_H
- #define _HP_TIMING_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/init_module.c uClibc-git/libc/sysdeps/linux/common/init_module.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/init_module.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/init_module.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,12 +8,13 @@
- */
-
- #include <sys/syscall.h>
--int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
-+
- #ifdef __NR_init_module
-+int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
- /* This may have 5 arguments (for old 2.0 kernels) or 2 arguments
- * (for 2.2 and 2.4 kernels). Use the greatest common denominator,
- * and let the kernel cope with whatever it gets. It's good at that. */
- _syscall5(int, init_module, void *, first, void *, second, void *, third,
-- void *, fourth, void *, fifth)
-+ void *, fourth, void *, fifth)
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/inotify.c uClibc-git/libc/sysdeps/linux/common/inotify.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/inotify.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/inotify.c 2014-07-25 20:36:06.781334555 +0200
-@@ -19,6 +19,13 @@
- _syscall1(int, inotify_init1, int, flags)
- #endif
-
-+#if defined __NR_inotify_init1 && !defined __NR_inotify_init
-+int inotify_init(void)
-+{
-+ return INLINE_SYSCALL(inotify_init1, 1, 0);
-+}
-+#endif
-+
- #ifdef __NR_inotify_add_watch
- _syscall3(int, inotify_add_watch, int, fd, const char *, path, uint32_t, mask)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ioctl.c uClibc-git/libc/sysdeps/linux/common/ioctl.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ioctl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ioctl.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,14 +10,7 @@
- #include <sys/syscall.h>
- #include <stdarg.h>
- #include <sys/ioctl.h>
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
--libc_hidden_proto(ioctl)
-+#include <cancel.h>
-
- #define __NR___syscall_ioctl __NR_ioctl
- static __always_inline
-@@ -30,17 +23,16 @@
-
- va_start(list, request);
- arg = va_arg(list, void *);
--
- va_end(list);
-
- if (SINGLE_THREAD_P)
- return __syscall_ioctl(fd, request, arg);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#ifdef __NEW_THREADS
- int oldtype = LIBC_CANCEL_ASYNC ();
- int result = __syscall_ioctl(fd, request, arg);
- LIBC_CANCEL_RESET (oldtype);
- return result;
- #endif
- }
--libc_hidden_def(ioctl)
-+lt_strong_alias(ioctl)
-+lt_libc_hidden(ioctl)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ioperm.c uClibc-git/libc/sysdeps/linux/common/ioperm.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ioperm.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ioperm.c 2014-07-25 20:36:06.781334555 +0200
-@@ -13,10 +13,6 @@
-
- /* psm: can't #include <sys/io.h>, some archs miss it */
- extern int ioperm(unsigned long __from, unsigned long __num, int __turn_on) __THROW;
--/* Not needed internally;
--libc_hidden_proto(ioperm)
--*/
- _syscall3(int, ioperm, unsigned long, from, unsigned long, num, int, turn_on)
--/*libc_hidden_def(ioperm)*/
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/common/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/jmpbuf-offsets.h 2014-07-25 20:36:06.781334555 +0200
-@@ -0,0 +1,6 @@
-+/* Private macros for accessing __jmp_buf contents. dummy version. */
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lchown.c uClibc-git/libc/sysdeps/linux/common/lchown.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/lchown.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/lchown.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,17 +11,26 @@
- #include <unistd.h>
- #include <bits/wordsize.h>
-
--#if (__WORDSIZE == 32 && defined(__NR_lchown32)) || __WORDSIZE == 64
--# ifdef __NR_lchown32
--# undef __NR_lchown
--# define __NR_lchown __NR_lchown32
--# endif
-+#if defined __NR_fchownat && !defined __NR_lchown
-+# include <fcntl.h>
-+int lchown(const char *path, uid_t owner, gid_t group)
-+{
-+ return fchownat(AT_FDCWD, path, owner, group, AT_SYMLINK_NOFOLLOW);
-+}
-+
-+#else
-+
-+# if (__WORDSIZE == 32 && defined(__NR_lchown32)) || __WORDSIZE == 64
-+# ifdef __NR_lchown32
-+# undef __NR_lchown
-+# define __NR_lchown __NR_lchown32
-+# endif
-
- _syscall3(int, lchown, const char *, path, uid_t, owner, gid_t, group)
-
--#else
-+# else
-
--# define __NR___syscall_lchown __NR_lchown
-+# define __NR___syscall_lchown __NR_lchown
- static __inline__ _syscall3(int, __syscall_lchown, const char *, path,
- __kernel_uid_t, owner, __kernel_gid_t, group)
-
-@@ -35,4 +44,6 @@
- return __syscall_lchown(path, owner, group);
- }
-
-+# endif
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/linkat.c uClibc-git/libc/sysdeps/linux/common/linkat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/linkat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/linkat.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_linkat
- _syscall5(int, linkat, int, fromfd, const char *, from, int, tofd, const char *, to, int, flags)
-+libc_hidden_def(linkat)
- #else
- /* should add emulation with link() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/link.c uClibc-git/libc/sysdeps/linux/common/link.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/link.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/link.c 2014-07-25 20:36:06.781334555 +0200
-@@ -9,4 +9,13 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+
-+#if defined __NR_linkat && !defined __NR_link
-+# include <fcntl.h>
-+int link(const char *oldpath, const char *newpath)
-+{
-+ return linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0);
-+}
-+#else
- _syscall2(int, link, const char *, oldpath, const char *, newpath)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/llseek.c uClibc-git/libc/sysdeps/linux/common/llseek.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/llseek.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/llseek.c 2014-07-25 20:36:06.781334555 +0200
-@@ -7,36 +7,26 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <unistd.h>
--#include <sys/types.h>
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
-+#include <bits/wordsize.h>
-
- /* Newer kernel ports have llseek() instead of _llseek() */
- #if !defined __NR__llseek && defined __NR_llseek
- # define __NR__llseek __NR_llseek
- #endif
-
--#if defined __NR__llseek && defined __UCLIBC_HAS_LFS__
--
--loff_t lseek64(int fd, loff_t offset, int whence)
--{
-- loff_t result;
-- return (loff_t)(INLINE_SYSCALL(_llseek, 5, fd, (off_t) (offset >> 32),
-- (off_t) (offset & 0xffffffff), &result, whence) ?: result);
--}
--
--#else
--
--loff_t lseek64(int fd, loff_t offset, int whence)
-+#if defined __NR__llseek && __WORDSIZE == 32
-+# include <unistd.h>
-+# include <endian.h>
-+# include <cancel.h>
-+off64_t __NC(lseek64)(int fd, off64_t offset, int whence)
- {
-- return (loff_t)(lseek(fd, (off_t) (offset), whence));
-+ off64_t result;
-+ /* do we not need to handle the offset with __LONG_LONG_PAIR depending on endianness? */
-+ return (off64_t)INLINE_SYSCALL(_llseek, 5, fd, (off_t) OFF64_HI(offset),
-+ (off_t) OFF64_LO(offset), &result, whence) ?: result;
- }
--
--#endif
--
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(lseek64)
--#else
--libc_hidden_weak(lseek64)
--strong_alias(lseek64,__libc_lseek64)
-+CANCELLABLE_SYSCALL(off64_t, lseek64, (int fd, off64_t offset, int whence), (fd, offset, whence))
-+lt_libc_hidden(lseek64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/longjmp.c uClibc-git/libc/sysdeps/linux/common/longjmp.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/longjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/longjmp.c 2014-07-25 20:36:06.781334555 +0200
-@@ -12,23 +12,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <setjmp.h>
- #include <signal.h>
-
--
--extern void __longjmp (__jmp_buf __env, int __val) attribute_noreturn;
--libc_hidden_proto(__longjmp)
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--extern void _longjmp_unwind (jmp_buf env, int val);
--#endif
--
--extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
- /* Set the signal mask to the one specified in ENV, and jump
- to the position specified in ENV, causing the setjmp
- call there to return VAL, or 1 if VAL is 0. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lseek.c uClibc-git/libc/sysdeps/linux/common/lseek.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/lseek.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/lseek.c 2014-07-25 20:36:06.781334555 +0200
-@@ -9,19 +9,55 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+#include <cancel.h>
-
- #ifdef __NR_lseek
--_syscall3(__off_t, lseek, int, fildes, __off_t, offset, int, whence)
-+# define __NR___lseek_nocancel __NR_lseek
-+_syscall3(off_t, __NC(lseek), int, fd, off_t, offset, int, whence)
-+/* Use lseek64 if __NR_lseek is not defined but UCLIBC_HAS_LFS is enabled */
-+#elif !defined __NR_lseek && defined __NR_llseek
-+#include <endian.h>
-+off_t __NC(lseek)(int fd, off_t offset, int whence)
-+{
-+#if defined __UCLIBC_HAS_LFS__
-+ return lseek64(fd, offset, whence);
-+#elif __WORDSIZE == 32
-+ __off64_t result;
-+ __off_t high = 0;
-+ return INLINE_SYSCALL(llseek, 5, fd,
-+ __LONG_LONG_PAIR(high, offset),
-+ &result, whence) ?: result;
-+#endif
-+/* No need to handle __WORDSIZE == 64 as such a kernel won't define __NR_llseek */
-+}
- #else
--
--__off_t lseek(int fildes, __off_t offset, int whence)
-+# include <errno.h>
-+off_t __NC(lseek)(int fd, off_t offset attribute_unused, int whence)
- {
-- return lseek64(fildes, offset, whence);
-+ if (fd < 0) {
-+ __set_errno(EBADF);
-+ return -1;
-+ }
-+
-+ switch(whence) {
-+ case SEEK_SET:
-+ case SEEK_CUR:
-+ case SEEK_END:
-+ break;
-+ default:
-+ __set_errno(EINVAL);
-+ return -1;
-+ }
-+
-+ __set_errno(ENOSYS);
-+ return -1;
- }
- #endif
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(lseek)
--#else
--libc_hidden_weak(lseek)
--strong_alias(lseek,__libc_lseek)
-+CANCELLABLE_SYSCALL(off_t, lseek, (int fd, off_t offset, int whence), (fd, offset, whence))
-+lt_libc_hidden(lseek)
-+#if defined __UCLIBC_HAS_LFS__ && (__WORDSIZE == 64 || (!defined __NR__llseek && !defined __NR_llseek))
-+strong_alias_untyped(__NC(lseek),__NC(lseek64))
-+strong_alias_untyped(lseek,lseek64)
-+lt_strong_alias(lseek64)
-+lt_libc_hidden(lseek64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat64.c uClibc-git/libc/sysdeps/linux/common/lstat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/lstat64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -7,17 +7,27 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_lstat64
- # include <unistd.h>
- # include <sys/stat.h>
--# include "xstatconv.h"
-
-+#if defined __NR_fstatat64 && !defined __NR_lstat64
-+# include <fcntl.h>
-+
-+int lstat64(const char *file_name, struct stat64 *buf)
-+{
-+ return fstatat64(AT_FDCWD, file_name, buf, AT_SYMLINK_NOFOLLOW);
-+}
-+libc_hidden_def(lstat64)
-
-+/* For systems which have both, prefer the old one */
-+#elif defined __NR_lstat64
-+# include "xstatconv.h"
- # define __NR___syscall_lstat64 __NR_lstat64
--static __inline__ _syscall2(int, __syscall_lstat64, const char *, file_name,
-- struct kernel_stat64 *, buf)
-+static __always_inline _syscall2(int, __syscall_lstat64, const char *, file_name,
-+ struct kernel_stat64 *, buf)
-
- int lstat64(const char *file_name, struct stat64 *buf)
- {
-@@ -31,5 +41,4 @@
- return result;
- }
- libc_hidden_def(lstat64)
--
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat.c uClibc-git/libc/sysdeps/linux/common/lstat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/lstat.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,12 +10,23 @@
- #include <sys/syscall.h>
- #include <unistd.h>
- #include <sys/stat.h>
--#include "xstatconv.h"
-+
-+#if defined __NR_fstatat64 && !defined __NR_lstat
-+# include <fcntl.h>
-
- int lstat(const char *file_name, struct stat *buf)
- {
-+ return fstatat(AT_FDCWD, file_name, buf, AT_SYMLINK_NOFOLLOW);
-+}
-+libc_hidden_def(lstat)
-+
-+/* For systems which have both, prefer the old one */
-+#else
-+# include "xstatconv.h"
-+int lstat(const char *file_name, struct stat *buf)
-+{
- int result;
--#ifdef __NR_lstat64
-+# ifdef __NR_lstat64
- /* normal stat call has limited values for various stat elements
- * e.g. uid device major/minor etc.
- * so we use 64 variant if available
-@@ -26,19 +37,22 @@
- if (result == 0) {
- __xstat32_conv(&kbuf, buf);
- }
--#else
-+# else
- struct kernel_stat kbuf;
-
- result = INLINE_SYSCALL(lstat, 2, file_name, &kbuf);
- if (result == 0) {
- __xstat_conv(&kbuf, buf);
- }
--#endif
-+# endif /* __NR_lstat64 */
- return result;
- }
- libc_hidden_def(lstat)
-
--#if ! defined __NR_lstat64 && defined __UCLIBC_HAS_LFS__
-+# if ! defined __NR_fstatat64 && ! defined __NR_lstat64 \
-+ && defined __UCLIBC_HAS_LFS__
- strong_alias_untyped(lstat,lstat64)
- libc_hidden_def(lstat64)
--#endif
-+# endif
-+
-+#endif /* __NR_fstatat64 */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/Makefile.in uClibc-git/libc/sysdeps/linux/common/Makefile.in
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/Makefile.in 2014-07-25 20:36:06.757334429 +0200
-@@ -23,6 +23,7 @@
- bdflush.c \
- capget.c \
- capset.c \
-+ dup3.c \
- eventfd.c \
- inotify.c \
- ioperm.c \
-@@ -64,24 +65,30 @@
- # NPTL needs these internally: madvise.c
- CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC- += fork.c getpid.c raise.c open.c close.c read.c write.c
-+CSRC- += fork.c getpid.c raise.c #open.c close.c read.c write.c
- CSRC- += $(if $(findstring =arm=,=$(TARGET_ARCH)=),vfork.c)
- CSRC- += $(if $(findstring =x86_64=,=$(TARGET_ARCH)=),vfork.c)
--CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
-+#CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
-+CSRC- += $(if $(findstring =metag=,=$(TARGET_ARCH)=),vfork.c)
-+endif
-+ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
-+# No conversion is needed for new architectures
-+CSRC- += xstatconv.c
- endif
- # stubbed out in mman.h
- CSRC-$(ARCH_USE_MMU) += msync.c
- # we need these internally: getdomainname.c
- CSRC-$(UCLIBC_BSD_SPECIFIC) += mincore.c setdomainname.c
- CSRC-$(UCLIBC_NTP_LEGACY) += ntp_gettime.c
--# aio_cancel|aio_error|aio_fsync|aio_read|aio_return|aio_suspend|aio_write|clock_getres|clock_gettime|clock_settime|clock_settime|fdatasync|lio_listio|mlockall|munlockall|mlock|munlock|mq_close|mq_getattr|mq_notify|mq_open|mq_receive|mq_timedreceive|mq_send|mq_timedsend|mq_setattr|mq_unlink|nanosleep|sched_getparam|sched_get_priority_max|sched_get_priority_min|sched_getscheduler|sched_rr_get_interval|sched_setparam|sched_setscheduler|sem_close|sem_destroy|sem_getvalue|sem_init|sem_open|sem_post|sem_trywait|sem_wait|sem_unlink|sem_wait|shm_open|shm_unlink|sigqueue|sigtimedwait|sigwaitinfo|sigwaitinfo|timer_create|timer_delete|timer_getoverrun|timer_gettime|timer_settime
-+# aio_cancel|aio_error|aio_fsync|aio_read|aio_return|aio_suspend|aio_write|clock_getres|clock_gettime|clock_settime|clock_settime|fdatasync|lio_listio|mlockall|munlockall|mlock|munlock|mq_close|mq_getattr|mq_notify|mq_open|mq_receive|mq_timedreceive|mq_send|mq_timedsend|mq_setattr|mq_unlink|nanosleep|sched_getparam|sched_get_priority_max|sched_get_priority_min|sched_getscheduler|sched_rr_get_interval|sched_setparam|sched_setscheduler|sem_close|sem_destroy|sem_getvalue|sem_init|sem_open|sem_post|sem_trywait|sem_wait|sem_unlink|sem_wait|shm_open|shm_unlink|sigqueue|sigtimedwait|sigwaitinfo|timer_create|timer_delete|timer_getoverrun|timer_gettime|timer_settime
- CSRC-$(UCLIBC_HAS_REALTIME) += clock_getres.c clock_gettime.c clock_settime.c \
- fdatasync.c mlockall.c mlock.c munlockall.c munlock.c \
- nanosleep.c __rt_sigtimedwait.c __rt_sigwaitinfo.c sched_getparam.c \
- sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \
- sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c
- # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait
--CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c
-+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \
-+ posix_fallocate.c posix_fallocate64.c
- CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c
- CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c
- CSRC-$(UCLIBC_HAS_XATTR) += xattr.c
-@@ -96,11 +103,11 @@
-
- # provided via pthreads builddir
- CSRC-y := $(filter-out $(libc_a_CSRC) $(notdir $(libpthread_libc_OBJS:.o=.c)),$(CSRC-y))
--SSRC := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC))
-+SSRC-y := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC-y))
-
- # fails for some reason
--ifneq ($(strip $(ARCH_OBJS)),)
--CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)) $(ARCH_OBJ_FILTEROUT),$(CSRC-y))
-+ifneq ($(strip $(ARCH_OBJS-y)),)
-+CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)) $(ARCH_OBJ_FILTEROUT-y),$(CSRC-y))
- endif
-
- CFLAGS-ssp.c := $(SSP_DISABLE_FLAGS)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdirat.c uClibc-git/libc/sysdeps/linux/common/mkdirat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdirat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mkdirat.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_mkdirat
- _syscall3(int, mkdirat, int, fd, const char *, path, mode_t, mode)
-+libc_hidden_def(mkdirat)
- #else
- /* should add emulation with mkdir() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdir.c uClibc-git/libc/sysdeps/linux/common/mkdir.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdir.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mkdir.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,8 +10,15 @@
- #include <sys/syscall.h>
- #include <sys/stat.h>
-
-+#if defined __NR_mkdirat && !defined __NR_mkdir
-+# include <fcntl.h>
-+int mkdir(const char *pathname, mode_t mode)
-+{
-+ return mkdirat(AT_FDCWD, pathname, mode);
-+}
-
--#define __NR___syscall_mkdir __NR_mkdir
-+#else
-+# define __NR___syscall_mkdir __NR_mkdir
- static __inline__ _syscall2(int, __syscall_mkdir, const char *, pathname,
- __kernel_mode_t, mode)
-
-@@ -19,4 +26,5 @@
- {
- return (__syscall_mkdir(pathname, mode));
- }
-+#endif
- libc_hidden_def(mkdir)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkfifo.c uClibc-git/libc/sysdeps/linux/common/mkfifo.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkfifo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mkfifo.c 2014-07-25 20:36:06.781334555 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stddef.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mknod.c uClibc-git/libc/sysdeps/linux/common/mknod.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mknod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mknod.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,6 +10,13 @@
- #include <sys/syscall.h>
- #include <sys/stat.h>
-
-+#if defined __NR_mknodat && !defined __NR_mknod
-+# include <fcntl.h>
-+int mknod(const char *path, mode_t mode, dev_t dev)
-+{
-+ return mknodat(AT_FDCWD, path, mode, dev);
-+}
-+#else
- int mknod(const char *path, mode_t mode, dev_t dev)
- {
- unsigned long long int k_dev;
-@@ -19,4 +26,5 @@
-
- return INLINE_SYSCALL(mknod, 3, path, mode, (unsigned int)k_dev);
- }
-+#endif
- libc_hidden_def(mknod)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap64.c uClibc-git/libc/sysdeps/linux/common/mmap64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mmap64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -6,18 +6,12 @@
- /* Massivly hacked up for uClibc by Erik Andersen */
-
- #include <_lfs_64.h>
--
--#ifdef __UCLIBC_HAS_LFS__
--
--#include <errno.h>
- #include <stdint.h>
--#include <unistd.h>
--#include <sys/mman.h>
- #include <sys/syscall.h>
--#include <bits/uClibc_page.h>
--
-+#include <errno.h>
-+#include <sys/mman.h>
-
--# if !defined __NR_mmap2
-+#ifndef __NR_mmap2
-
- /*
- * This version is a stub that just chops off everything at the mmap 32 bit
-@@ -27,7 +21,7 @@
- *
- */
-
--__ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset)
-+void *mmap64(void *addr, size_t len, int prot, int flags, int fd, __off64_t offset)
- {
- if (offset != (off_t) offset ||
- (offset + len) != (off_t) (offset + len)) {
-@@ -38,17 +32,18 @@
- return mmap(addr, len, prot, flags, fd, (off_t) offset);
- }
-
--# else
-+#else
-+# include <bits/uClibc_page.h>
-
--/* Some architectures always use 12 as page shift for mmap2() eventhough the
-+/* Some architectures always use 12 as page shift for mmap2() even though the
- * real PAGE_SHIFT != 12. Other architectures use the same value as
- * PAGE_SHIFT...
- */
--# ifndef MMAP2_PAGE_SHIFT
--# define MMAP2_PAGE_SHIFT 12
--# endif
-+# ifndef MMAP2_PAGE_SHIFT
-+# define MMAP2_PAGE_SHIFT 12
-+# endif
-
--__ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset)
-+void *mmap64(void *addr, size_t len, int prot, int flags, int fd, __off64_t offset)
- {
- /*
- * Some arches check the size in INLINE_SYSCALL() and barf if it's
-@@ -73,8 +68,7 @@
- */
- sysoff = (uint64_t)offset >> MMAP2_PAGE_SHIFT;
-
-- return (__ptr_t) INLINE_SYSCALL(mmap2, 6, addr, len, prot, flags, fd, sysoff);
-+ return (void*) INLINE_SYSCALL(mmap2, 6, addr, len, prot, flags, fd, sysoff);
- }
-
--# endif
--#endif /* __UCLIBC_HAS_LFS__ */
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap.c uClibc-git/libc/sysdeps/linux/common/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mmap.c 2014-07-25 20:36:06.781334555 +0200
-@@ -7,25 +7,57 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/mman.h>
--#include <bits/uClibc_page.h>
-+#include <sys/syscall.h>
-
--#ifdef __NR_mmap
-+#if defined __UCLIBC_MMAP_HAS_6_ARGS__ && defined __NR_mmap
-
-+# ifndef _syscall6
-+# error disable __UCLIBC_MMAP_HAS_6_ARGS__ for this arch
-+# endif
-
--#ifdef __UCLIBC_MMAP_HAS_6_ARGS__
-+# define __NR__mmap __NR_mmap
-+static _syscall6(void *, _mmap, void *, addr, size_t, len,
-+ int, prot, int, flags, int, fd, __off_t, offset)
-
--_syscall6(void *, mmap, void *, start, size_t, length,
-- int, prot, int, flags, int, fd, off_t, offset)
-+#elif defined __NR_mmap2 && defined _syscall6
-
--#else
-+# include <errno.h>
-+# include <bits/uClibc_page.h>
-+# ifndef MMAP2_PAGE_SHIFT
-+# define MMAP2_PAGE_SHIFT 12
-+# endif
-
--# define __NR__mmap __NR_mmap
--static __inline__ _syscall1(__ptr_t, _mmap, unsigned long *, buffer)
--__ptr_t mmap(__ptr_t addr, size_t len, int prot,
-- int flags, int fd, __off_t offset)
-+# define __NR___syscall_mmap2 __NR_mmap2
-+static __inline__ _syscall6(void *, __syscall_mmap2, void *, addr, size_t, len,
-+ int, prot, int, flags, int, fd, __off_t, offset)
-+
-+static void *_mmap(void *addr, size_t len, int prot, int flags,
-+ int fd, __off_t offset)
-+{
-+ const int mmap2_shift = MMAP2_PAGE_SHIFT;
-+ const __off_t mmap2_mask = ((__off_t) 1 << MMAP2_PAGE_SHIFT) - 1;
-+ /* check if offset is page aligned */
-+ if (offset & mmap2_mask) {
-+ __set_errno(EINVAL);
-+ return MAP_FAILED;
-+ }
-+# ifdef __USE_FILE_OFFSET64
-+ return __syscall_mmap2(addr, len, prot, flags, fd,
-+ ((__u_quad_t) offset >> mmap2_shift));
-+# else
-+ return __syscall_mmap2(addr, len, prot, flags, fd,
-+ ((__u_long) offset >> mmap2_shift));
-+# endif
-+}
-+
-+#elif defined __NR_mmap
-+
-+# define __NR___syscall_mmap __NR_mmap
-+static __inline__ _syscall1(void *, __syscall_mmap, unsigned long *, buffer)
-+
-+static void *_mmap(void *addr, size_t len, int prot, int flags,
-+ int fd, __off_t offset)
- {
- unsigned long buffer[6];
-
-@@ -35,37 +67,14 @@
- buffer[3] = (unsigned long) flags;
- buffer[4] = (unsigned long) fd;
- buffer[5] = (unsigned long) offset;
-- return (__ptr_t) _mmap(buffer);
-+ return __syscall_mmap(buffer);
- }
-
--#endif
--
--libc_hidden_def(mmap)
--
--#elif defined(__NR_mmap2)
--
-+#else
-
--#define __NR___syscall_mmap2 __NR_mmap2
--static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr,
-- size_t, len, int, prot, int, flags, int, fd, off_t, offset)
-+# error "Your architecture doesn't seem to provide mmap() !?"
-
--/* Some architectures always use 12 as page shift for mmap2() eventhough the
-- * real PAGE_SHIFT != 12. Other architectures use the same value as
-- * PAGE_SHIFT...
-- */
--# ifndef MMAP2_PAGE_SHIFT
--# define MMAP2_PAGE_SHIFT 12
--# endif
--
--__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
--{
-- if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) {
-- __set_errno(EINVAL);
-- return MAP_FAILED;
-- }
-- return __syscall_mmap2(addr, len, prot, flags, fd, offset >> MMAP2_PAGE_SHIFT);
--}
-+#endif
-
-+strong_alias(_mmap,mmap)
- libc_hidden_def(mmap)
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mount.c uClibc-git/libc/sysdeps/linux/common/mount.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/mount.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/mount.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,5 +10,5 @@
- #include <sys/syscall.h>
- #include <sys/mount.h>
- _syscall5(int, mount, const char *, specialfile, const char *, dir,
-- const char *, filesystemtype, unsigned long, rwflag,
-- const void *, data)
-+ const char *, filesystemtype, unsigned long, rwflag,
-+ const void *, data)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/msync.c uClibc-git/libc/sysdeps/linux/common/msync.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/msync.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/msync.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,38 +8,14 @@
- */
-
- #include <sys/syscall.h>
--#include <unistd.h>
--#include <sys/mman.h>
-
--#ifdef __NR_msync
-+#if defined __NR_msync && defined __ARCH_USE_MMU__
-+# include <sys/mman.h>
-+# include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
--#define __NR___syscall_msync __NR_msync
--static __always_inline _syscall3(int, __syscall_msync, void *, addr, size_t, length,
-- int, flags)
--
--extern __typeof(msync) __libc_msync;
--int __libc_msync(void * addr, size_t length, int flags)
--{
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype, result;
--#endif
--
-- if (SINGLE_THREAD_P)
-- return __syscall_msync(addr, length, flags);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- oldtype = LIBC_CANCEL_ASYNC ();
-- result = __syscall_msync(addr, length, flags);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--weak_alias(__libc_msync,msync)
-+# define __NR___msync_nocancel __NR_msync
-+static _syscall3(int, __NC(msync), void *, addr, size_t, length, int, flags)
-
-+CANCELLABLE_SYSCALL(int, msync, (void *addr, size_t length, int flags),
-+ (addr, length, flags))
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/munmap.c uClibc-git/libc/sysdeps/linux/common/munmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/munmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/munmap.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,9 +8,7 @@
- */
-
- #include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/mman.h>
-
--
- _syscall2(int, munmap, void *, start, size_t, length)
- libc_hidden_def(munmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/nanosleep.c uClibc-git/libc/sysdeps/linux/common/nanosleep.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/nanosleep.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/nanosleep.c 2014-07-25 20:36:06.781334555 +0200
-@@ -9,32 +9,13 @@
-
- #include <sys/syscall.h>
- #include <time.h>
-+#include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#include <pthreadP.h>
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
--#define __NR___syscall_nanosleep __NR_nanosleep
--static inline _syscall2(int, __syscall_nanosleep, const struct timespec *, req,
-- struct timespec *, rem);
--
--extern __typeof(nanosleep) __libc_nanosleep;
--
--int __libc_nanosleep(const struct timespec *req, struct timespec *rem)
--{
-- if (SINGLE_THREAD_P)
-- return __syscall_nanosleep(req, rem);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __syscall_nanosleep(req, rem);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--
--weak_alias(__libc_nanosleep,nanosleep)
--libc_hidden_weak(nanosleep)
-+#define __NR___nanosleep_nocancel __NR_nanosleep
-+static _syscall2(int, __NC(nanosleep), const struct timespec *, req,
-+ struct timespec *, rem);
-+
-+CANCELLABLE_SYSCALL(int, nanosleep,
-+ (const struct timespec *req, struct timespec *rem),
-+ (req, rem))
-+lt_libc_hidden(nanosleep)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/nice.c uClibc-git/libc/sysdeps/linux/common/nice.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/nice.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/nice.c 2014-07-25 20:36:06.781334555 +0200
-@@ -25,15 +25,15 @@
-
- static __inline__ int int_add_no_wrap(int a, int b)
- {
-- int s = a + b;
--
- if (b < 0) {
-- if (s > a) s = INT_MIN;
-+ if (a < INT_MIN - b)
-+ return INT_MIN;
- } else {
-- if (s < a) s = INT_MAX;
-+ if (a > INT_MAX - b)
-+ return INT_MAX;
- }
-
-- return s;
-+ return a + b;
- }
-
- static __inline__ int __syscall_nice(int incr)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/noophooks.c uClibc-git/libc/sysdeps/linux/common/noophooks.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/noophooks.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/noophooks.c 2014-07-25 20:36:06.781334555 +0200
-@@ -14,11 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <libc-internal.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- void
- __cyg_profile_func_enter (attribute_unused void *this_fn, attribute_unused void *call_site);
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/not-cancel.h uClibc-git/libc/sysdeps/linux/common/not-cancel.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/not-cancel.h 2014-07-25 20:36:06.781334555 +0200
-@@ -1,5 +1,5 @@
- /* Uncancelable versions of cancelable interfaces. Linux version.
-- Copyright (C) 2003 Free Software Foundation, Inc.
-+ Copyright (C) 2003, 2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-@@ -14,17 +14,50 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-+#include <sys/types.h>
- #include <sysdep.h>
-
-+#ifdef NOT_IN_libc
-+
- /* Uncancelable open. */
-+#if defined __NR_openat && !defined __NR_open
-+#define open_not_cancel(name, flags, mode) \
-+ INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), (flags), (mode))
-+#define open_not_cancel_2(name, flags) \
-+ INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), (flags))
-+#else
- #define open_not_cancel(name, flags, mode) \
- INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
- #define open_not_cancel_2(name, flags) \
- INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
-+#endif
-+
-+#if 0
-+/* Uncancelable openat. */
-+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-+extern int __openat_nocancel (int fd, const char *fname, int oflag,
-+ mode_t mode) attribute_hidden;
-+extern int __openat64_nocancel (int fd, const char *fname, int oflag,
-+ mode_t mode) attribute_hidden;
-+#else
-+# define __openat_nocancel(fd, fname, oflag, mode) \
-+ openat (fd, fname, oflag, mode)
-+# define __openat64_nocancel(fd, fname, oflag, mode) \
-+ openat64 (fd, fname, oflag, mode)
-+#endif
-+
-+#define openat_not_cancel(fd, fname, oflag, mode) \
-+ __openat_nocancel (fd, fname, oflag, mode)
-+#define openat_not_cancel_3(fd, fname, oflag) \
-+ __openat_nocancel (fd, fname, oflag, 0)
-+#define openat64_not_cancel(fd, fname, oflag, mode) \
-+ __openat64_nocancel (fd, fname, oflag, mode)
-+#define openat64_not_cancel_3(fd, fname, oflag) \
-+ __openat64_nocancel (fd, fname, oflag, 0)
-+#endif
-
- /* Uncancelable close. */
- #define close_not_cancel(fd) \
-@@ -37,10 +70,13 @@
- #define read_not_cancel(fd, buf, n) \
- INLINE_SYSCALL (read, 3, (fd), (buf), (n))
-
-+#ifdef __LINUXTHREADS_NEW__
- /* Uncancelable write. */
- #define write_not_cancel(fd, buf, n) \
- INLINE_SYSCALL (write, 3, (fd), (buf), (n))
-+#endif
-
-+#if 0
- /* Uncancelable writev. */
- #define writev_not_cancel_no_status(fd, iov, n) \
- (void) ({ INTERNAL_SYSCALL_DECL (err); \
-@@ -49,12 +85,68 @@
- /* Uncancelable fcntl. */
- #define fcntl_not_cancel(fd, cmd, val) \
- __fcntl_nocancel (fd, cmd, val)
-+#endif
-
-+#ifdef __LINUXTHREADS_NEW__
- /* Uncancelable waitpid. */
--#ifdef __NR_waitpid
-+#if 0 /*def __NR_waitpid*/
- # define waitpid_not_cancel(pid, stat_loc, options) \
- INLINE_SYSCALL (waitpid, 3, pid, stat_loc, options)
- #else
- # define waitpid_not_cancel(pid, stat_loc, options) \
- INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
- #endif
-+#endif
-+
-+/* Uncancelable pause. */
-+#ifdef __NR_pause
-+# define pause_not_cancel() \
-+ INLINE_SYSCALL (pause, 0)
-+#else
-+# include <unistd.h>
-+extern __typeof(pause) __pause_nocancel;
-+# define pause_not_cancel() \
-+ __pause_nocancel ()
-+#endif
-+
-+/* Uncancelable nanosleep. */
-+#ifdef __NR_nanosleep
-+# define nanosleep_not_cancel(requested_time, remaining) \
-+ INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
-+/*#else
-+# define nanosleep_not_cancel(requested_time, remaining) \
-+ __nanosleep_nocancel (requested_time, remaining)*/
-+#endif
-+
-+#if 0
-+/* Uncancelable sigsuspend. */
-+#define sigsuspend_not_cancel(set) \
-+ __sigsuspend_nocancel (set)
-+#endif
-+
-+#elif !defined NOT_IN_libc
-+
-+#include <cancel.h>
-+#include <fcntl.h>
-+#include <unistd.h>
-+
-+#define open_not_cancel(name, flags, mode) \
-+ __NC(open)(name, flags, mode)
-+#define open_not_cancel_2(name, flags) \
-+ __NC(open2)(name, flags)
-+
-+#define close_not_cancel(fd) \
-+ __NC(close)(fd)
-+#define close_not_cancel_no_status(fd) \
-+ __close_nocancel_no_status(fd)
-+
-+#define read_not_cancel(fd, buf, n) \
-+ __NC(read)(fd, buf, n)
-+
-+#define write_not_cancel(fd, buf, n) \
-+ __NC(write)(fd, buf, n)
-+
-+#define fcntl_not_cancel(fd, cmd, val) \
-+ __NC(fcntl)(fd, cmd, val)
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ntp_gettime.c uClibc-git/libc/sysdeps/linux/common/ntp_gettime.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ntp_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ntp_gettime.c 2014-07-25 20:36:06.781334555 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/timex.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/open64.c uClibc-git/libc/sysdeps/linux/common/open64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/open64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/open64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -4,54 +4,31 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
-+#include <_lfs_64.h>
-+#include <sys/syscall.h>
- #include <fcntl.h>
- #include <stdarg.h>
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <errno.h>
--#include <sysdep-cancel.h>
--#endif
--
--#ifdef __UCLIBC_HAS_LFS__
--
--#ifndef O_LARGEFILE
--# define O_LARGEFILE 0100000
--#endif
-+#include <cancel.h>
-
- /* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
- a third argument is the file protection. */
--int open64 (const char *file, int oflag, ...)
-+int open64(const char *file, int oflag, ...)
- {
-- mode_t mode = 0;
--
-- if (oflag & O_CREAT)
-- {
-- va_list arg;
-- va_start (arg, oflag);
-- mode = va_arg (arg, mode_t);
-- va_end (arg);
-- }
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL (open, 3, file, oflag | O_LARGEFILE, mode);
-+ mode_t mode = 0;
-
-- int oldtype = LIBC_CANCEL_ASYNC ();
--
-- int result = INLINE_SYSCALL (open, 3, file, oflag | O_LARGEFILE, mode);
--
-- LIBC_CANCEL_RESET (oldtype);
--
-- return result;
-+ if (oflag & O_CREAT) {
-+ va_list arg;
-+ va_start (arg, oflag);
-+ mode = va_arg (arg, mode_t);
-+ va_end (arg);
-+ }
-+#if defined __NR_openat && !defined __NR_open
-+ return openat(AT_FDCWD, file, oflag | O_LARGEFILE, mode);
- #else
-- return open(file, oflag | O_LARGEFILE, mode);
-+ return open(file, oflag | O_LARGEFILE, mode);
- #endif
- }
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(open64)
--#else
--libc_hidden_weak(open64)
--strong_alias(open64,__libc_open64)
--#endif
--
--#endif /* __UCLIBC_HAS_LFS__ */
-+lt_strong_alias(open64)
-+lt_libc_hidden(open64)
-+/* open handled cancellation, noop on uClibc */
-+LIBC_CANCEL_HANDLED();
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/openat64.c uClibc-git/libc/sysdeps/linux/common/openat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/openat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/openat64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -6,27 +6,16 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define openat64 __xx_openat
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
- #include <fcntl.h>
--#undef openat64
--
--#ifdef __UCLIBC_HAS_LFS__
-
- #ifdef __NR_openat
--/* The openat() prototype is varargs based, but we don't care about that
-- * here, so need to provide our own dedicated signature.
-- */
--extern int openat64(int fd, const char *file, int oflag, mode_t mode);
--libc_hidden_proto(openat64)
--
--int openat64(int fd, const char *file, int oflag, mode_t mode)
-+static int __openat64(int fd, const char *file, int oflag, mode_t mode)
- {
- return openat(fd, file, oflag | O_LARGEFILE, mode);
- }
--libc_hidden_def(openat64)
-+strong_alias_untyped(__openat64,openat64)
- #else
- /* should add emulation with open() and /proc/self/fd/ ... */
- #endif
--
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/openat.c uClibc-git/libc/sysdeps/linux/common/openat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/openat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/openat.c 2014-07-25 20:36:06.781334555 +0200
-@@ -6,19 +6,13 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define openat __xx_openat
- #include <sys/syscall.h>
- #include <fcntl.h>
--#undef openat
-
- #ifdef __NR_openat
--/* The openat() prototype is varargs based, but we don't care about that
-- * here, so need to provide our own dedicated signature.
-- */
--extern int openat(int fd, const char *file, int oflag, mode_t mode);
--libc_hidden_proto(openat)
--
--_syscall4(int, openat, int, fd, const char *, file, int, oflag, mode_t, mode)
-+# define __NR___syscall_openat __NR_openat
-+static __inline__ _syscall4(int, __syscall_openat, int, fd, const char *, file, int, oflag, mode_t, mode)
-+strong_alias_untyped(__syscall_openat,openat)
- libc_hidden_def(openat)
- #else
- /* should add emulation with open() and /proc/self/fd/ ... */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/open.c uClibc-git/libc/sysdeps/linux/common/open.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/open.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/open.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,15 +8,22 @@
- */
-
- #include <sys/syscall.h>
--#include <stdlib.h>
--#include <stdarg.h>
- #include <fcntl.h>
--#include <string.h>
--#include <sys/param.h>
-+#include <stdarg.h>
-+#include <cancel.h>
-+
-+#if defined __NR_open
-+# define __NR___syscall_open __NR_open
-+static __always_inline _syscall3(int, __syscall_open, const char *, file,
-+ int, flags, __kernel_mode_t, mode)
-+strong_alias_untyped(__syscall_open,__NC(open))
-
--#define __NR___syscall_open __NR_open
--static __inline__ _syscall3(int, __syscall_open, const char *, file,
-- int, flags, __kernel_mode_t, mode)
-+# define __NR___open2_nocancel __NR_open
-+_syscall2(int, __NC(open2), const char *, file, int, flags)
-+#else
-+int __open2_nocancel(const char *, int) __nonnull ((1)) attribute_hidden;
-+int __open_nocancel(const char *, int, mode_t) __nonnull ((1)) attribute_hidden;
-+#endif
-
- int open(const char *file, int oflag, ...)
- {
-@@ -29,11 +36,27 @@
- va_end(arg);
- }
-
-- return __syscall_open(file, oflag, mode);
-+ if (SINGLE_THREAD_P)
-+#if defined(__NR_open)
-+ return __NC(open)(file, oflag, mode);
-+#elif defined(__NR_openat)
-+ return openat(AT_FDCWD, file, oflag, mode);
-+#endif
-+
-+#ifdef __NEW_THREADS
-+ int oldtype = LIBC_CANCEL_ASYNC ();
-+# if defined(__NR_open)
-+ int result = __NC(open)(file, oflag, mode);
-+# else
-+ int result = openat(AT_FDCWD, file, oflag, mode);
-+# endif
-+ LIBC_CANCEL_RESET (oldtype);
-+ return result;
-+#endif
- }
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(open)
--#else
--libc_hidden_weak(open)
--strong_alias(open,__libc_open)
-+lt_strong_alias(open)
-+lt_libc_hidden(open)
-+#if !defined(__NR_open)
-+strong_alias_untyped(open,__open2_nocancel)
-+strong_alias_untyped(open,__open_nocancel)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pause.c uClibc-git/libc/sysdeps/linux/common/pause.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/pause.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/pause.c 2014-07-25 20:36:06.781334555 +0200
-@@ -7,35 +7,35 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define __UCLIBC_HIDE_DEPRECATED__
- #include <sys/syscall.h>
- #include <unistd.h>
-+#include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#endif
--
--#include <signal.h>
-+#ifdef __NR_pause
-+/* even if it is not obvious, glibc uses the pause syscall, see syscalls.list */
-+# define __NR___pause_nocancel __NR_pause
-+static _syscall0(int, __NC(pause))
-+CANCELLABLE_SYSCALL(int, pause, (void), ())
-+#else
-+# define __need_NULL
-+# include <stddef.h>
-+# include <signal.h>
-
--/* Suspend the process until a signal arrives.
-- This always returns -1 and sets errno to EINTR. */
--extern __typeof(pause) __libc_pause;
- int
--__libc_pause (void)
-+# ifdef __LINUXTHREADS_OLD__
-+weak_function
-+# endif
-+__NC(pause)(void)
- {
-- sigset_t set;
--
-- /*__sigemptyset (&set); - why? */
-- sigprocmask (SIG_BLOCK, NULL, &set);
-+ sigset_t set;
-
-- /* pause is a cancellation point, but so is sigsuspend.
-- So no need for anything special here. */
-+ /*__sigemptyset (&set); - why? */
-+ sigprocmask (SIG_BLOCK, NULL, &set);
-
-- return sigsuspend (&set);
-+ /* pause is a cancellation point, but so is sigsuspend.
-+ So no need for anything special here. */
-+ return sigsuspend(&set);
- }
--weak_alias (__libc_pause, pause)
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+CANCELLABLE_SYSCALL(int, pause, (void), ())
- LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */
- #endif
--
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pipe.c uClibc-git/libc/sysdeps/linux/common/pipe.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/pipe.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/pipe.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,5 +11,13 @@
- #include <unistd.h>
-
-
-+#if defined __NR_pipe2 && !defined __NR_pipe
-+int pipe(int filedes[2])
-+{
-+ return pipe2(filedes, 0);
-+}
-+/* If both are defined then use the pipe syscall */
-+#else
- _syscall1(int, pipe, int *, filedes)
-+#endif
- libc_hidden_def(pipe)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pivot_root.c uClibc-git/libc/sysdeps/linux/common/pivot_root.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/pivot_root.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/pivot_root.c 2014-07-25 20:36:06.781334555 +0200
-@@ -9,7 +9,7 @@
-
- #include <sys/syscall.h>
-
--int pivot_root(const char *new_root, const char *put_old);
- #ifdef __NR_pivot_root
-+int pivot_root(const char *new_root, const char *put_old);
- _syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/poll.c uClibc-git/libc/sysdeps/linux/common/poll.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/poll.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/poll.c 2014-07-25 20:36:06.781334555 +0200
-@@ -13,40 +13,20 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/syscall.h>
- #include <sys/poll.h>
- #include <bits/kernel-features.h>
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
--libc_hidden_proto(poll)
-+#include <cancel.h>
-
- #if defined __ASSUME_POLL_SYSCALL && defined __NR_poll
-
--#define __NR___syscall_poll __NR_poll
--static inline _syscall3(int, __syscall_poll, struct pollfd *, fds,
-- unsigned long int, nfds, int, timeout);
--
--int poll(struct pollfd *fds, nfds_t nfds, int timeout)
--{
-- if (SINGLE_THREAD_P)
-- return __syscall_poll(fds, nfds, timeout);
-+#define __NR___poll_nocancel __NR_poll
-+static _syscall3(int, __NC(poll), struct pollfd *, fds,
-+ unsigned long int, nfds, int, timeout)
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __syscall_poll(fds, nfds, timeout);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
- #else /* !__NR_poll */
-
- #include <alloca.h>
-@@ -56,9 +36,7 @@
- #include <sys/time.h>
- #include <sys/param.h>
- #include <unistd.h>
--
--libc_hidden_proto(getdtablesize)
--libc_hidden_proto(select)
-+#include <sys/select.h>
-
- /* uClinux 2.0 doesn't have poll, emulate it using select */
-
-@@ -68,7 +46,7 @@
- Returns the number of file descriptors with events, zero if timed out,
- or -1 for errors. */
-
--int poll(struct pollfd *fds, nfds_t nfds, int timeout)
-+int __NC(poll)(struct pollfd *fds, nfds_t nfds, int timeout)
- {
- static int max_fd_size;
- struct timeval tv;
-@@ -139,7 +117,7 @@
-
- while (1)
- {
-- ready = select (maxfd + 1, rset, wset, xset,
-+ ready = __NC(select) (maxfd + 1, rset, wset, xset,
- timeout == -1 ? NULL : &tv);
-
- /* It might be that one or more of the file descriptors is invalid.
-@@ -182,7 +160,7 @@
- if (f->events & POLLPRI)
- FD_SET (f->fd, sngl_xset);
-
-- n = select (f->fd + 1, sngl_rset, sngl_wset, sngl_xset,
-+ n = __NC(select) (f->fd + 1, sngl_rset, sngl_wset, sngl_xset,
- &sngl_tv);
- if (n != -1)
- {
-@@ -227,4 +205,6 @@
- }
-
- #endif
--libc_hidden_def(poll)
-+CANCELLABLE_SYSCALL(int, poll, (struct pollfd *fds, nfds_t nfds, int timeout),
-+ (fds, nfds, timeout))
-+lt_libc_hidden(poll)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/common/posix_fadvise64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/posix_fadvise64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,63 +8,32 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
--#include <fcntl.h>
-+#include <bits/wordsize.h>
-
--#ifdef __UCLIBC_HAS_LFS__
--#ifdef __NR_fadvise64_64
--
--/* 64 bit implementation is cake ... or more like pie ... */
--#if __WORDSIZE == 64
--
--#define __NR_posix_fadvise64 __NR_fadvise64_64
--
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
--{
-- if (len != (off_t) len)
-- return EOVERFLOW;
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (posix_fadvise64, err, 5, fd,
-- __LONG_LONG_PAIR ((long) (offset >> 32),
-- (long) offset),
-- (off_t) len, advice);
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
--}
-+#ifdef __NR_arm_fadvise64_64
-+# define __NR_fadvise64_64 __NR_arm_fadvise64_64
-+#endif
-
--/* 32 bit implementation is kind of a pita */
--#elif __WORDSIZE == 32
-+#if defined __NR_fadvise64_64 && __WORDSIZE == 32
-+# include <fcntl.h>
-+# include <endian.h>
-
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
-+int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice)
- {
- INTERNAL_SYSCALL_DECL (err);
-+ /* ARM has always been funky. */
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__) || defined(__arm__)
-+ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
-+ OFF64_HI_LO (offset), OFF64_HI_LO (len));
-+# else
- int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
-- __LONG_LONG_PAIR(offset >> 32, offset & 0xffffffff),
-- __LONG_LONG_PAIR(len >> 32, len & 0xffffffff),
-- advice);
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
-+ OFF64_HI_LO (offset), OFF64_HI_LO (len),
-+ advice);
-+# endif
-+ if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-+ return INTERNAL_SYSCALL_ERRNO (ret, err);
-+ return 0;
- }
--
--#else
--#error your machine is neither 32 bit or 64 bit ... it must be magical
- #endif
--
--#elif !defined __NR_fadvise64 && defined __UCLIBC_HAS_STUBS__
--/* This is declared as a strong alias in posix_fadvise.c if __NR_fadvise64
-- * is defined.
-- */
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
--{
-- return ENOSYS;
--}
--#endif /* __NR_fadvise64_64 */
--#endif /* __UCLIBC_HAS_LFS__ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise.c uClibc-git/libc/sysdeps/linux/common/posix_fadvise.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/posix_fadvise.c 2014-07-25 20:36:06.781334555 +0200
-@@ -9,27 +9,46 @@
- */
-
- #include <sys/syscall.h>
--#include <fcntl.h>
-
--#ifdef __NR_fadvise64
--#define __NR_posix_fadvise __NR_fadvise64
-+#ifdef __NR_arm_fadvise64_64
-+/* We handle the 64bit alignment issue which is why the arm guys renamed their
-+ * syscall in the first place. So rename it back.
-+ */
-+# define __NR_fadvise64_64 __NR_arm_fadvise64_64
-+#endif
-+
-+#if defined(__NR_fadvise64) || defined(__NR_fadvise64_64)
-+# include <fcntl.h>
-+# include <endian.h>
-+# include <bits/wordsize.h>
-+
-+# ifdef __NR_fadvise64_64
-+int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice);
-+# endif
-+
- int posix_fadvise(int fd, off_t offset, off_t len, int advice)
- {
-+# ifdef __NR_fadvise64_64
-+ return posix_fadvise64(fd, offset, len, advice);
-+# else
-+ int ret;
- INTERNAL_SYSCALL_DECL(err);
-- int ret = (int) (INTERNAL_SYSCALL(posix_fadvise, err, 5, fd,
-- __LONG_LONG_PAIR (offset >> 31, offset), len, advice));
-- if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
-- return 0;
-+# if __WORDSIZE == 64
-+ ret = INTERNAL_SYSCALL(fadvise64, err, 4, fd, offset, len, advice);
-+# else
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+ ret = INTERNAL_SYSCALL(fadvise64, err, 6, fd, /*unused*/0,
-+# else
-+ ret = INTERNAL_SYSCALL(fadvise64, err, 5, fd,
-+# endif
-+ OFF_HI_LO (offset), len, advice);
-+# endif
-+ if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-+ return INTERNAL_SYSCALL_ERRNO (ret, err);
-+ return 0;
-+# endif
- }
--
--#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fadvise64_64
-+# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || __WORDSIZE == 64)
- strong_alias(posix_fadvise,posix_fadvise64)
--#endif
--
--#elif defined __UCLIBC_HAS_STUBS__
--int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
--{
-- return ENOSYS;
--}
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate64.c uClibc-git/libc/sysdeps/linux/common/posix_fallocate64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate64.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/posix_fallocate64.c 2014-07-25 20:36:06.781334555 +0200
-@@ -0,0 +1,34 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * posix_fallocate() for uClibc
-+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <fcntl.h>
-+#include <bits/kernel-features.h>
-+#include <stdint.h>
-+
-+#if defined __NR_fallocate
-+
-+# if __WORDSIZE == 64
-+/* Can use normal posix_fallocate() */
-+# elif __WORDSIZE == 32
-+int posix_fallocate64(int fd, __off64_t offset, __off64_t len)
-+{
-+ int ret;
-+ INTERNAL_SYSCALL_DECL(err);
-+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
-+ OFF64_HI_LO (offset), OFF64_HI_LO (len)));
-+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
-+ return INTERNAL_SYSCALL_ERRNO (ret, err);
-+ return 0;
-+}
-+# else
-+# error your machine is neither 32 bit or 64 bit ... it must be magical
-+# endif
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate.c uClibc-git/libc/sysdeps/linux/common/posix_fallocate.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/posix_fallocate.c 2014-07-25 20:36:06.781334555 +0200
-@@ -0,0 +1,43 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * posix_fallocate() for uClibc
-+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <fcntl.h>
-+#include <bits/kernel-features.h>
-+#include <stdint.h>
-+
-+#if defined __NR_fallocate
-+int posix_fallocate(int fd, __off_t offset, __off_t len)
-+{
-+ int ret;
-+
-+# if __WORDSIZE == 32
-+ uint32_t off_low = offset;
-+ uint32_t len_low = len;
-+ /* may assert that these >>31 are 0 */
-+ uint32_t zero = 0;
-+ INTERNAL_SYSCALL_DECL(err);
-+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
-+ __LONG_LONG_PAIR (zero, off_low),
-+ __LONG_LONG_PAIR (zero, len_low)));
-+# elif __WORDSIZE == 64
-+ INTERNAL_SYSCALL_DECL(err);
-+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len));
-+# else
-+# error your machine is neither 32 bit or 64 bit ... it must be magical
-+#endif
-+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
-+ return INTERNAL_SYSCALL_ERRNO (ret, err);
-+ return 0;
-+}
-+# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias(posix_fallocate,posix_fallocate64)
-+# endif
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_madvise.c uClibc-git/libc/sysdeps/linux/common/posix_madvise.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_madvise.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common/posix_madvise.c 2014-07-25 20:36:06.781334555 +0200
-@@ -0,0 +1,25 @@
-+/* vi: set sw=4 ts=4: */
-+/* Licensed under the LGPL v2.1, see the file LICENSE in this tarball. */
-+
-+#include <sys/mman.h>
-+#include <sys/syscall.h>
-+
-+#if defined __NR_madvise && defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
-+int posix_madvise(void *addr, size_t len, int advice)
-+{
-+ int result;
-+ /* We have one problem: the kernel's MADV_DONTNEED does not
-+ * correspond to POSIX's POSIX_MADV_DONTNEED. The former simply
-+ * discards changes made to the memory without writing it back to
-+ * disk, if this would be necessary. The POSIX behaviour does not
-+ * allow this. There is no functionality mapping for the POSIX
-+ * behaviour so far so we ignore that advice for now. */
-+ if (advice == POSIX_MADV_DONTNEED)
-+ return 0;
-+
-+ /* this part might use madvise function */
-+ INTERNAL_SYSCALL_DECL (err);
-+ result = INTERNAL_SYSCALL (madvise, err, 3, addr, len, advice);
-+ return INTERNAL_SYSCALL_ERRNO (result, err);
-+}
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ppoll.c uClibc-git/libc/sysdeps/linux/common/ppoll.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ppoll.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ppoll.c 2014-07-25 20:36:06.781334555 +0200
-@@ -13,26 +13,22 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <signal.h>
- #include <sys/syscall.h>
--#include <sys/poll.h>
-+
-+#if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU
-+
- #define __need_NULL
- #include <stddef.h>
-+#include <signal.h>
-+#include <sys/poll.h>
-+#include <cancel.h>
-
--#if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
--# else
--# define SINGLE_THREAD_P 1
--# endif
--
--int
--ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
-- const sigset_t *sigmask)
-+static int
-+__NC(ppoll)(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
-+ const sigset_t *sigmask)
- {
- /* The Linux kernel can in some situations update the timeout value.
- We do not want that so use a local variable. */
-@@ -41,15 +37,11 @@
- tval = *timeout;
- timeout = &tval;
- }
-- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
--
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--# endif
-+ return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, __SYSCALL_SIGSET_T_SIZE);
- }
--libc_hidden_def(ppoll)
-+
-+CANCELLABLE_SYSCALL(int, ppoll, (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
-+ const sigset_t *sigmask),
-+ (fds, nfds, timeout, sigmask))
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/prctl.c uClibc-git/libc/sysdeps/linux/common/prctl.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/prctl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/prctl.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,10 +8,10 @@
- */
-
- #include <sys/syscall.h>
--#include <stdarg.h>
- /* psm: including sys/prctl.h would depend on kernel headers */
-
- #ifdef __NR_prctl
--extern int prctl (int, long, long, long, long);
--_syscall5(int, prctl, int, option, long, _a2, long, _a3, long, _a4, long, _a5)
-+int prctl (int, long, long, long, long);
-+_syscall5(int, prctl, int, option, long, _prctl_a2, long, _prctl_a3,
-+ long, _prctl_a4, long, _prctl_a5)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c uClibc-git/libc/sysdeps/linux/common/pread_write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/pread_write.c 2014-07-25 20:36:06.781334555 +0200
-@@ -15,173 +15,101 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
--#include <stdint.h>
- #include <endian.h>
-+#include <bits/wordsize.h>
-+#include <cancel.h>
-
--extern __typeof(pread) __libc_pread;
--extern __typeof(pwrite) __libc_pwrite;
--#ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pread64) __libc_pread64;
--extern __typeof(pwrite64) __libc_pwrite64;
-+#ifdef __NR_pread64
-+# undef __NR_pread
-+# define __NR_pread __NR_pread64
-+#endif
-+#ifdef __NR_pwrite64
-+# undef __NR_pwrite
-+# define __NR_pwrite __NR_pwrite64
- #endif
-
--#include <bits/kernel_types.h>
--
--#ifdef __NR_pread
--
--# define __NR___syscall_pread __NR_pread
--static __inline__ _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
-- size_t, count, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset));
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(high, low));
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--
--#endif /* __NR_pread */
--
--#ifdef __NR_pwrite
--
--# define __NR___syscall_pwrite __NR_pwrite
--static __inline__ _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-- size_t, count, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset));
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(high, low));
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* __NR_pwrite */
--
--#if ! defined __NR_pread || ! defined __NR_pwrite
--
--static ssize_t __fake_pread_write(int fd, void *buf,
-- size_t count, off_t offset, int do_pwrite)
--{
-- int save_errno;
-- ssize_t result;
-- off_t old_offset;
--
-- /* Since we must not change the file pointer preserve the
-- * value so that we can restore it later. */
-- if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
-- return -1;
--
-- /* Set to wanted position. */
-- if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
-- return -1;
--
-- if (do_pwrite == 1) {
-- /* Write the data. */
-- result = write(fd, buf, count);
-- } else {
-- /* Read the data. */
-- result = read(fd, buf, count);
-- }
--
-- /* Now we have to restore the position. If this fails we
-- * have to return this as an error. */
-- save_errno = errno;
-- if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
-- {
-- if (result == -1)
-- __set_errno(save_errno);
-- return -1;
-- }
-- __set_errno(save_errno);
-- return(result);
--}
--
--# ifdef __UCLIBC_HAS_LFS__
-+#ifndef MY_PREAD
-+# ifdef __NR_pread
-+# define __NR___syscall_pread __NR_pread
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+static _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
-+ size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
-+# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, 0, OFF_HI_LO(offset))
-+# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, 0, OFF64_HI_LO(offset))
-+# elif __WORDSIZE == 32
-+static _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
-+ size_t, count, off_t, offset_hi, off_t, offset_lo)
-+# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, OFF_HI_LO(offset))
-+# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, OFF64_HI_LO(offset))
-+# else
-+static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf,
-+ size_t, count, off_t, offset)
-+# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, offset)
-+# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, offset)
-+# endif
-+# endif
-+#endif
-
--static ssize_t __fake_pread_write64(int fd, void *buf,
-- size_t count, off64_t offset, int do_pwrite)
--{
-- int save_errno;
-- ssize_t result;
-- off64_t old_offset;
--
-- /* Since we must not change the file pointer preserve the
-- * value so that we can restore it later. */
-- if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
-- return -1;
--
-- /* Set to wanted position. */
-- if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
-- return -1;
--
-- if (do_pwrite == 1) {
-- /* Write the data. */
-- result = write(fd, buf, count);
-- } else {
-- /* Read the data. */
-- result = read(fd, buf, count);
-- }
--
-- /* Now we have to restore the position. */
-- save_errno = errno;
-- if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) {
-- if (result == -1)
-- __set_errno (save_errno);
-- return -1;
-- }
-- __set_errno (save_errno);
-- return result;
--}
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
-+#ifndef MY_PWRITE
-+# ifdef __NR_pwrite
-+# define __NR___syscall_pwrite __NR_pwrite
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+static _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-+ size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
-+# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, 0, OFF_HI_LO(offset))
-+# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, 0, OFF64_HI_LO(offset))
-+# elif __WORDSIZE == 32
-+static _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-+ size_t, count, off_t, offset_hi, off_t, offset_lo)
-+# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, OFF_HI_LO(offset))
-+# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, OFF64_HI_LO(offset))
-+# else
-+static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-+ size_t, count, off_t, offset)
-+# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, offset)
-+# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, offset)
-+# endif
-+# endif
-+#endif
-
--#ifndef __NR_pread
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
-+static ssize_t __NC(pread)(int fd, void *buf, size_t count, off_t offset)
- {
-- return __fake_pread_write(fd, buf, count, offset, 0);
-+ return MY_PREAD(fd, buf, count, offset);
- }
--weak_alias(__libc_pread,pread)
-+CANCELLABLE_SYSCALL(ssize_t, pread, (int fd, void *buf, size_t count, off_t offset),
-+ (fd, buf, count, offset))
-
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
-+static ssize_t __NC(pwrite)(int fd, const void *buf, size_t count, off_t offset)
- {
-- return __fake_pread_write64(fd, buf, count, offset, 0);
-+ return MY_PWRITE(fd, buf, count, offset);
- }
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! __NR_pread */
-+CANCELLABLE_SYSCALL(ssize_t, pwrite, (int fd, const void *buf, size_t count, off_t offset),
-+ (fd, buf, count, offset))
-
--#ifndef __NR_pwrite
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
-+#ifdef __UCLIBC_HAS_LFS__
-+# if __WORDSIZE == 32
-+static ssize_t __NC(pread64)(int fd, void *buf, size_t count, off64_t offset)
- {
-- /* we won't actually be modifying the buffer,
-- *just cast it to get rid of warnings */
-- return __fake_pread_write(fd, (void*)buf, count, offset, 1);
-+ return MY_PREAD64(fd, buf, count, offset);
- }
--weak_alias(__libc_pwrite,pwrite)
-+CANCELLABLE_SYSCALL(ssize_t, pread64, (int fd, void *buf, size_t count, off64_t offset),
-+ (fd, buf, count, offset))
-
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- return __fake_pread_write64(fd, (void*)buf, count, offset, 1);
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! __NR_pwrite */
-+static ssize_t __NC(pwrite64)(int fd, const void *buf, size_t count, off64_t offset)
-+{
-+ return MY_PWRITE64(fd, buf, count, offset);
-+}
-+CANCELLABLE_SYSCALL(ssize_t, pwrite64, (int fd, const void *buf, size_t count, off64_t offset),
-+ (fd, buf, count, offset))
-+# else
-+# ifdef __LINUXTHREADS_OLD__
-+weak_alias(pread,pread64)
-+weak_alias(pwrite,pwrite64)
-+lt_strong_alias(pread64)
-+lt_strong_alias(pwrite64)
-+# else
-+strong_alias_untyped(pread,pread64)
-+strong_alias_untyped(pwrite,pwrite64)
-+# endif
-+# endif
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pselect.c uClibc-git/libc/sysdeps/linux/common/pselect.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/pselect.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/pselect.c 2014-07-25 20:36:06.781334555 +0200
-@@ -13,82 +13,53 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <errno.h>
--#include <signal.h>
--#include <stddef.h> /* For NULL. */
--#include <sys/time.h>
--#include <sys/select.h>
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#endif
-+#include <features.h>
-
--libc_hidden_proto(sigprocmask)
--libc_hidden_proto(select)
-+#ifdef __USE_XOPEN2K
-
-+#include <sys/syscall.h>
-+#include <sys/select.h>
-+#include <sys/time.h>
-+#include <signal.h>
-+#include <cancel.h>
-
--/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
-- readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
-- (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
-- after waiting the interval specified therein. Additionally set the sigmask
-- SIGMASK for this call. Returns the number of ready descriptors, or -1 for
-- errors. */
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--static int
--__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
--#else
--int
--pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
--#endif
-- const struct timespec *timeout, const sigset_t *sigmask)
-+static int __NC(pselect)(int nfds, fd_set *readfds, fd_set *writefds,
-+ fd_set *exceptfds, const struct timespec *timeout,
-+ const sigset_t *sigmask)
- {
-- struct timeval tval;
-- int retval;
-- sigset_t savemask;
--
-- /* Change nanosecond number to microseconds. This might mean losing
-- precision and therefore the `pselect` should be available. But
-- for now it is hardly found. */
-- if (timeout != NULL)
-- TIMESPEC_TO_TIMEVAL (&tval, timeout);
--
-- /* The setting and restoring of the signal mask and the select call
-- should be an atomic operation. This can't be done without kernel
-- help. */
-- if (sigmask != NULL)
-- sigprocmask (SIG_SETMASK, sigmask, &savemask);
--
-- /* Note the pselect() is a cancellation point. But since we call
-- select() which itself is a cancellation point we do not have
-- to do anything here. */
-- retval = select (nfds, readfds, writefds, exceptfds,
-- timeout != NULL ? &tval : NULL);
-+ struct timeval tval;
-+ int retval;
-+ sigset_t savemask;
-+
-+ /* Change nanosecond number to microseconds. This might mean losing
-+ precision and therefore the `pselect` should be available. But
-+ for now it is hardly found. */
-+ if (timeout != NULL)
-+ TIMESPEC_TO_TIMEVAL (&tval, timeout);
-+
-+ /* The setting and restoring of the signal mask and the select call
-+ should be an atomic operation. This can't be done without kernel
-+ help. */
-+ if (sigmask != NULL)
-+ sigprocmask (SIG_SETMASK, sigmask, &savemask);
-+
-+ /* The comment below does not apply on uClibc, since we use __select_nocancel */
-+ /* Note the pselect() is a cancellation point. But since we call
-+ select() which itself is a cancellation point we do not have
-+ to do anything here. */
-+ retval = __NC(select)(nfds, readfds, writefds, exceptfds,
-+ timeout != NULL ? &tval : NULL);
-
-- if (sigmask != NULL)
-- sigprocmask (SIG_SETMASK, &savemask, NULL);
-+ if (sigmask != NULL)
-+ sigprocmask (SIG_SETMASK, &savemask, NULL);
-
-- return retval;
-+ return retval;
- }
-+CANCELLABLE_SYSCALL(int, pselect, (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
-+ const struct timespec *timeout, const sigset_t *sigmask),
-+ (nfds, readfds, writefds, exceptfds, timeout, sigmask))
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--int
--pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
-- const struct timespec *timeout, const sigset_t *sigmask)
--{
-- if (SINGLE_THREAD_P)
-- return __pselect (nfds, readfds, writefds, exceptfds,
-- timeout, sigmask);
--
-- int oldtype = LIBC_CANCEL_ASYNC ();
--
-- int result = __pselect (nfds, readfds, writefds, exceptfds,
-- timeout, sigmask);
--
-- LIBC_CANCEL_RESET (oldtype);
--
-- return result;
--}
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readahead.c uClibc-git/libc/sysdeps/linux/common/readahead.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/readahead.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/readahead.c 2014-07-25 20:36:06.781334555 +0200
-@@ -13,46 +13,33 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <errno.h>
--#include <fcntl.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <bits/wordsize.h>
--
--#ifdef __UCLIBC_HAS_LFS__
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <_lfs_64.h>
-+#include <sys/syscall.h>
-
--#ifdef __NR_readahead
-+#if defined __NR_readahead && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
-
--# define __NR___readahead __NR_readahead
-+# include <fcntl.h>
-+# include <bits/wordsize.h>
-
- # if __WORDSIZE == 64
-
--static __inline__ _syscall3(ssize_t, __readahead, int, fd,
-- off_t, offset, size_t, count)
--
--ssize_t readahead(int fd, off_t offset, size_t count)
--{
-- return __readahead(fd, offset, count);
--}
-+_syscall3(ssize_t, readahead, int, fd, off_t, offset, size_t, count)
-
- # else
-
--static __inline__ _syscall4(ssize_t, __readahead, int, fd,
-- off_t, high_offset, off_t, low_offset, size_t, count)
--
- ssize_t readahead(int fd, off64_t offset, size_t count)
- {
-- return __readahead(fd, (off_t) (offset >> 32), (off_t) (offset & 0xffffffff), count);
-+ return INLINE_SYSCALL(readahead,
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+ 5, fd, 0,
-+# else
-+ 4, fd,
-+# endif
-+ OFF64_HI_LO(offset), count);
- }
-
- # endif
-
- #endif
--
--#endif /* __UCLIBC_HAS_LFS__ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/read.c uClibc-git/libc/sysdeps/linux/common/read.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/read.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/read.c 2014-07-25 20:36:06.781334555 +0200
-@@ -9,11 +9,11 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+#include <cancel.h>
-
--_syscall3(ssize_t, read, int, fd, __ptr_t, buf, size_t, count)
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(read)
--#else
--libc_hidden_weak(read)
--strong_alias(read,__libc_read)
--#endif
-+#define __NR___read_nocancel __NR_read
-+_syscall3(ssize_t, __NC(read), int, fd, void *, buf, size_t, count)
-+
-+CANCELLABLE_SYSCALL(ssize_t, read, (int fd, void *buf, size_t count),
-+ (fd, buf, count))
-+lt_libc_hidden(read)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readlinkat.c uClibc-git/libc/sysdeps/linux/common/readlinkat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/readlinkat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/readlinkat.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_readlinkat
- _syscall4(ssize_t, readlinkat, int, fd, const char *, path, char *, buf, size_t, len)
-+libc_hidden_def(readlinkat)
- #else
- /* should add emulation with readlink() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readlink.c uClibc-git/libc/sysdeps/linux/common/readlink.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/readlink.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/readlink.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,5 +10,13 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
-+#if defined(__NR_readlinkat) && !defined(__NR_readlink)
-+# include <fcntl.h>
-+ssize_t readlink (const char *path, char *buf, size_t len)
-+{
-+ return readlinkat(AT_FDCWD, path, buf, len);
-+}
-+#else
- _syscall3(ssize_t, readlink, const char *, path, char *, buf, size_t, bufsiz)
-+#endif
- libc_hidden_def(readlink)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readv.c uClibc-git/libc/sysdeps/linux/common/readv.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/readv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/readv.c 2014-07-25 20:36:06.781334555 +0200
-@@ -10,41 +10,21 @@
-
- #include <sys/syscall.h>
- #include <sys/uio.h>
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
-+#include <cancel.h>
-
- /* We should deal with kernel which have a smaller UIO_FASTIOV as well
- as a very big count. */
--static ssize_t __readv (int fd, const struct iovec *vector, int count)
-+static ssize_t __NC(readv)(int fd, const struct iovec *vector, int count)
- {
-- ssize_t bytes_read;
--
-- bytes_read = INLINE_SYSCALL (readv, 3, fd, vector, count);
--
-- if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
-- return bytes_read;
--
-- /* glibc tries again, but we do not. */
-- //return __atomic_readv_replacement (fd, vector, count);
--
-- return -1;
--}
--
--ssize_t readv (int fd, const struct iovec *vector, int count)
--{
-- if (SINGLE_THREAD_P)
-- return __readv (fd, vector, count);
--
-- int oldtype = LIBC_CANCEL_ASYNC ();
-+ ssize_t bytes_read = INLINE_SYSCALL(readv, 3, fd, vector, count);
-
-- int result = __readv (fd, vector, count);
-+ if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
-+ return bytes_read;
-
-- LIBC_CANCEL_RESET (oldtype);
-+ /* glibc tries again, but we do not. */
-+ /* return __atomic_readv_replacement (fd, vector, count); */
-
-- return result;
-+ return -1;
- }
--#else
--_syscall3(ssize_t, readv, int, filedes, const struct iovec *, vector,
-- int, count)
--#endif
-+CANCELLABLE_SYSCALL(ssize_t, readv, (int fd, const struct iovec *vector, int count),
-+ (fd, vector, count))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/renameat.c uClibc-git/libc/sysdeps/linux/common/renameat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/renameat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/renameat.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_renameat
- _syscall4(int, renameat, int, oldfd, const char *, old, int, newfd, const char *, new)
-+libc_hidden_def(renameat)
- #else
- /* should add emulation with rename() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/rename.c uClibc-git/libc/sysdeps/linux/common/rename.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/rename.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/rename.c 2014-07-25 20:36:06.781334555 +0200
-@@ -8,17 +8,15 @@
- */
-
- #include <sys/syscall.h>
--#include <unistd.h>
--#include <string.h>
--#include <sys/param.h>
- #include <stdio.h>
-+#include <unistd.h>
-
--#define __NR___syscall_rename __NR_rename
--static __inline__ _syscall2(int, __syscall_rename, const char *, oldpath,
-- const char *, newpath)
--
--int rename(const char * oldpath, const char * newpath)
-+#if defined __NR_renameat && !defined __NR_rename
-+# include <fcntl.h>
-+int rename(const char *oldpath, const char *newpath)
- {
-- return __syscall_rename(oldpath, newpath);
-+ return renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath);
- }
--
-+#else
-+_syscall2(int, rename, const char *, oldpath, const char *, newpath)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/rmdir.c uClibc-git/libc/sysdeps/linux/common/rmdir.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/rmdir.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/rmdir.c 2014-07-25 20:36:06.781334555 +0200
-@@ -11,5 +11,13 @@
- #include <unistd.h>
-
-
-+#if defined __NR_unlinkat && !defined __NR_rmdir
-+# include <fcntl.h>
-+int rmdir(const char *pathname)
-+{
-+ return unlinkat(AT_FDCWD, pathname, AT_REMOVEDIR);
-+}
-+#else
- _syscall1(int, rmdir, const char *, pathname)
-+#endif
- libc_hidden_def(rmdir)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigtimedwait.c uClibc-git/libc/sysdeps/linux/common/__rt_sigtimedwait.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigtimedwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__rt_sigtimedwait.c 2014-07-25 20:36:06.757334429 +0200
-@@ -9,42 +9,49 @@
- */
-
- #include <sys/syscall.h>
--#include <signal.h>
--#include <string.h>
-
- #ifdef __NR_rt_sigtimedwait
--
-+# include <signal.h>
-+# include <cancel.h>
- # ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
- # include <pthreadP.h> /* SIGCANCEL */
-+# endif
-+# ifdef SIGCANCEL
-+# define __need_NULL
-+# include <stddef.h>
-+# include <string.h>
-+# endif
-
--static int do_sigtimedwait(const sigset_t *set, siginfo_t *info,
-- const struct timespec *timeout)
-+int __NC(sigtimedwait)(const sigset_t *set, siginfo_t *info,
-+ const struct timespec *timeout)
- {
--# ifdef SIGCANCEL
-+# ifdef SIGCANCEL
- sigset_t tmpset;
-
-- if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
--# ifdef SIGSETXID
-- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
--# endif
-+ if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
-+# ifdef SIGSETXID
-+ || unlikely (__sigismember (set, SIGSETXID))
-+# endif
- ))
- {
- /* Create a temporary mask without the bit for SIGCANCEL set. */
- // We are not copying more than we have to.
- memcpy (&tmpset, set, _NSIG / 8);
- __sigdelset (&tmpset, SIGCANCEL);
--# ifdef SIGSETXID
-+# ifdef SIGSETXID
- __sigdelset (&tmpset, SIGSETXID);
--# endif
-+# endif
- set = &tmpset;
- }
--# endif
-+# endif
-
-+/* if this is enabled, enable the disabled section in sigwait.c */
-+# if defined SI_TKILL && defined SI_USER
- /* XXX The size argument hopefully will have to be changed to the
- real size of the user-level sigset_t. */
-- int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info,
-- timeout, _NSIG / 8);
-+ /* on uClibc we use the kernel sigset_t size */
-+ int result = INLINE_SYSCALL(rt_sigtimedwait, 4, set, info,
-+ timeout, __SYSCALL_SIGSET_T_SIZE);
-
- /* The kernel generates a SI_TKILL code in si_code in case tkill is
- used. tkill is transparently used in raise(). Since having
-@@ -54,39 +61,14 @@
- info->si_code = SI_USER;
-
- return result;
--}
--
--/* Return any pending signal or wait for one for the given time. */
--int attribute_hidden __sigtimedwait(const sigset_t *set, siginfo_t *info,
-- const struct timespec *timeout)
--{
-- if(SINGLE_THREAD_P)
-- return do_sigtimedwait(set, info, timeout);
--
-- int oldtype = LIBC_CANCEL_ASYNC();
--
-- /* XXX The size argument hopefully will have to be changed to the
-- real size of the user-level sigset_t. */
-- int result = do_sigtimedwait(set, info, timeout);
--
-- LIBC_CANCEL_RESET(oldtype);
--
-- return result;
--}
- # else
--# define __need_NULL
--# include <stddef.h>
--# define __NR___rt_sigtimedwait __NR_rt_sigtimedwait
--static _syscall4(int, __rt_sigtimedwait, const sigset_t *, set,
-- siginfo_t *, info, const struct timespec *, timeout,
-- size_t, setsize);
--
--int attribute_hidden __sigtimedwait(const sigset_t * set, siginfo_t * info,
-- const struct timespec *timeout)
--{
-- return __rt_sigtimedwait(set, info, timeout, _NSIG / 8);
-+ /* on uClibc we use the kernel sigset_t size */
-+ return INLINE_SYSCALL(rt_sigtimedwait, 4, set, info,
-+ timeout, __SYSCALL_SIGSET_T_SIZE);
-+# endif
- }
--# endif /* !__UCLIBC_HAS_THREADS_NATIVE__ */
--weak_alias(__sigtimedwait,sigtimedwait)
--libc_hidden_weak(sigtimedwait)
-+CANCELLABLE_SYSCALL(int, sigtimedwait,
-+ (const sigset_t *set, siginfo_t *info, const struct timespec *timeout),
-+ (set, info, timeout))
-+lt_libc_hidden(sigtimedwait)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigwaitinfo.c uClibc-git/libc/sysdeps/linux/common/__rt_sigwaitinfo.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigwaitinfo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__rt_sigwaitinfo.c 2014-07-25 20:36:06.757334429 +0200
-@@ -9,81 +9,17 @@
- */
-
- #include <sys/syscall.h>
--#include <signal.h>
--#include <string.h>
-
- #ifdef __NR_rt_sigtimedwait
-+# define __need_NULL
-+# include <stddef.h>
-+# include <signal.h>
-+# include <cancel.h>
-
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
--
--static int do_sigwaitinfo(const sigset_t *set, siginfo_t *info)
--{
--# ifdef SIGCANCEL
-- sigset_t tmpset;
--
-- if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
--# ifdef SIGSETXID
-- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
--# endif
-- ))
-- {
-- /* Create a temporary mask without the bit for SIGCANCEL set. */
-- // We are not copying more than we have to.
-- memcpy (&tmpset, set, _NSIG / 8);
-- __sigdelset (&tmpset, SIGCANCEL);
--# ifdef SIGSETXID
-- __sigdelset (&tmpset, SIGSETXID);
--# endif
-- set = &tmpset;
-- }
--# endif
--
-- /* XXX The size argument hopefully will have to be changed to the
-- real size of the user-level sigset_t. */
-- int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info,
-- NULL, _NSIG / 8);
--
-- /* The kernel generates a SI_TKILL code in si_code in case tkill is
-- used. tkill is transparently used in raise(). Since having
-- SI_TKILL as a code is useful in general we fold the results
-- here. */
-- if (result != -1 && info != NULL && info->si_code == SI_TKILL)
-- info->si_code = SI_USER;
--
-- return result;
--}
--
--/* Return any pending signal or wait for one for the given time. */
--int __sigwaitinfo(const sigset_t *set, siginfo_t *info)
--{
-- if(SINGLE_THREAD_P)
-- return do_sigwaitinfo(set, info);
--
-- int oldtype = LIBC_CANCEL_ASYNC();
--
-- /* XXX The size argument hopefully will have to be changed to the
-- real size of the user-level sigset_t. */
-- int result = do_sigwaitinfo(set, info);
--
-- LIBC_CANCEL_RESET(oldtype);
--
-- return result;
--}
--# else
--# define __need_NULL
--# include <stddef.h>
--# define __NR___rt_sigwaitinfo __NR_rt_sigtimedwait
--static _syscall4(int, __rt_sigwaitinfo, const sigset_t *, set,
-- siginfo_t *, info, const struct timespec *, timeout,
-- size_t, setsize);
--
--int attribute_hidden __sigwaitinfo(const sigset_t * set, siginfo_t * info)
-+int sigwaitinfo(const sigset_t *set, siginfo_t *info)
- {
-- return __rt_sigwaitinfo(set, info, NULL, _NSIG / 8);
-+ return sigtimedwait(set, info, NULL);
- }
--# endif
--libc_hidden_proto(sigwaitinfo)
--weak_alias (__sigwaitinfo, sigwaitinfo)
--libc_hidden_weak(sigwaitinfo)
-+/* cancellation handled by sigtimedwait, noop on uClibc */
-+LIBC_CANCEL_HANDLED();
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_cpucount.c uClibc-git/libc/sysdeps/linux/common/sched_cpucount.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_cpucount.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sched_cpucount.c 2014-07-25 20:36:06.781334555 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <sched.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_getaffinity.c uClibc-git/libc/sysdeps/linux/common/sched_getaffinity.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sched_getaffinity.c 2014-07-25 20:36:06.785334575 +0200
-@@ -12,24 +12,19 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#ifdef __USE_GNU
--
--#include <sched.h>
--#include <sys/types.h>
- #include <sys/syscall.h>
-
--#include <string.h>
--#include <sys/param.h>
--
--#if defined __NR_sched_getaffinity
--#define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
--static __inline__ _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid,
-- size_t, cpusetsize, cpu_set_t *, cpuset)
-+#if defined __NR_sched_getaffinity && defined __USE_GNU
-+# include <sched.h>
-+# include <string.h>
-+# include <sys/types.h>
-+# include <sys/param.h>
-+# define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
-+static __always_inline _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid,
-+ size_t, cpusetsize, cpu_set_t *, cpuset)
-
- int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
- {
-@@ -45,4 +40,3 @@
- return res;
- }
- #endif
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_setaffinity.c uClibc-git/libc/sysdeps/linux/common/sched_setaffinity.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sched_setaffinity.c 2014-07-25 20:36:06.785334575 +0200
-@@ -12,26 +12,20 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#ifdef __USE_GNU
--
--#include <sched.h>
--#include <sys/types.h>
- #include <sys/syscall.h>
--#include <string.h>
--#include <unistd.h>
--#include <sys/param.h>
--#include <alloca.h>
--
--#if defined __NR_sched_setaffinity
--
--#define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
--static __inline__ _syscall3(int, __syscall_sched_setaffinity, __kernel_pid_t, pid,
-- size_t, cpusetsize, cpu_set_t *, cpuset)
-+
-+#if defined __NR_sched_setaffinity && defined __USE_GNU
-+# include <sched.h>
-+# include <sys/types.h>
-+# include <string.h>
-+# include <unistd.h>
-+# include <alloca.h>
-+# define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
-+static __always_inline _syscall3(int, __syscall_sched_setaffinity, __kernel_pid_t, pid,
-+ size_t, cpusetsize, const cpu_set_t *, cpuset)
-
- static size_t __kernel_cpumask_size;
-
-@@ -68,7 +62,6 @@
- return -1;
- }
-
-- return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
-+ return __syscall_sched_setaffinity(pid, cpusetsize, cpuset);
- }
- #endif
--#endif /* __USE_GNU */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/select.c uClibc-git/libc/sysdeps/linux/common/select.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/select.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/select.c 2014-07-25 20:36:06.785334575 +0200
-@@ -9,27 +9,24 @@
-
- #include <sys/syscall.h>
- #include <sys/select.h>
--#include <stdint.h>
-+#include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#else
--#define SINGLE_THREAD_P 1
-+#ifdef __NR__newselect
-+# undef __NR_select
-+# define __NR_select __NR__newselect
- #endif
-
--#define USEC_PER_SEC 1000000L
--
--extern __typeof(select) __libc_select;
--
--#if !defined(__NR__newselect) && !defined(__NR_select) && defined __USE_XOPEN2K
--# define __NR___libc_pselect6 __NR_pselect6
--static _syscall6(int, __libc_pselect6, int, n, fd_set *, readfds, fd_set *, writefds,
-- fd_set *, exceptfds, const struct timespec *, timeout,
-- const sigset_t *, sigmask)
-+#if !defined __NR_select && defined __NR_pselect6
-+# include <stdint.h>
-+# define USEC_PER_SEC 1000000L
-+#endif
-
--int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
-- struct timeval *timeout)
-+int __NC(select)(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
-+ struct timeval *timeout)
- {
-+#ifdef __NR_select
-+ return INLINE_SYSCALL(select, 5, n, readfds, writefds, exceptfds, timeout);
-+#elif defined __NR_pselect6
- struct timespec _ts, *ts = 0;
- if (timeout) {
- uint32_t usec;
-@@ -51,44 +48,14 @@
-
- ts = &_ts;
- }
--
-- if (SINGLE_THREAD_P)
-- return __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--
--}
--
--#else
--
--#ifdef __NR__newselect
--# define __NR___syscall_select __NR__newselect
--#else
--# define __NR___syscall_select __NR_select
--#endif
--
--static _syscall5(int, __syscall_select, int, n, fd_set *, readfds,
-- fd_set *, writefds, fd_set *, exceptfds, struct timeval *, timeout);
--
--int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
-- struct timeval *timeout)
--{
-- if (SINGLE_THREAD_P)
-- return __syscall_select(n, readfds, writefds, exceptfds, timeout);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = __syscall_select(n, readfds, writefds, exceptfds, timeout);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
-+ return INLINE_SYSCALL(pselect6, 6, n, readfds, writefds, exceptfds, ts, 0);
- #endif
- }
--
-+/* we should guard it, but we need it in other files, so let it fail
-+ * if we miss any of the syscalls */
-+#if 1 /*defined __NR_select || defined __NR_pselect6*/
-+CANCELLABLE_SYSCALL(int, select, (int n, fd_set *readfds, fd_set *writefds,
-+ fd_set *exceptfds, struct timeval *timeout),
-+ (n, readfds, writefds, exceptfds, timeout))
-+lt_libc_hidden(select)
- #endif
--
--weak_alias(__libc_select,select)
--libc_hidden_weak(select)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile64.c uClibc-git/libc/sysdeps/linux/common/sendfile64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sendfile64.c 2014-07-25 20:36:06.785334575 +0200
-@@ -10,15 +10,12 @@
- * just the macro we need to order things, __LONG_LONG_PAIR.
- */
-
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/sendfile.h>
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
- #include <bits/wordsize.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_sendfile64
-+#if defined __NR_sendfile64 && __WORDSIZE != 64
-+# include <sys/sendfile.h>
- _syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count)
-+libc_hidden_def(sendfile64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile.c uClibc-git/libc/sysdeps/linux/common/sendfile.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sendfile.c 2014-07-25 20:36:06.785334575 +0200
-@@ -8,16 +8,57 @@
- */
-
- #include <sys/syscall.h>
--#include <unistd.h>
--#include <sys/sendfile.h>
-
--#ifdef __NR_sendfile
-+# include <sys/sendfile.h>
-+# include <bits/wordsize.h>
-
-+#if defined __NR_sendfile
- _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset,
-- size_t, count)
-+ size_t, count)
-+# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_sendfile64 || __WORDSIZE == 64)
-+libc_hidden_def(sendfile64)
-+strong_alias_untyped(sendfile,sendfile64)
-+# endif
-
--#if ! defined __NR_sendfile64 && defined __UCLIBC_HAS_LFS__
--strong_alias(sendfile,sendfile64)
--#endif
-+#elif defined __NR_sendfile64 && !defined __NR_sendfile
-+# include <unistd.h>
-+# include <stddef.h>
-+
-+ssize_t sendfile(int out_fd, int in_fd, __off_t *offset, size_t count)
-+{
-+ __off64_t off64, *off;
-+ ssize_t res;
-+
-+ /*
-+ * Check if valid fds and valid pointers were passed
-+ * This does not prevent the user from passing
-+ * an arbitrary pointer causing a segfault or
-+ * other security issues
-+ */
-+
-+ if (in_fd < 0 || out_fd < 0) {
-+ __set_errno(EBADF);
-+ return -1;
-+ }
-+
-+ if (offset == NULL || (int)offset < 0) {
-+ __set_errno(EFAULT);
-+ return -1;
-+ }
-
--#endif /* __NR_sendfile */
-+ if (offset) {
-+ off = &off64;
-+ off64 = *offset;
-+ } else {
-+ off = NULL;
-+ }
-+
-+ res = INLINE_SYSCALL(sendfile64, 4, out_fd, in_fd, off, count);
-+
-+ if (res >= 0)
-+ *offset = off64;
-+
-+ return res;
-+}
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setgroups.c uClibc-git/libc/sysdeps/linux/common/setgroups.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/setgroups.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/setgroups.c 2014-07-25 20:36:06.785334575 +0200
-@@ -8,12 +8,9 @@
- */
-
- #include <sys/syscall.h>
--#include <stdlib.h>
--#include <unistd.h>
--#include <grp.h>
-
- #ifdef __USE_BSD
--
-+#include <grp.h>
-
- #if defined(__NR_setgroups32)
- # undef __NR_setgroups
-@@ -24,11 +21,14 @@
- _syscall2(int, setgroups, size_t, size, const gid_t *, list)
-
- #else
--
--
--#define __NR___syscall_setgroups __NR_setgroups
--static __inline__ _syscall2(int, __syscall_setgroups,
-- size_t, size, const __kernel_gid_t *, list)
-+# include <errno.h>
-+# include <stdlib.h>
-+# include <unistd.h>
-+# include <sys/types.h>
-+
-+# define __NR___syscall_setgroups __NR_setgroups
-+static __always_inline _syscall2(int, __syscall_setgroups,
-+ size_t, size, const __kernel_gid_t *, list)
-
- int setgroups(size_t size, const gid_t *groups)
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setpgrp.c uClibc-git/libc/sysdeps/linux/common/setpgrp.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/setpgrp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/setpgrp.c 2014-07-25 20:36:06.785334575 +0200
-@@ -4,10 +4,8 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <syscall.h>
- #include <unistd.h>
-
--
- int setpgrp(void)
- {
- return setpgid(0,0);
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit64.c uClibc-git/libc/sysdeps/linux/common/setrlimit64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/setrlimit64.c 2014-07-25 20:36:06.785334575 +0200
-@@ -12,20 +12,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <_lfs_64.h>
--
--#include <sys/types.h>
--#include <sys/resource.h>
- #include <bits/wordsize.h>
-
- /* the regular setrlimit will work just fine for 64bit users */
-+#if __WORDSIZE == 32
-
--#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
--
-+# include <sys/resource.h>
-
- /* Set the soft and hard limits for RESOURCE to *RLIMITS.
- Only the super-user can increase hard limits.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit.c uClibc-git/libc/sysdeps/linux/common/setrlimit.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/setrlimit.c 2014-07-25 20:36:06.785334575 +0200
-@@ -7,12 +7,9 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define setrlimit64 __hide_setrlimit64
- #include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/resource.h>
--#undef setrlimit64
--
-+#include <bits/wordsize.h>
-
- /* Only wrap setrlimit if the new usetrlimit is not present and setrlimit sucks */
-
-@@ -25,7 +22,7 @@
- const struct rlimit *, rlim)
- int setrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
- {
-- return (__syscall_usetrlimit(resource, rlimits));
-+ return __syscall_usetrlimit(resource, rlimits);
- }
-
- #elif !defined(__UCLIBC_HANDLE_OLDER_RLIMIT__)
-@@ -36,6 +33,11 @@
-
- #else
-
-+# define __need_NULL
-+# include <stddef.h>
-+# include <errno.h>
-+# include <sys/param.h>
-+
- /* we have to handle old style setrlimit() */
- # define __NR___syscall_setrlimit __NR_setrlimit
- static __always_inline
-@@ -52,18 +54,15 @@
-
- /* We might have to correct the limits values. Since the old values
- * were signed the new values might be too large. */
--# define RMIN(x, y) ((x) < (y) ? (x) : (y))
-- rlimits_small.rlim_cur = RMIN((unsigned long int) rlimits->rlim_cur,
-+ rlimits_small.rlim_cur = MIN((unsigned long int) rlimits->rlim_cur,
- RLIM_INFINITY >> 1);
-- rlimits_small.rlim_max = RMIN((unsigned long int) rlimits->rlim_max,
-+ rlimits_small.rlim_max = MIN((unsigned long int) rlimits->rlim_max,
- RLIM_INFINITY >> 1);
--#undef RMIN
-- return (__syscall_setrlimit(resource, &rlimits_small));
-+ return __syscall_setrlimit(resource, &rlimits_small);
- }
- #endif
--
- libc_hidden_def(setrlimit)
-
- #if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
--strong_alias(setrlimit, setrlimit64)
-+strong_alias_untyped(setrlimit, setrlimit64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setsid.c uClibc-git/libc/sysdeps/linux/common/setsid.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/setsid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/setsid.c 2014-07-25 20:36:06.785334575 +0200
-@@ -10,6 +10,5 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
--
- _syscall0(pid_t, setsid)
- libc_hidden_def(setsid)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/settimeofday.c uClibc-git/libc/sysdeps/linux/common/settimeofday.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/settimeofday.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/settimeofday.c 2014-07-25 20:36:06.785334575 +0200
-@@ -8,12 +8,36 @@
- */
-
- #include <sys/syscall.h>
--#include <sys/time.h>
-
- #ifdef __USE_BSD
-+# include <sys/time.h>
-+# ifdef __NR_settimeofday
-+_syscall2(int, settimeofday, const struct timeval *, tv,
-+ const struct timezone *, tz)
-+# elif defined __USE_SVID && defined __NR_stime
-+# define __need_NULL
-+# include <stddef.h>
-+# include <errno.h>
-+# include <time.h>
-+int settimeofday(const struct timeval *tv, const struct timezone *tz)
-+{
-+ time_t when;
-
-+ if (tv == NULL) {
-+ __set_errno(EINVAL);
-+ return -1;
-+ }
-
--_syscall2(int, settimeofday, const struct timeval *, tv,
-- const struct timezone *, tz)
-+ if (tz != NULL || tv->tv_usec % 1000000 != 0) {
-+ __set_errno(ENOSYS);
-+ return -1;
-+ }
-+
-+ when = tv->tv_sec + (tv->tv_usec / 1000000);
-+ return stime(&when);
-+}
-+# endif
-+# if defined __NR_settimeofday || (defined __USE_SVID && defined __NR_stime)
- libc_hidden_def(settimeofday)
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setuid.c uClibc-git/libc/sysdeps/linux/common/setuid.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/setuid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/setuid.c 2014-07-25 20:36:06.785334575 +0200
-@@ -22,7 +22,7 @@
- #else
-
- # define __NR___syscall_setuid __NR_setuid
--static __inline__ _syscall1(int, __syscall_setuid, __kernel_uid_t, uid)
-+static __always_inline _syscall1(int, __syscall_setuid, __kernel_uid_t, uid)
-
- int setuid(uid_t uid)
- {
-@@ -30,6 +30,6 @@
- __set_errno(EINVAL);
- return -1;
- }
-- return (__syscall_setuid(uid));
-+ return __syscall_setuid(uid);
- }
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/signalfd.c uClibc-git/libc/sysdeps/linux/common/signalfd.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/signalfd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/signalfd.c 2014-07-25 20:36:06.785334575 +0200
-@@ -25,13 +25,13 @@
- int signalfd (int fd, const sigset_t *mask, int flags)
- {
- #if defined __NR___syscall_signalfd4
-- return __syscall_signalfd4(fd, mask, _NSIG / 8, flags);
-+ return __syscall_signalfd4(fd, mask, __SYSCALL_SIGSET_T_SIZE, flags);
- #elif defined __NR___syscall_signalfd
- if (flags != 0) {
- __set_errno(EINVAL);
- return -1;
- }
-- return __syscall_signalfd(fd, mask, _NSIG / 8);
-+ return __syscall_signalfd(fd, mask, __SYSCALL_SIGSET_T_SIZE);
- #endif
- }
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigpending.c uClibc-git/libc/sysdeps/linux/common/sigpending.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigpending.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sigpending.c 2014-07-25 20:36:06.785334575 +0200
-@@ -19,7 +19,7 @@
-
- int sigpending(sigset_t * set)
- {
-- return __rt_sigpending(set, _NSIG / 8);
-+ return __rt_sigpending(set, __SYSCALL_SIGSET_T_SIZE);
- }
- #else
- _syscall1(int, sigpending, sigset_t *, set)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigprocmask.c uClibc-git/libc/sysdeps/linux/common/sigprocmask.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigprocmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sigprocmask.c 2014-07-25 20:36:06.785334575 +0200
-@@ -35,9 +35,9 @@
- * The only thing we have to make sure here is that SIGCANCEL and
- * SIGSETXID are not blocked.
- */
-- if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
-+ if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
- # ifdef SIGSETXID
-- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
-+ || unlikely (__sigismember (set, SIGSETXID))
- # endif
- ))
- {
-@@ -50,7 +50,7 @@
- }
- #endif
-
-- return __rt_sigprocmask(how, set, oldset, _NSIG / 8);
-+ return __rt_sigprocmask(how, set, oldset, __SYSCALL_SIGSET_T_SIZE);
- }
-
-
-@@ -70,9 +70,9 @@
- * The only thing we have to make sure here is that SIGCANCEL and
- * SIGSETXID are not blocked.
- */
-- if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
-+ if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
- # ifdef SIGSETXID
-- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
-+ || unlikely (__sigismember (set, SIGSETXID))
- # endif
- ))
- {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigqueue.c uClibc-git/libc/sysdeps/linux/common/sigqueue.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigqueue.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sigqueue.c 2014-07-25 20:36:06.785334575 +0200
-@@ -12,41 +12,35 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <errno.h>
--#include <signal.h>
--#include <unistd.h>
--#include <string.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/syscall.h>
--#if defined __USE_POSIX199309
-
-+#if defined __NR_rt_sigqueueinfo && defined __USE_POSIX199309
-+# include <signal.h>
-+# include <unistd.h>
-+# include <string.h>
-
--#ifdef __NR_rt_sigqueueinfo
--
--# define __NR___libc_rt_sigqueueinfo __NR_rt_sigqueueinfo
--static __inline__ _syscall3(int, __libc_rt_sigqueueinfo, pid_t, pid, int, sig, void*, value)
-+# define __NR___syscall_rt_sigqueueinfo __NR_rt_sigqueueinfo
-+static __always_inline _syscall3(int, __syscall_rt_sigqueueinfo, pid_t, pid, int, sig, void*, value)
-
- /* Return any pending signal or wait for one for the given time. */
- int sigqueue (pid_t pid, int sig, const union sigval val)
- {
-- siginfo_t info;
-+ siginfo_t info;
-
-- /* First, clear the siginfo_t structure, so that we don't pass our
-- stack content to other tasks. */
-- memset (&info, 0, sizeof (siginfo_t));
-- /* We must pass the information about the data in a siginfo_t value. */
-- info.si_signo = sig;
-- info.si_code = SI_QUEUE;
-- info.si_pid = getpid ();
-- info.si_uid = getuid ();
-- info.si_value = val;
-+ /* First, clear the siginfo_t structure, so that we don't pass our
-+ stack content to other tasks. */
-+ memset(&info, 0, sizeof(info));
-+ /* We must pass the information about the data in a siginfo_t value. */
-+ info.si_signo = sig;
-+ info.si_code = SI_QUEUE;
-+ info.si_pid = getpid ();
-+ info.si_uid = getuid ();
-+ info.si_value = val;
-
-- return __libc_rt_sigqueueinfo(pid, sig, &info);
-+ return __syscall_rt_sigqueueinfo(pid, sig, &info);
- }
-
- #endif
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigsuspend.c uClibc-git/libc/sysdeps/linux/common/sigsuspend.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sigsuspend.c 2014-07-25 20:36:06.785334575 +0200
-@@ -9,51 +9,18 @@
-
- #include <sys/syscall.h>
-
--#if defined __USE_POSIX
-+#ifdef __USE_POSIX
- #include <signal.h>
--#undef sigsuspend
-+#include <cancel.h>
-
--libc_hidden_proto(sigsuspend)
--
--#ifdef __NR_rt_sigsuspend
--# define __NR___rt_sigsuspend __NR_rt_sigsuspend
--
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <errno.h>
--# include <sysdep-cancel.h>
--
--/* Change the set of blocked signals to SET,
-- wait until a signal arrives, and restore the set of blocked signals. */
--int sigsuspend (const sigset_t *set)
-+int __NC(sigsuspend)(const sigset_t *set)
- {
-- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
--
-- int oldtype = LIBC_CANCEL_ASYNC ();
--
-- int result = INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
--
-- LIBC_CANCEL_RESET (oldtype);
--
-- return result;
--}
--# else
--static inline _syscall2(int, __rt_sigsuspend, const sigset_t *, mask, size_t, size)
--
--int sigsuspend(const sigset_t * mask)
--{
-- return __rt_sigsuspend(mask, _NSIG / 8);
--}
--# endif
-+#ifdef __NR_rt_sigsuspend
-+ return INLINE_SYSCALL(rt_sigsuspend, 2, set, __SYSCALL_SIGSET_T_SIZE);
- #else
--# define __NR___syscall_sigsuspend __NR_sigsuspend
--static __inline__ _syscall3(int, __syscall_sigsuspend, int, a, unsigned long int, b,
-- unsigned long int, c)
--
--int sigsuspend(const sigset_t * set)
--{
-- return __syscall_sigsuspend(0, 0, set->__val[0]);
--}
-+ return INLINE_SYSCALL(sigsuspend, 3, 0, 0, set->__val[0]);
- #endif
--libc_hidden_def(sigsuspend)
-+}
-+CANCELLABLE_SYSCALL(int, sigsuspend, (const sigset_t *set), (set))
-+lt_libc_hidden(sigsuspend)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__socketcall.c uClibc-git/libc/sysdeps/linux/common/__socketcall.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__socketcall.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__socketcall.c 2014-07-25 20:36:06.757334429 +0200
-@@ -8,8 +8,18 @@
- */
-
- #include <sys/syscall.h>
-+
-+/* At the time of this writing,
-+ * several arches provide the individual calls and do _not_ go through
-+ * this demuxer.
-+ *
-+ * Verify all arches supported by your kernel before you remove the
-+ * guard below!
-+ */
- #ifdef __NR_socketcall
-+#include <sys/socket.h>
-+
- #define __NR___socketcall __NR_socketcall
--int __socketcall(int __call, unsigned long *__args) attribute_hidden;
- _syscall2(int, __socketcall, int, call, unsigned long *, args)
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/splice.c uClibc-git/libc/sysdeps/linux/common/splice.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/splice.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/splice.c 2014-07-25 20:36:06.785334575 +0200
-@@ -8,9 +8,10 @@
- */
-
- #include <sys/syscall.h>
--#include <fcntl.h>
-
--#ifdef __NR_splice
--_syscall6(ssize_t, splice, int, __fdin, __off64_t *, __offin, int, __fdout,
-- __off64_t *, __offout, size_t, __len, unsigned int, __flags)
-+#if defined __NR_splice && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
-+# include <fcntl.h>
-+
-+_syscall6(ssize_t, splice, int, __fdin, off64_t *, __offin, int, __fdout,
-+ off64_t *, __offout, size_t, __len, unsigned int, __flags)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp.c uClibc-git/libc/sysdeps/linux/common/ssp.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ssp.c 2014-07-25 20:36:06.785334575 +0200
-@@ -20,103 +20,113 @@
- #error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
- #endif
-
-+#include <string.h>
-+#include <unistd.h>
-+#include <signal.h>
-+#ifdef __UCLIBC_HAS_SYSLOG__
-+#include <sys/syslog.h>
-+#endif
-+
- #ifdef __PROPOLICE_BLOCK_SEGV__
- # define SSP_SIGTYPE SIGSEGV
- #else
- # define SSP_SIGTYPE SIGABRT
- #endif
-
--#include <string.h>
--#include <unistd.h>
--#include <signal.h>
--#if defined __UCLIBC_HAS_SYSLOG__
--#include <sys/syslog.h>
-+static void do_write(const char *msg)
-+{
-+ /* could use inlined syscall here to be sure ... */
-+ return (void) write(STDERR_FILENO, msg, strlen(msg));
-+}
-
-+static void __cold do_msg(const char *msg1, const char *msg2, const char *msg3)
-+{
-+ do_write(msg1);
-+ do_write(msg2);
-+ do_write(msg3);
-+ do_write("\n");
-+#ifdef __UCLIBC_HAS_SYSLOG__
-+ syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
- #endif
-+}
-
--
--static void block_signals(void)
-+static void __cold attribute_noreturn
-+#ifdef __UCLIBC_HAS_SSP_COMPAT__
-+ssp_handler(char func[])
-+#else
-+ssp_handler(void)
-+#endif
- {
-+ pid_t pid;
-+ static const char msg_ssd[] = "*** stack smashing detected ***: ";
-+ static const char msg_terminated[] = " terminated";
-+#ifdef __UCLIBC_HAS_SSP_COMPAT__
-+ static const char msg_ssa[] = ": stack smashing attack in function ";
-+#endif
-+
-+#ifdef __DODEBUG__
- struct sigaction sa;
- sigset_t mask;
-
- __sigfillset(&mask);
- __sigdelset(&mask, SSP_SIGTYPE); /* Block all signal handlers */
- sigprocmask(SIG_BLOCK, &mask, NULL); /* except SSP_SIGTYPE */
-+#endif
-+
-+#ifdef __UCLIBC_HAS_SSP_COMPAT__
-+ if (func != NULL)
-+ do_msg(__uclibc_progname, msg_ssa, func);
-+ else
-+#endif
-+ do_msg(msg_ssd, __uclibc_progname, msg_terminated);
-
-+ pid = getpid();
-+#ifdef __DODEBUG__
- /* Make the default handler associated with the signal handler */
- memset(&sa, 0, sizeof(sa));
- __sigfillset(&sa.sa_mask); /* Block all signals */
- if (SIG_DFL) /* if it's constant zero, it's already done */
- sa.sa_handler = SIG_DFL;
-- sigaction(SSP_SIGTYPE, &sa, NULL);
--}
--
--static void __cold ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3)
--{
-- write(fd, msg1, strlen(msg1));
-- write(fd, msg2, strlen(msg2));
-- write(fd, msg3, strlen(msg3));
-- write(fd, "()\n", 3);
--#if defined __UCLIBC_HAS_SYSLOG__
-- openlog("ssp", LOG_CONS | LOG_PID, LOG_USER);
-- syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
-- closelog();
-+ if (sigaction(SSP_SIGTYPE, &sa, NULL) == 0)
-+ (void)kill(pid, SSP_SIGTYPE);
- #endif
--}
--
--static attribute_noreturn void terminate(void)
--{
-- (void) kill(getpid(), SSP_SIGTYPE);
-- _exit(127);
-+ (void)kill(pid, SIGKILL);
-+ /* The loop is added only to keep gcc happy. */
-+ while(1)
-+ _exit(127);
- }
-
- #ifdef __UCLIBC_HAS_SSP_COMPAT__
--void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))) attribute_noreturn __cold;
--void __stack_smash_handler(char func[], int damaged)
-+void __stack_smash_handler(char func[], int damaged) attribute_noreturn __cold;
-+void __stack_smash_handler(char func[], int damaged attribute_unused)
- {
-- static const char message[] = ": stack smashing attack in function ";
--
-- block_signals();
--
-- ssp_write(STDERR_FILENO, __uclibc_progname, message, func);
--
-- /* The loop is added only to keep gcc happy. */
-- while(1)
-- terminate();
-+ ssp_handler(func);
- }
--#endif
-
--#ifdef __UCLIBC_HAS_SSP__
--void __stack_chk_fail(void) attribute_noreturn __cold;
- void __stack_chk_fail(void)
- {
-- static const char msg1[] = "stack smashing detected: ";
-- static const char msg3[] = " terminated";
--
-- block_signals();
--
-- ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);
--
-- /* The loop is added only to keep gcc happy. */
-- while(1)
-- terminate();
-+ ssp_handler(NULL);
- }
-+#else
-+strong_alias(ssp_handler,__stack_chk_fail)
- #endif
-
- #ifdef __UCLIBC_HAS_FORTIFY__
-+/* should be redone when activated to use common code above.
-+ * for now, it works without debugging support */
- void __chk_fail(void)
- {
-- static const char msg1[] = "buffer overflow detected: ";
-- static const char msg3[] = " terminated";
--
-- block_signals();
-+ static const char msg_fail[] = "*** buffer overflow detected ***: ";
-+ static const char msg_terminated[] = " terminated";
-+ pid_t pid;
-
-- ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);
-+ do_msg(msg_fail, __uclibc_progname, msg_terminated);
-
-+ pid = getpid();
-+ (void)kill(pid, SIGKILL);
- /* The loop is added only to keep gcc happy. */
- while(1)
-- terminate();
-+ _exit(127);
- }
- libc_hidden_def(__chk_fail)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp-local.c uClibc-git/libc/sysdeps/linux/common/ssp-local.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp-local.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ssp-local.c 2014-07-25 20:36:06.785334575 +0200
-@@ -12,18 +12,19 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Peter S. Mazinger ps.m[@]gmx.net
- * copied stack_chk_fail_local.c from glibc and adapted for uClibc
- */
-
--#include <features.h>
-+#if defined __SSP__ || defined __SSP_ALL__
-+# error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
-+#endif
-
--extern void __stack_chk_fail (void) attribute_noreturn;
-+#include <features.h>
-
- /* On some architectures, this helps needless PIC pointer setup
- that would be needed just for the __stack_chk_fail call. */
-@@ -31,5 +32,5 @@
- void __stack_chk_fail_local (void) attribute_noreturn attribute_hidden;
- void __stack_chk_fail_local (void)
- {
-- __stack_chk_fail ();
-+ __stack_chk_fail ();
- }
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stat64.c uClibc-git/libc/sysdeps/linux/common/stat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/stat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/stat64.c 2014-07-25 20:36:06.785334575 +0200
-@@ -7,17 +7,28 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
- #include <sys/stat.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_stat64
-+#if defined __UCLIBC_HAS_LFS__
-
--# define __NR___syscall_stat64 __NR_stat64
-+# if defined __NR_fstatat64 && !defined __NR_stat64
-+# include <fcntl.h>
- # include <unistd.h>
--# include "xstatconv.h"
-
--static __inline__ _syscall2(int, __syscall_stat64,
-- const char *, file_name, struct kernel_stat64 *, buf)
-+int stat64(const char *file_name, struct stat64 *buf)
-+{
-+ return fstatat64(AT_FDCWD, file_name, buf, 0);
-+}
-+libc_hidden_def(stat64)
-+
-+/* For systems which have both, prefer the old one */
-+# elif defined __NR_stat64
-+# define __NR___syscall_stat64 __NR_stat64
-+# include "xstatconv.h"
-+static __always_inline _syscall2(int, __syscall_stat64,
-+ const char *, file_name, struct kernel_stat64 *, buf)
-
- int stat64(const char *file_name, struct stat64 *buf)
- {
-@@ -31,4 +42,6 @@
- return result;
- }
- libc_hidden_def(stat64)
--#endif
-+# endif
-+
-+#endif /* __UCLIBC_HAS_LFS__ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stat.c uClibc-git/libc/sysdeps/linux/common/stat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/stat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/stat.c 2014-07-25 20:36:06.785334575 +0200
-@@ -10,14 +10,24 @@
- #include <sys/syscall.h>
- #include <unistd.h>
- #include <sys/stat.h>
--#include "xstatconv.h"
-
- #undef stat
-
-+#if defined __NR_fstatat64 && !defined __NR_stat
-+# include <fcntl.h>
-+
-+int stat(const char *file_name, struct stat *buf)
-+{
-+ return fstatat(AT_FDCWD, file_name, buf, 0);
-+}
-+
-+#else
-+# include "xstatconv.h"
-+
- int stat(const char *file_name, struct stat *buf)
- {
- int result;
--#ifdef __NR_stat64
-+# ifdef __NR_stat64
- /* normal stat call has limited values for various stat elements
- * e.g. uid device major/minor etc.
- * so we use 64 variant if available
-@@ -28,19 +38,21 @@
- if (result == 0) {
- __xstat32_conv(&kbuf, buf);
- }
--#else
-+# else
- struct kernel_stat kbuf;
-
- result = INLINE_SYSCALL(stat, 2, file_name, &kbuf);
- if (result == 0) {
- __xstat_conv(&kbuf, buf);
- }
--#endif
-+# endif /* __NR_stat64 */
- return result;
- }
-+#endif /* __NR_fstat64 */
- libc_hidden_def(stat)
-
--#if ! defined __NR_stat64 && defined __UCLIBC_HAS_LFS__
-+#if ! defined __NR_stat64 && ! defined __NR_fstatat64 && \
-+ defined __UCLIBC_HAS_LFS__
- strong_alias_untyped(stat,stat64)
- libc_hidden_def(stat64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/statfs.c uClibc-git/libc/sysdeps/linux/common/statfs.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/statfs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/statfs.c 2014-07-25 20:36:06.785334575 +0200
-@@ -13,10 +13,39 @@
- #include <sys/vfs.h>
-
- extern __typeof(statfs) __libc_statfs attribute_hidden;
--#define __NR___libc_statfs __NR_statfs
-+
-+#if defined __NR_statfs64 && !defined __NR_statfs
-+
-+int __libc_statfs(const char *path, struct statfs *buf)
-+{
-+ int err = INLINE_SYSCALL(statfs64, 3, path, sizeof(*buf), buf);
-+
-+ if (err == 0) {
-+ /* Did we overflow? */
-+ if (buf->__pad1 || buf->__pad2 || buf->__pad3 ||
-+ buf->__pad4 || buf->__pad5) {
-+ __set_errno(EOVERFLOW);
-+ return -1;
-+ }
-+ }
-+
-+ return err;
-+}
-+# if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
-+/* statfs is used by NPTL, so it must exported in case */
-+weak_alias(__libc_statfs, statfs)
-+# endif
-+
-+/* For systems which have both, prefer the old one */
-+#else
-+
-+# define __NR___libc_statfs __NR_statfs
- _syscall2(int, __libc_statfs, const char *, path, struct statfs *, buf)
-
--#if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
-+# if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
- /* statfs is used by NPTL, so it must exported in case */
--weak_alias(__libc_statfs,statfs)
-+weak_alias(__libc_statfs, statfs)
-+# endif
-+
- #endif
-+libc_hidden_def(statfs)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stime.c uClibc-git/libc/sysdeps/linux/common/stime.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/stime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/stime.c 2014-07-25 20:36:06.785334575 +0200
-@@ -8,15 +8,17 @@
- */
-
- #include <sys/syscall.h>
--#include <time.h>
--#include <sys/time.h>
-
- #ifdef __USE_SVID
--#ifdef __NR_stime
-+# include <time.h>
-+# ifdef __NR_stime
- _syscall1(int, stime, const time_t *, t)
--#else
--
--int stime(const time_t * when)
-+# elif defined __USE_BSD && defined __NR_settimeofday
-+# define __need_NULL
-+# include <stddef.h>
-+# include <errno.h>
-+# include <sys/time.h>
-+int stime(const time_t *when)
- {
- struct timeval tv;
-
-@@ -28,5 +30,8 @@
- tv.tv_usec = 0;
- return settimeofday(&tv, (struct timezone *) 0);
- }
--#endif
-+# endif
-+# if defined __NR_stime || (defined __USE_BSD && defined __NR_settimeofday)
-+libc_hidden_def(stime)
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stubs.c uClibc-git/libc/sysdeps/linux/common/stubs.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/stubs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/stubs.c 2014-07-25 20:36:06.785334575 +0200
-@@ -6,31 +6,52 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+/* Please keep the list sorted alphabetically, in ascending order
-+ * of the stub name! */
-+
- #include <errno.h>
- #include <bits/wordsize.h>
- #include <sys/syscall.h>
-
- #ifdef __UCLIBC_HAS_STUBS__
-
--static int enosys_stub(void) __attribute_used__;
--static int enosys_stub(void)
-+__attribute_used__ static int enosys_stub(void)
- {
- __set_errno(ENOSYS);
- return -1;
- }
-
-+__attribute_used__ static int ret_enosys_stub(void)
-+{
-+ return ENOSYS;
-+}
-+
- #define make_stub(stub) \
- link_warning(stub, #stub ": this function is not implemented") \
- strong_alias(enosys_stub, stub)
-
-+#define make_ret_stub(stub) \
-+ link_warning(stub, #stub ": this function is not implemented") \
-+ strong_alias(ret_enosys_stub, stub)
-+
- #ifndef __ARCH_USE_MMU__
- # undef __NR_fork
- #endif
-
--#ifndef __UCLIBC_HAS_LFS__
--# undef __NR_fadvise64
--# undef __NR_fadvise64_64
--# undef __NR_sync_file_range
-+#ifdef __arm__
-+# define __NR_fadvise64_64 __NR_arm_fadvise64_64
-+# define __NR_fadvise64 __NR_arm_fadvise64_64
-+/* ARM always provides funcs w/out syscalls; disable the stubs */
-+# define __NR_ioperm 0
-+# define __NR_iopl 0
-+#endif
-+
-+#ifdef __mips__
-+# define __NR_fadvise64_64 __NR_fadvise64
-+#endif
-+
-+#ifdef __xtensa__
-+# define __NR_fadvise64 __NR_fadvise64_64
- #endif
-
- #if !defined __NR_accept && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
-@@ -45,14 +66,6 @@
- make_stub(arch_prctl)
- #endif
-
--#if !defined __NR_capget && defined __UCLIBC_LINUX_SPECIFIC__
--make_stub(capget)
--#endif
--
--#if !defined __NR_capset && defined __UCLIBC_LINUX_SPECIFIC__
--make_stub(capset)
--#endif
--
- #if !defined __NR_bdflush && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(bdflush)
- #endif
-@@ -61,11 +74,11 @@
- make_stub(bind)
- #endif
-
--#ifndef __NR_capget
-+#if !defined __NR_capget && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(capget)
- #endif
-
--#ifndef __NR_capset
-+#if !defined __NR_capset && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(capset)
- #endif
-
-@@ -81,38 +94,44 @@
- make_stub(delete_module)
- #endif
-
--#ifndef __NR_epoll_create
-+#if !defined __NR_epoll_create && defined __UCLIBC_HAS_EPOLL__ \
-+ && !defined __NR_epoll_create1
- make_stub(epoll_create)
- #endif
-
--#ifndef __NR_epoll_ctl
-+#if !defined __NR_epoll_ctl && defined __UCLIBC_HAS_EPOLL__
- make_stub(epoll_ctl)
- #endif
-
--#ifndef __NR_epoll_wait
-+#if !defined __NR_epoll_pwait && defined __UCLIBC_HAS_EPOLL__
-+make_stub(epoll_pwait)
-+#endif
-+
-+#if !defined __NR_epoll_wait && defined __UCLIBC_HAS_EPOLL__ \
-+ && !defined __NR_epoll_pwait
- make_stub(epoll_wait)
- #endif
-
--#if !defined __NR_eventfd && defined __UCLIBC_LINUX_SPECIFIC__
-+#if !defined __NR_eventfd && !defined __NR_eventfd2 && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(eventfd)
- #endif
-
--#ifndef __NR_fdatasync
-+#if !defined __NR_fdatasync && !defined __NR_osf_fdatasync
- make_stub(fdatasync)
- #endif
-
-+#ifndef __NR_fgetxattr
-+make_stub(fgetxattr)
-+#endif
-+
- #ifndef __NR_flistxattr
- make_stub(flistxattr)
- #endif
-
--#ifndef __NR_fork
-+#if !defined __NR_fork && !defined __NR_clone
- make_stub(fork)
- #endif
-
--#ifndef __NR_fgetxattr
--make_stub(fgetxattr)
--#endif
--
- #ifndef __NR_fremovexattr
- make_stub(fremovexattr)
- #endif
-@@ -121,7 +140,8 @@
- make_stub(fsetxattr)
- #endif
-
--#if !defined __NR_fstatfs && defined __UCLIBC_LINUX_SPECIFIC__
-+#if !defined __NR_fstatfs && !defined __NR_fstatfs64 \
-+ && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(fstatfs)
- #endif
-
-@@ -129,10 +149,6 @@
- make_stub(get_kernel_syms)
- #endif
-
--#if !defined __NR_getcpu && defined __UCLIBC_LINUX_SPECIFIC__ && ((defined __x86_64__ && !defined __UCLIBC_HAS_TLS__) || !defined __x86_64__)
--make_stub(sched_getcpu)
--#endif
--
- #if !defined __NR_getpeername && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
- make_stub(getpeername)
- #endif
-@@ -157,7 +173,12 @@
- make_stub(init_module)
- #endif
-
--#if !defined __NR_inotify_init && defined __UCLIBC_LINUX_SPECIFIC__
-+#if !defined __NR_inotify_add_watch && defined __UCLIBC_LINUX_SPECIFIC__
-+make_stub(inotify_add_watch)
-+#endif
-+
-+#if !defined __NR_inotify_init && defined __UCLIBC_LINUX_SPECIFIC__ \
-+ && !defined __NR_inotify_init1
- make_stub(inotify_init)
- #endif
-
-@@ -165,19 +186,15 @@
- make_stub(inotify_init1)
- #endif
-
--#if !defined __NR_inotify_add_watch && defined __UCLIBC_LINUX_SPECIFIC__
--make_stub(inotify_add_watch)
--#endif
--
- #if !defined __NR_inotify_rm_watch && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(inotify_rm_watch)
- #endif
-
--#if !defined __NR_ioperm && defined __UCLIBC_LINUX_SPECIFIC__ && !defined __arm__
-+#if !defined __NR_ioperm && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(ioperm)
- #endif
-
--#if !defined __NR_iopl && defined __UCLIBC_LINUX_SPECIFIC__ && !defined __arm__
-+#if !defined __NR_iopl && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(iopl)
- #endif
-
-@@ -213,6 +230,13 @@
- make_stub(modify_ldt)
- #endif
-
-+#ifndef __NR_openat
-+make_stub(openat)
-+# ifdef __UCLIBC_HAS_LFS__
-+make_stub(openat64)
-+# endif
-+#endif
-+
- #if !defined __NR_personality && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(personality)
- #endif
-@@ -225,6 +249,18 @@
- make_stub(pivot_root)
- #endif
-
-+#if !defined __NR_fadvise64 && defined __UCLIBC_HAS_LFS__
-+make_ret_stub(posix_fadvise)
-+#endif
-+
-+#if !defined __NR_fadvise64_64 && defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
-+make_ret_stub(posix_fadvise64)
-+#endif
-+
-+#ifndef __NR_madvise
-+make_ret_stub(posix_madvise)
-+#endif
-+
- #if !defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(ppoll)
- #endif
-@@ -233,6 +269,10 @@
- make_stub(prctl)
- #endif
-
-+#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
-+make_stub(query_module)
-+#endif
-+
- #if !defined __NR_readahead && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(readahead)
- #endif
-@@ -241,10 +281,6 @@
- make_stub(reboot)
- #endif
-
--#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
--make_stub(query_module)
--#endif
--
- #if !defined __NR_recv && !defined __NR_socketcall && !defined __NR_recvfrom && defined __UCLIBC_HAS_SOCKET__
- make_stub(recv)
- #endif
-@@ -265,10 +301,18 @@
- make_stub(removexattr)
- #endif
-
-+#ifndef __NR_renameat
-+make_stub(renameat)
-+#endif
-+
- #if !defined __NR_sched_getaffinity && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(sched_getaffinity)
- #endif
-
-+#if !defined __NR_getcpu && defined __UCLIBC_LINUX_SPECIFIC__ && ((defined __x86_64__ && !defined __UCLIBC_HAS_TLS__) || !defined __x86_64__)
-+make_stub(sched_getcpu)
-+#endif
-+
- #if !defined __NR_sched_setaffinity && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(sched_setaffinity)
- #endif
-@@ -277,7 +321,8 @@
- make_stub(send)
- #endif
-
--#if !defined __NR_sendfile && defined __UCLIBC_LINUX_SPECIFIC__
-+#if !defined __NR_sendfile && !defined __NR_sendfile64 \
-+ && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(sendfile)
- #endif
-
-@@ -325,6 +370,15 @@
- make_stub(signalfd)
- #endif
-
-+#ifndef __NR_rt_sigtimedwait
-+make_stub(sigtimedwait)
-+make_stub(sigwaitinfo)
-+#endif
-+
-+#ifndef __NR_rt_sigqueueinfo
-+make_stub(sigqueue)
-+#endif
-+
- #if !defined __NR_socket && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
- make_stub(socket)
- #endif
-@@ -337,9 +391,9 @@
- make_stub(socketpair)
- #endif
-
--#ifndef __NR_rt_sigtimedwait
--make_stub(sigtimedwait)
--make_stub(sigwaitinfo)
-+#if !defined __NR_stime && !defined __NR_settimeofday
-+make_stub(stime)
-+make_stub(settimeofday)
- #endif
-
- #if !defined __NR_splice && defined __UCLIBC_LINUX_SPECIFIC__
-@@ -354,6 +408,10 @@
- make_stub(swapon)
- #endif
-
-+#if !defined __NR_symlink && !defined __NR_symlinkat
-+make_stub(symlink)
-+#endif
-+
- #if !defined __NR_sync_file_range && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(sync_file_range)
- #endif
-@@ -382,6 +440,21 @@
- make_stub(timerfd_gettime)
- #endif
-
-+#ifndef __NR_utimensat
-+make_stub(futimens)
-+make_stub(utimensat)
-+# ifndef __NR_lutimes
-+make_stub(lutimes)
-+# endif
-+#endif
-+
-+#ifndef __NR_utimensat
-+#if !defined __NR_utime && !defined __NR_utimes
-+/*make_stub(utime) obsoleted */
-+make_stub(utimes)
-+#endif
-+#endif
-+
- #if !defined __NR_umount && !defined __NR_umount2 && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(umount)
- #endif
-@@ -394,19 +467,15 @@
- make_stub(unshare)
- #endif
-
--#ifndef __NR_utimensat
--make_stub(futimens)
--make_stub(utimensat)
--# ifndef __NR_lutimes
--make_stub(lutimes)
--# endif
-+#if defined __UCLIBC_SV4_DEPRECATED__ && !defined __NR_ustat
-+make_stub(ustat)
- #endif
-
- #if !defined __NR_vhangup && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(vhangup)
- #endif
-
--#ifndef __NR_vmsplice
-+#if !defined __NR_vmsplice && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(vmsplice)
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/symlinkat.c uClibc-git/libc/sysdeps/linux/common/symlinkat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/symlinkat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/symlinkat.c 2014-07-25 20:36:06.785334575 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_symlinkat
- _syscall3(int, symlinkat, const char *, from, int, tofd, const char *, to)
-+libc_hidden_def(symlinkat)
- #else
- /* should add emulation with symlink() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/symlink.c uClibc-git/libc/sysdeps/linux/common/symlink.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/symlink.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/symlink.c 2014-07-25 20:36:06.785334575 +0200
-@@ -9,6 +9,19 @@
-
- #include <sys/syscall.h>
- #if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K
--#include <unistd.h>
-+# include <unistd.h>
-+
-+# if defined __NR_symlinkat && !defined __NR_symlink
-+# include <fcntl.h>
-+int symlink(const char *oldpath, const char *newpath)
-+{
-+ return symlinkat(oldpath, AT_FDCWD, newpath);
-+}
-+
-+# elif defined(__NR_symlink)
-+
- _syscall2(int, symlink, const char *, oldpath, const char *, newpath)
-+
-+# endif
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sync.c uClibc-git/libc/sysdeps/linux/common/sync.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sync.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sync.c 2014-07-25 20:36:06.785334575 +0200
-@@ -8,12 +8,8 @@
- */
-
- #include <sys/syscall.h>
--# if defined __USE_BSD || defined __USE_UNIX98
--#include <sys/types.h>
--#include <unistd.h>
-
--void sync(void)
--{
-- INLINE_SYSCALL(sync, 0);
--}
-+#if defined __USE_BSD || defined __USE_UNIX98
-+# include <unistd.h>
-+_syscall0(void, sync)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c uClibc-git/libc/sysdeps/linux/common/sync_file_range.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sync_file_range.c 2014-07-25 20:36:06.785334575 +0200
-@@ -4,24 +4,34 @@
- *
- * Copyright (C) 2008 Bernhard Reutner-Fischer <uclibc@uclibc.org>
- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
-
- #include <sys/syscall.h>
--#if defined __USE_GNU
--#include <fcntl.h>
-+#if defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
-+# include <bits/wordsize.h>
-+# include <endian.h>
-+# include <fcntl.h>
-+# include <cancel.h>
-
--#if defined __NR_sync_file_range && defined __UCLIBC_HAS_LFS__
--#define __NR___syscall_sync_file_range __NR_sync_file_range
--static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
-- off_t, offset_hi, off_t, offset_lo,
-- off_t, nbytes_hi, off_t, nbytes_lo, unsigned int, flags)
--int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
-+# ifdef __NR_sync_file_range2
-+# undef __NR_sync_file_range
-+# define __NR_sync_file_range __NR_sync_file_range2
-+# endif
-+
-+# ifdef __NR_sync_file_range
-+static int __NC(sync_file_range)(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
- {
-- return __syscall_sync_file_range(fd,
-- __LONG_LONG_PAIR((long)(offset >> 32), (long)(offset & 0xffffffff)),
-- __LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)),
-- flags);
-+# if defined __powerpc__ && __WORDSIZE == 64
-+ return INLINE_SYSCALL(sync_file_range, 4, fd, offset, nbytes, flags);
-+# elif defined __mips__ && _MIPS_SIM == _ABIO32
-+ return INLINE_SYSCALL(sync_file_range, 7, fd, 0,
-+ OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
-+# else
-+ return INLINE_SYSCALL(sync_file_range, 6, fd,
-+ OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
-+# endif
- }
--#endif
-+CANCELLABLE_SYSCALL(int, sync_file_range, (int fd, off64_t offset, off64_t nbytes, unsigned int flags), (fd, offset, nbytes, flags))
-+# endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/acct.h uClibc-git/libc/sysdeps/linux/common/sys/acct.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/acct.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sys/acct.h 2014-07-25 20:36:06.801334659 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
-+/* Copyright (C) 1996, 1997, 1998, 1999, 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,15 +12,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ACCT_H
- #define _SYS_ACCT_H 1
-
- #include <features.h>
-
-+#include <endian.h>
- #define __need_time_t
- #include <time.h>
- #include <sys/types.h>
-@@ -38,25 +38,51 @@
- typedef u_int16_t comp_t;
-
- struct acct
-- {
-- char ac_flag; /* Accounting flags. */
-- u_int16_t ac_uid; /* Accounting user ID. */
-- u_int16_t ac_gid; /* Accounting group ID. */
-- u_int16_t ac_tty; /* Controlling tty. */
-- u_int32_t ac_btime; /* Beginning time. */
-- comp_t ac_utime; /* Accounting user time. */
-- comp_t ac_stime; /* Accounting system time. */
-- comp_t ac_etime; /* Accounting elapsed time. */
-- comp_t ac_mem; /* Accounting average memory usage. */
-- comp_t ac_io; /* Accounting chars transferred. */
-- comp_t ac_rw; /* Accounting blocks read or written. */
-- comp_t ac_minflt; /* Accounting minor pagefaults. */
-- comp_t ac_majflt; /* Accounting major pagefaults. */
-- comp_t ac_swaps; /* Accounting number of swaps. */
-- u_int32_t ac_exitcode; /* Accounting process exitcode. */
-- char ac_comm[ACCT_COMM+1]; /* Accounting command name. */
-- char ac_pad[10]; /* Accounting padding bytes. */
-- };
-+{
-+ char ac_flag; /* Flags. */
-+ u_int16_t ac_uid; /* Real user ID. */
-+ u_int16_t ac_gid; /* Real group ID. */
-+ u_int16_t ac_tty; /* Controlling terminal. */
-+ u_int32_t ac_btime; /* Beginning time. */
-+ comp_t ac_utime; /* User time. */
-+ comp_t ac_stime; /* System time. */
-+ comp_t ac_etime; /* Elapsed time. */
-+ comp_t ac_mem; /* Average memory usage. */
-+ comp_t ac_io; /* Chars transferred. */
-+ comp_t ac_rw; /* Blocks read or written. */
-+ comp_t ac_minflt; /* Minor pagefaults. */
-+ comp_t ac_majflt; /* Major pagefaults. */
-+ comp_t ac_swaps; /* Number of swaps. */
-+ u_int32_t ac_exitcode; /* Process exitcode. */
-+ char ac_comm[ACCT_COMM+1]; /* Command name. */
-+ char ac_pad[10]; /* Padding bytes. */
-+};
-+
-+#if 0
-+struct acct_v3
-+{
-+ char ac_flag; /* Flags */
-+ char ac_version; /* Always set to ACCT_VERSION */
-+ u_int16_t ac_tty; /* Control Terminal */
-+ u_int32_t ac_exitcode; /* Exitcode */
-+ u_int32_t ac_uid; /* Real User ID */
-+ u_int32_t ac_gid; /* Real Group ID */
-+ u_int32_t ac_pid; /* Process ID */
-+ u_int32_t ac_ppid; /* Parent Process ID */
-+ u_int32_t ac_btime; /* Process Creation Time */
-+ float ac_etime; /* Elapsed Time */
-+ comp_t ac_utime; /* User Time */
-+ comp_t ac_stime; /* System Time */
-+ comp_t ac_mem; /* Average Memory Usage */
-+ comp_t ac_io; /* Chars Transferred */
-+ comp_t ac_rw; /* Blocks Read or Written */
-+ comp_t ac_minflt; /* Minor Pagefaults */
-+ comp_t ac_majflt; /* Major Pagefaults */
-+ comp_t ac_swaps; /* Number of Swaps */
-+ char ac_comm[ACCT_COMM]; /* Command Name */
-+};
-+#endif
-+
-
- enum
- {
-@@ -66,11 +92,17 @@
- AXSIG = 0x10 /* Killed by a signal. */
- };
-
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+# define ACCT_BYTEORDER 0x80 /* Accounting file is big endian. */
-+#else
-+# define ACCT_BYTEORDER 0x00 /* Accounting file is little endian. */
-+#endif
-+
- #define AHZ 100
-
-
- /* Switch process accounting on and off. */
--extern int acct (__const char *__filename) __THROW;
-+extern int acct (const char *__filename) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/epoll.h uClibc-git/libc/sysdeps/linux/common/sys/epoll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/epoll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sys/epoll.h 2014-07-25 20:36:06.801334659 +0200
-@@ -36,7 +36,6 @@
- # define __EPOLL_PACKED
- #endif
-
--
- enum EPOLL_EVENTS
- {
- EPOLLIN = 0x001,
-@@ -97,7 +96,7 @@
- returned by epoll_create() should be closed with close(). */
- extern int epoll_create (int __size) __THROW;
-
--/* Same as epoll_create but with an FLAGS parameter. The unused SIZE
-+/* Same as epoll_create but with a FLAGS parameter. The unused SIZE
- parameter has been dropped. */
- extern int epoll_create1 (int __flags) __THROW;
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/eventfd.h uClibc-git/libc/sysdeps/linux/common/sys/eventfd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/eventfd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sys/eventfd.h 2014-07-25 20:36:06.801334659 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
-+/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,30 +12,20 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_EVENTFD_H
- #define _SYS_EVENTFD_H 1
-
- #include <stdint.h>
-
-+/* Get the platform-dependent flags. */
-+#include <bits/eventfd.h>
-
- /* Type for event counter. */
- typedef uint64_t eventfd_t;
-
--/* Flags for signalfd. */
--enum
-- {
-- EFD_SEMAPHORE = 1,
--#define EFD_SEMAPHORE EFD_SEMAPHORE
-- EFD_CLOEXEC = 02000000,
--#define EFD_CLOEXEC EFD_CLOEXEC
-- EFD_NONBLOCK = 04000
--#define EFD_NONBLOCK EFD_NONBLOCK
-- };
--
-
- __BEGIN_DECLS
-
-@@ -43,6 +33,16 @@
- value to COUNT. */
- extern int eventfd (int __count, int __flags) __THROW;
-
-+#if 0 /* not (yet) implemented in uClibc */
-+
-+/* Read event counter and possibly wait for events. */
-+extern int eventfd_read (int __fd, eventfd_t *__value);
-+
-+/* Increment event counter. */
-+extern int eventfd_write (int __fd, eventfd_t __value);
-+
-+#endif
-+
- __END_DECLS
-
- #endif /* sys/eventfd.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/prctl.h uClibc-git/libc/sysdeps/linux/common/sys/prctl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/prctl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sys/prctl.h 2014-07-25 20:36:06.801334659 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PRCTL_H
- #define _SYS_PRCTL_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/ptrace.h uClibc-git/libc/sysdeps/linux/common/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sys/ptrace.h 2014-07-25 20:36:06.801334659 +0200
-@@ -1,5 +1,5 @@
- /* `ptrace' debugger support interface. Linux version.
-- Copyright (C) 1996-1999,2000,2006,2007 Free Software Foundation, Inc.
-+ Copyright (C) 1996-2012 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-@@ -125,13 +124,40 @@
- #define PT_GETSIGINFO PTRACE_GETSIGINFO
-
- /* Set new siginfo for process. */
-- PTRACE_SETSIGINFO = 0x4203
-+ PTRACE_SETSIGINFO = 0x4203,
- #define PT_SETSIGINFO PTRACE_SETSIGINFO
-+
-+ /* Get register content. */
-+ PTRACE_GETREGSET = 0x4204,
-+#define PTRACE_GETREGSET PTRACE_GETREGSET
-+
-+ /* Set register content. */
-+ PTRACE_SETREGSET = 0x4205,
-+#define PTRACE_SETREGSET PTRACE_SETREGSET
-+
-+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
-+ signal or group stop state. */
-+ PTRACE_SEIZE = 0x4206,
-+#define PTRACE_SEIZE PTRACE_SEIZE
-+
-+ /* Trap seized tracee. */
-+ PTRACE_INTERRUPT = 0x4207,
-+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
-+
-+ /* Wait for next group event. */
-+ PTRACE_LISTEN = 0x4208
- };
-
-
-+/* Flag for PTRACE_LISTEN. */
-+enum __ptrace_flags
-+{
-+ PTRACE_SEIZE_DEVEL = 0x80000000
-+};
-+
- /* Options set using PTRACE_SETOPTIONS. */
--enum __ptrace_setoptions {
-+enum __ptrace_setoptions
-+{
- PTRACE_O_TRACESYSGOOD = 0x00000001,
- PTRACE_O_TRACEFORK = 0x00000002,
- PTRACE_O_TRACEVFORK = 0x00000004,
-@@ -139,17 +165,20 @@
- PTRACE_O_TRACEEXEC = 0x00000010,
- PTRACE_O_TRACEVFORKDONE = 0x00000020,
- PTRACE_O_TRACEEXIT = 0x00000040,
-- PTRACE_O_MASK = 0x0000007f
-+ PTRACE_O_TRACESECCOMP = 0x00000080,
-+ PTRACE_O_MASK = 0x000000ff
- };
-
- /* Wait extended result codes for the above trace options. */
--enum __ptrace_eventcodes {
-+enum __ptrace_eventcodes
-+{
- PTRACE_EVENT_FORK = 1,
- PTRACE_EVENT_VFORK = 2,
- PTRACE_EVENT_CLONE = 3,
- PTRACE_EVENT_EXEC = 4,
- PTRACE_EVENT_VFORK_DONE = 5,
-- PTRACE_EVENT_EXIT = 6
-+ PTRACE_EVENT_EXIT = 6,
-+ PTRAVE_EVENT_SECCOMP = 7
- };
-
- /* Perform process tracing functions. REQUEST is one of the values
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl64.c uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl64.c 2014-07-25 20:36:06.757334429 +0200
-@@ -7,14 +7,18 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
--#include <stdarg.h>
--#include <fcntl.h>
-+#include <bits/wordsize.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
-+#if defined __NR_fcntl64 && __WORDSIZE == 32
-+# include <stdarg.h>
-+# include <cancel.h>
-+# include <fcntl.h>
-+
-+# define __NR___fcntl64_nocancel __NR_fcntl64
-+_syscall3(int, __NC(fcntl64), int, fd, int, cmd, long, arg)
-
--#define __NR___syscall_fcntl64 __NR_fcntl64
--static __inline__ _syscall3(int, __syscall_fcntl64, int, fd, int, cmd, long, arg)
- int fcntl64(int fd, int cmd, ...)
- {
- long arg;
-@@ -24,7 +28,15 @@
- arg = va_arg(list, long);
- va_end(list);
-
-- return (__syscall_fcntl64(fd, cmd, arg));
-+ if (SINGLE_THREAD_P || (cmd != F_SETLKW64))
-+ return __NC(fcntl64)(fd, cmd, arg);
-+# ifdef __NEW_THREADS
-+ int oldtype = LIBC_CANCEL_ASYNC();
-+ int result = __NC(fcntl64)(fd, cmd, arg);
-+ LIBC_CANCEL_RESET(oldtype);
-+ return result;
-+# endif
- }
--libc_hidden_def(fcntl64)
-+lt_strong_alias(fcntl64)
-+lt_libc_hidden(fcntl64)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl.c uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl.c 2014-07-25 20:36:06.757334429 +0200
-@@ -10,82 +10,61 @@
-
- #include <sys/syscall.h>
- #include <stdarg.h>
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */
--#endif
-+#include <cancel.h> /* Must come before <fcntl.h>. */
- #include <fcntl.h>
- #include <bits/wordsize.h>
-
--extern __typeof(fcntl) __libc_fcntl;
--libc_hidden_proto(__libc_fcntl)
--
--int __fcntl_nocancel (int fd, int cmd, ...)
-+int __NC(fcntl)(int fd, int cmd, long arg)
- {
-- va_list ap;
-- void *arg;
--
-- va_start (ap, cmd);
-- arg = va_arg (ap, void *);
-- va_end (ap);
--
--# if __WORDSIZE == 32
-+#if __WORDSIZE == 32
- if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
--# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
-- return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
--# else
-+# if (defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64) || !defined __NR_fcntl
-+ return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
-+# else
- __set_errno(ENOSYS);
- return -1;
--# endif
-- }
- # endif
-- return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
-+ }
-+#endif
-+
-+#if defined __NR_fcntl
-+ return INLINE_SYSCALL(fcntl, 3, fd, cmd, arg);
-+#else
-+ __set_errno(ENOSYS);
-+ return -1;
-+#endif
- }
--libc_hidden_def(__fcntl_nocancel)
-
--int __libc_fcntl (int fd, int cmd, ...)
-+int fcntl(int fd, int cmd, ...)
- {
- va_list ap;
-- void *arg;
-+ long arg;
-
- va_start (ap, cmd);
-- arg = va_arg (ap, void *);
-+ arg = va_arg (ap, long);
- va_end (ap);
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
- if (SINGLE_THREAD_P || (cmd != F_SETLKW && cmd != F_SETLKW64))
--# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
-- return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
--# else
-- return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
--# endif
--
-+#if defined __NR_fcntl
-+ return __NC(fcntl)(fd, cmd, arg);
-+#else
-+ return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
-+#endif
-+#ifdef __NEW_THREADS
- int oldtype = LIBC_CANCEL_ASYNC ();
--
--# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
-- int result = INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
--# else
-- int result = INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
--# endif
--
-+#if defined __NR_fcntl
-+ int result = __NC(fcntl)(fd, cmd, arg);
-+#else
-+ int result = INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
-+#endif
- LIBC_CANCEL_RESET (oldtype);
--
- return result;
--#else
--# if __WORDSIZE == 32
-- if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
--# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
-- return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
--# else
-- __set_errno(ENOSYS);
-- return -1;
--# endif
-- }
--# endif
-- return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
- #endif
- }
--libc_hidden_def(__libc_fcntl)
--
--libc_hidden_proto(fcntl)
--weak_alias(__libc_fcntl,fcntl)
--libc_hidden_weak(fcntl)
-+lt_strong_alias(fcntl)
-+lt_libc_hidden(fcntl)
-+#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fcntl64 && __WORDSIZE == 32
-+strong_alias_untyped(fcntl,fcntl64)
-+lt_strong_alias(fcntl64)
-+lt_libc_hidden(fcntl64)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_rt_sigaction.c uClibc-git/libc/sysdeps/linux/common/__syscall_rt_sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_rt_sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__syscall_rt_sigaction.c 2014-07-25 20:36:06.757334429 +0200
-@@ -12,11 +12,8 @@
- #ifdef __NR_rt_sigaction
- #include <signal.h>
-
--int __syscall_rt_sigaction (int __signum, const struct sigaction *__act,
-- struct sigaction *__oldact, size_t __size);
--
- #define __NR___syscall_rt_sigaction __NR_rt_sigaction
- _syscall4(int, __syscall_rt_sigaction, int, signum,
-- const struct sigaction *, act, struct sigaction *, oldact,
-- size_t, size)
-+ const struct sigaction *, act, struct sigaction *, oldact,
-+ size_t, size)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/syscalls.h uClibc-git/libc/sysdeps/linux/common/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/syscalls.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,24 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * Common header file for uClibc syscalls
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#define _LARGEFILE64_SOURCE
--#include <features.h>
--#include <errno.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <endian.h>
--
--#undef __OPTIMIZE__
--/* We absolutely do _NOT_ want interfaces silently
-- * being renamed under us or very bad things will happen... */
--#ifdef __USE_FILE_OFFSET64
--# undef __USE_FILE_OFFSET64
--#endif
--
--#include <bits/kernel_types.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_sigaction.c uClibc-git/libc/sysdeps/linux/common/__syscall_sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/__syscall_sigaction.c 2014-07-25 20:36:06.757334429 +0200
-@@ -12,8 +12,7 @@
- #ifndef __NR_rt_sigaction
- #define __NR___syscall_sigaction __NR_sigaction
- #include <signal.h>
--int __syscall_sigaction (int __signum, const struct sigaction *__act, struct sigaction *__oldact) attribute_hidden;
- _syscall3(int, __syscall_sigaction, int, signum, const struct sigaction *,
-- act, struct sigaction *, oldact)
-+ act, struct sigaction *, oldact)
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sysdep.h uClibc-git/libc/sysdeps/linux/common/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sysdep.h 2014-07-25 20:36:06.801334659 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/syscall.h>
-
-@@ -49,6 +48,8 @@
- #define JUMPTARGET(sym) sym
- #endif
-
-+#define ret_ERRVAL ret
-+
- /* Macros to generate eh_frame unwind information. */
- # ifdef HAVE_ASM_CFI_DIRECTIVES
- # define cfi_sections(sect...) .cfi_sections sect
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sysinfo.c uClibc-git/libc/sysdeps/linux/common/sysinfo.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/sysinfo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/sysinfo.c 2014-07-25 20:36:06.801334659 +0200
-@@ -8,5 +8,8 @@
- */
-
- #include <sys/syscall.h>
--#include <sys/sysinfo.h>
-+
-+#ifdef __NR_sysinfo
-+# include <sys/sysinfo.h>
- _syscall1(int, sysinfo, struct sysinfo *, info)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/tee.c uClibc-git/libc/sysdeps/linux/common/tee.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/tee.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/tee.c 2014-07-25 20:36:06.801334659 +0200
-@@ -8,9 +8,10 @@
- */
-
- #include <sys/syscall.h>
--#include <fcntl.h>
-
--#ifdef __NR_tee
-+#if defined __NR_tee && defined __USE_GNU
-+# include <fcntl.h>
-+
- _syscall4(ssize_t, tee, int, __fdin, int, __fdout, size_t, __len,
-- unsigned int, __flags)
-+ unsigned int, __flags)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/time.c uClibc-git/libc/sysdeps/linux/common/time.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/time.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/time.c 2014-07-25 20:36:06.801334659 +0200
-@@ -9,12 +9,11 @@
-
- #include <sys/syscall.h>
- #include <time.h>
--#include <sys/time.h>
--
-
- #ifdef __NR_time
- _syscall_noerr1(time_t, time, time_t *, t)
- #else
-+# include <sys/time.h>
- time_t time(time_t * t)
- {
- time_t result;
-@@ -25,9 +24,8 @@
- */
- gettimeofday(&tv, NULL);
- result = (time_t) tv.tv_sec;
-- if (t != NULL) {
-+ if (t != NULL)
- *t = result;
-- }
- return result;
- }
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/times.c uClibc-git/libc/sysdeps/linux/common/times.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/times.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/times.c 2014-07-25 20:36:06.801334659 +0200
-@@ -10,6 +10,5 @@
- #include <sys/syscall.h>
- #include <sys/times.h>
-
--
- _syscall_noerr1(clock_t, times, struct tms *, buf)
- libc_hidden_def(times)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate64.c uClibc-git/libc/sysdeps/linux/common/truncate64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/truncate64.c 2014-07-25 20:36:06.801334659 +0200
-@@ -7,49 +7,35 @@
- * and on 32 bit machines this sends things into the kernel as
- * two 32-bit arguments (high and low 32 bits of length) that
- * are ordered based on endianess. It turns out endian.h has
-- * just the macro we need to order things, __LONG_LONG_PAIR.
-+ * just the macro we need to order things, OFF64_HI_LO.
- */
-
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
-+#include <unistd.h>
-
--#if defined __UCLIBC_HAS_LFS__
--
--#if defined __NR_truncate64
--
--#if __WORDSIZE == 64
-+#ifdef __NR_truncate64
-+# include <bits/wordsize.h>
-
--/* For a 64 bit machine, life is simple... */
-+# if __WORDSIZE == 64
- _syscall2(int, truncate64, const char *, path, __off64_t, length)
--
--#elif __WORDSIZE == 32
--
--/* The exported truncate64 function. */
-+# elif __WORDSIZE == 32
-+# include <endian.h>
-+# include <stdint.h>
- int truncate64(const char * path, __off64_t length)
- {
-- uint32_t low = length & 0xffffffff;
-- uint32_t high = length >> 32;
--#if defined(__UCLIBC_TRUNCATE64_HAS_4_ARGS__)
-- return INLINE_SYSCALL(truncate64, 4, path, 0,
-- __LONG_LONG_PAIR(high, low));
--#else
-- return INLINE_SYSCALL(truncate64, 3, path,
-- __LONG_LONG_PAIR(high, low));
--#endif
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+ return INLINE_SYSCALL(truncate64, 4, path, 0, OFF64_HI_LO(length));
-+# else
-+ return INLINE_SYSCALL(truncate64, 3, path, OFF64_HI_LO(length));
-+# endif
- }
-+# else
-+# error Your machine is not 64 bit nor 32 bit, I am dazed and confused.
-+# endif
-
--#else /* __WORDSIZE */
--#error Your machine is not 64 bit nor 32 bit, I am dazed and confused.
--#endif /* __WORDSIZE */
--
--#else /* __NR_truncate64 */
--
--
-+#else
-+# include <errno.h>
- int truncate64(const char * path, __off64_t length)
- {
- __off_t x = (__off_t) length;
-@@ -64,5 +50,4 @@
- }
-
- #endif /* __NR_truncate64 */
--
--#endif /* __UCLIBC_HAS_LFS__ */
-+libc_hidden_def(truncate64)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate.c uClibc-git/libc/sysdeps/linux/common/truncate.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/truncate.c 2014-07-25 20:36:06.801334659 +0200
-@@ -10,6 +10,25 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
-+#if defined(__NR_truncate64) && !defined(__NR_truncate)
-+# include <endian.h>
-+# include <stdint.h>
-
-+int truncate(const char *path, __off_t length)
-+{
-+# if defined __UCLIBC_HAS_LFS
-+ return truncate64(path, length);
-+# elif __WORDSIZE == 32
-+# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
-+ return INLINE_SYSCALL(truncate64, 4, path, 0, OFF_HI_LO(length));
-+# else
-+ return INLINE_SYSCALL(truncate64, 3, path, OFF_HI_LO(length));
-+# endif
-+# endif
-+}
-+libc_hidden_def(truncate);
-+
-+#else
- _syscall2(int, truncate, const char *, path, __off_t, length)
- libc_hidden_def(truncate)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umask.c uClibc-git/libc/sysdeps/linux/common/umask.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/umask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/umask.c 2014-07-25 20:36:06.801334659 +0200
-@@ -10,10 +10,4 @@
- #include <sys/syscall.h>
- #include <sys/stat.h>
-
--#define __NR___syscall_umask __NR_umask
--static __inline__ _syscall1(__kernel_mode_t, __syscall_umask, __kernel_mode_t, mode)
--
--mode_t umask(mode_t mode)
--{
-- return __syscall_umask(mode);
--}
-+_syscall_noerr1(mode_t, umask, mode_t, mode)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umount2.c uClibc-git/libc/sysdeps/linux/common/umount2.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/umount2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/umount2.c 2014-07-25 20:36:06.801334659 +0200
-@@ -9,9 +9,8 @@
-
- #include <sys/syscall.h>
-
--#if defined __USE_GNU
--#include <sys/mount.h>
--#ifdef __NR_umount2 /* Old kernels don't have umount2 */
-+#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __NR_umount2
-+# include <sys/mount.h>
- _syscall2(int, umount2, const char *, special_file, int, flags)
--#endif
-+libc_hidden_def(umount2)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umount.c uClibc-git/libc/sysdeps/linux/common/umount.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/umount.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/umount.c 2014-07-25 20:36:06.801334659 +0200
-@@ -9,24 +9,15 @@
-
- #include <sys/syscall.h>
-
--#if defined __USE_GNU
- #include <sys/mount.h>
--
--/* arch provides umount() syscall */
- #ifdef __NR_umount
--
- _syscall1(int, umount, const char *, specialfile)
--
--/* arch provides umount2() syscall */
- #elif defined __NR_umount2
--
--# define __NR___syscall_umount2 __NR_umount2
--static __inline__ _syscall2(int, __syscall_umount2, const char *, special_file, int, flags)
--
-+# ifndef __UCLIBC_LINUX_SPECIFIC__
-+static __always_inline _syscall2(int, umount2, const char *, special_file, int, flags)
-+# endif
- int umount(const char *special_file)
- {
-- return (__syscall_umount2(special_file, 0));
-+ return umount2(special_file, 0);
- }
--
--#endif
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/uname.c uClibc-git/libc/sysdeps/linux/common/uname.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/uname.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/uname.c 2014-07-25 20:36:06.801334659 +0200
-@@ -10,6 +10,5 @@
- #include <sys/syscall.h>
- #include <sys/utsname.h>
-
--
- _syscall1(int, uname, struct utsname *, buf)
- libc_hidden_def(uname)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unlinkat.c uClibc-git/libc/sysdeps/linux/common/unlinkat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/unlinkat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/unlinkat.c 2014-07-25 20:36:06.801334659 +0200
-@@ -11,6 +11,7 @@
-
- #ifdef __NR_unlinkat
- _syscall3(int, unlinkat, int, fd, const char *, file, int, flag)
-+libc_hidden_def(unlinkat)
- #else
- /* should add emulation with unlink() and /proc/self/fd/ ... */
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unlink.c uClibc-git/libc/sysdeps/linux/common/unlink.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/unlink.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/unlink.c 2014-07-25 20:36:06.801334659 +0200
-@@ -10,6 +10,13 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
--
-+#if defined __NR_unlinkat && !defined __NR_unlink
-+# include <fcntl.h>
-+int unlink(const char *pathname)
-+{
-+ return unlinkat(AT_FDCWD, pathname, 0);
-+}
-+#else
- _syscall1(int, unlink, const char *, pathname)
-+#endif
- libc_hidden_def(unlink)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unwind.h uClibc-git/libc/sysdeps/linux/common/unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/unwind.h 2014-07-25 20:36:06.801334659 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This is derived from the C++ ABI for IA-64. Where we diverge
- for cross-architecture compatibility are noted with "@@@". */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ustat.c uClibc-git/libc/sysdeps/linux/common/ustat.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/ustat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/ustat.c 2014-07-25 20:36:06.801334659 +0200
-@@ -11,16 +11,18 @@
- #include <sys/ustat.h>
- #include <sys/sysmacros.h>
-
--#define __NR___syscall_ustat __NR_ustat
-+#ifdef __NR_ustat
-+# define __NR___syscall_ustat __NR_ustat
- /* Kernel's fs/super.c defines this:
- * long sys_ustat(unsigned dev, struct ustat __user * ubuf),
- * thus we use unsigned, not __kernel_dev_t.
- */
--static __inline__ _syscall2(int, __syscall_ustat,
-- unsigned, kdev_t,
-- struct ustat *, ubuf)
-+static __always_inline _syscall2(int, __syscall_ustat,
-+ unsigned, kdev_t,
-+ struct ustat *, ubuf)
-
- int ustat(dev_t dev, struct ustat *ubuf)
- {
- return __syscall_ustat(dev, ubuf);
- }
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/utime.c uClibc-git/libc/sysdeps/linux/common/utime.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/utime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/utime.c 2014-07-25 20:36:06.801334659 +0200
-@@ -10,13 +10,33 @@
- #include <sys/syscall.h>
- #include <utime.h>
-
-+#if defined __NR_utimensat && !defined __NR_utime
-+# include <fcntl.h>
-+# include <stddef.h>
-
--#ifdef __NR_utime
--_syscall2(int, utime, const char *, file, const struct utimbuf *, times)
--#else
--#include <stdlib.h>
--#include <sys/time.h>
-+int utime(const char *file, const struct utimbuf *times)
-+{
-+ struct timespec tspecs[2], *ts;
-+
-+ if (times) {
-+ ts = tspecs;
-+ ts[0].tv_sec = times->actime;
-+ ts[0].tv_nsec = 0;
-+ ts[1].tv_sec = times->modtime;
-+ ts[1].tv_nsec = 0;
-+ } else {
-+ ts = NULL;
-+ }
-
-+ return utimensat(AT_FDCWD, file, ts, 0);
-+}
-+
-+#elif defined(__NR_utime)
-+_syscall2(int, utime, const char *, file, const struct utimbuf *, times)
-+#elif defined __NR_utimes /* alpha || ia64 */
-+# define __need_NULL
-+# include <stddef.h>
-+# include <sys/time.h>
-
- int utime(const char *file, const struct utimbuf *times)
- {
-@@ -25,11 +45,15 @@
- if (times != NULL) {
- timevals[0].tv_usec = 0L;
- timevals[1].tv_usec = 0L;
-- timevals[0].tv_sec = (long int) times->actime;
-- timevals[1].tv_sec = (long int) times->modtime;
-+ timevals[0].tv_sec = (time_t) times->actime;
-+ timevals[1].tv_sec = (time_t) times->modtime;
- }
- return utimes(file, times ? timevals : NULL);
- }
- #endif
-+
-+#if (defined __NR_utimensat && !defined __NR_utime) || \
-+ defined __NR_utime || defined __NR_utimes
- link_warning(utime, "the use of OBSOLESCENT `utime' is discouraged, use `utimes'")
- libc_hidden_def(utime)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/utimes.c uClibc-git/libc/sysdeps/linux/common/utimes.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/utimes.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/utimes.c 2014-07-25 20:36:06.801334659 +0200
-@@ -8,15 +8,33 @@
- */
-
- #include <sys/syscall.h>
--#include <utime.h>
- #include <sys/time.h>
-
-+#if defined __NR_utimensat && !defined __NR_utimes
-+# include <fcntl.h>
-+# include <stddef.h>
-+int utimes(const char *file, const struct timeval tvp[2])
-+{
-+ struct timespec ts[2], *times;
-+ if (tvp) {
-+ times = ts;
-+ times[0].tv_sec = tvp[0].tv_sec;
-+ times[0].tv_nsec = tvp[0].tv_usec * 1000;
-+ times[1].tv_sec = tvp[1].tv_sec;
-+ times[1].tv_nsec = tvp[1].tv_usec * 1000;
-+ } else {
-+ times = NULL;
-+ }
-
--#ifdef __NR_utimes
--_syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
--#else
--#include <stdlib.h>
-+ return utimensat(AT_FDCWD, file, times, 0);
-+}
-
-+#elif defined __NR_utimes
-+_syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
-+#elif defined __NR_utime
-+# define __need_NULL
-+# include <stddef.h>
-+# include <utime.h>
-
- int utimes(const char *file, const struct timeval tvp[2])
- {
-@@ -32,4 +50,7 @@
- return utime(file, times);
- }
- #endif
-+
-+#if defined __NR_utimensat || defined __NR_utimes || defined __NR_utime
- libc_hidden_def(utimes)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/vfork.c uClibc-git/libc/sysdeps/linux/common/vfork.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/vfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/vfork.c 2014-07-25 20:36:06.801334659 +0200
-@@ -4,30 +4,37 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <unistd.h>
--#include <sys/types.h>
- #include <sys/syscall.h>
-
-+#if (defined __NR_vfork || defined __NR_clone || (defined __ARCH_USE_MMU__ && defined __NR_fork)) && (defined __USE_BSD || defined __USE_XOPEN_EXTENDED)
-+# include <unistd.h>
- extern __typeof(vfork) __vfork attribute_hidden;
-
--#ifdef __NR_vfork
-+# if defined __NR_clone && !defined __NR_vfork
-+# include <signal.h>
-+# include <sys/types.h>
-
--# define __NR___vfork __NR_vfork
--_syscall0(pid_t, __vfork)
-+pid_t __vfork(void)
-+{
-+ pid_t pid = INLINE_SYSCALL(clone, 4, SIGCHLD,
-+ NULL, NULL, NULL);
-
--weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+ if (pid < 0)
-+ return -1;
-
--#elif defined __ARCH_USE_MMU__ && defined __NR_fork
-+ return pid;
-+}
-
-+# elif defined __NR_vfork
-+# define __NR___vfork __NR_vfork
-+_syscall0(pid_t, __vfork)
-+# else
- /* Trivial implementation for arches that lack vfork */
--
- pid_t __vfork(void)
- {
- return fork();
- }
--
--weak_alias(__vfork,vfork)
-+# endif
-+strong_alias(__vfork,vfork)
- libc_hidden_weak(vfork)
--
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/vmsplice.c uClibc-git/libc/sysdeps/linux/common/vmsplice.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/vmsplice.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/vmsplice.c 2014-07-25 20:36:06.801334659 +0200
-@@ -8,9 +8,10 @@
- */
-
- #include <sys/syscall.h>
--#include <fcntl.h>
-
--#ifdef __NR_vmsplice
-+#if defined __NR_vmsplice && defined __USE_GNU
-+# include <fcntl.h>
-+
- _syscall4(ssize_t, vmsplice, int, __fdout, const struct iovec *, __iov,
-- size_t, __count, unsigned int, __flags)
-+ size_t, __count, unsigned int, __flags)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait3.c uClibc-git/libc/sysdeps/linux/common/wait3.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/wait3.c 2014-07-25 20:36:06.801334659 +0200
-@@ -5,20 +5,12 @@
- */
-
- #include <sys/syscall.h>
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/resource.h>
-
--#if defined __USE_BSD
-+#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-+# include <sys/wait.h>
-
--
--/* Wait for a child to exit. When one does, put its status in *STAT_LOC and
-- * return its process ID. For errors return (pid_t) -1. If USAGE is not nil,
-- * store information about the child's resource usage (as a `struct rusage')
-- * there. If the WUNTRACED bit is set in OPTIONS, return status for stopped
-- * children; otherwise don't. */
--pid_t wait3 (__WAIT_STATUS stat_loc, int options, struct rusage * usage)
-+pid_t wait3(__WAIT_STATUS stat_loc, int options, struct rusage *usage)
- {
-- return wait4 (WAIT_ANY, stat_loc, options, usage);
-+ return __wait4_nocancel(WAIT_ANY, stat_loc, options, usage);
- }
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait4.c uClibc-git/libc/sysdeps/linux/common/wait4.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/wait4.c 2014-07-25 20:36:06.801334659 +0200
-@@ -8,18 +8,16 @@
- */
-
- #include <sys/syscall.h>
--#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
- #include <sys/wait.h>
--#include <sys/resource.h>
-
-+# define __NR___syscall_wait4 __NR_wait4
-+static __always_inline _syscall4(int, __syscall_wait4, __kernel_pid_t, pid,
-+ int *, status, int, opts, struct rusage *, rusage)
-
--#define __NR___syscall_wait4 __NR_wait4
--static __inline__ _syscall4(int, __syscall_wait4, __kernel_pid_t, pid,
-- int *, status, int, opts, struct rusage *, rusage)
--
--pid_t wait4(pid_t pid, int *status, int opts, struct rusage *rusage)
-+pid_t __wait4_nocancel(pid_t pid, int *status, int opts, struct rusage *rusage)
- {
-- return (__syscall_wait4(pid, status, opts, rusage));
-+ return __syscall_wait4(pid, status, opts, rusage);
- }
--libc_hidden_def(wait4)
-+#ifdef __USE_BSD
-+strong_alias(__wait4_nocancel,wait4)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait.c uClibc-git/libc/sysdeps/linux/common/wait.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/wait.c 2014-07-25 20:36:06.801334659 +0200
-@@ -4,41 +4,11 @@
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
--#include <stdlib.h>
--#include <syscall.h>
--#include <sys/types.h>
- #include <sys/wait.h>
--#include <sys/resource.h>
-+#include <cancel.h>
-
--extern __typeof(wait) __libc_wait;
--/* Wait for a child to die. When one does, put its status in *STAT_LOC
-- * and return its process ID. For errors, return (pid_t) -1. */
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <errno.h>
--#include <sysdep-cancel.h>
--
--pid_t attribute_hidden
--__libc_wait (__WAIT_STATUS_DEFN stat_loc)
--{
-- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0,
-- (struct rusage *) NULL);
--
-- int oldtype = LIBC_CANCEL_ASYNC ();
--
-- pid_t result = INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0,
-- (struct rusage *) NULL);
--
-- LIBC_CANCEL_RESET (oldtype);
--
-- return result;
--}
--#else
--/* Wait for a child to die. When one does, put its status in *STAT_LOC
-- * and return its process ID. For errors, return (pid_t) -1. */
--__pid_t __libc_wait (__WAIT_STATUS_DEFN stat_loc)
-+static pid_t __NC(wait)(__WAIT_STATUS_DEFN stat_loc)
- {
-- return wait4 (WAIT_ANY, stat_loc, 0, (struct rusage *) NULL);
-+ return __wait4_nocancel(WAIT_ANY, stat_loc, 0, (struct rusage *)NULL);
- }
--#endif
--weak_alias(__libc_wait,wait)
-+CANCELLABLE_SYSCALL(pid_t, wait, (__WAIT_STATUS_DEFN stat_loc), (stat_loc))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/waitid.c uClibc-git/libc/sysdeps/linux/common/waitid.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/waitid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/waitid.c 2014-07-25 20:36:06.801334659 +0200
-@@ -8,43 +8,19 @@
- #include <features.h>
-
- #if defined __USE_SVID || defined __USE_XOPEN
--# include <string.h>
--# include <sys/types.h>
--# include <sys/wait.h>
--# include <sys/syscall.h>
--
--# ifdef __NR_waitid
--
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
--# include <sysdep-cancel.h>
--# else
--# define SINGLE_THREAD_P 1
--# endif
-
--/* The waitid() POSIX interface takes 4 arguments, but the kernel function
-- * actually takes 5. The fifth is a pointer to struct rusage. Make sure
-- * we pass NULL rather than letting whatever was in the register bleed up.
-- */
--#define __NR_waitid5 __NR_waitid
--static __always_inline
--_syscall5(int, waitid5, idtype_t, idtype, id_t, id, siginfo_t*, infop,
-- int, options, struct rusage*, ru)
--# endif
-+#include <sys/syscall.h>
-+#include <sys/wait.h>
-+#include <cancel.h>
-+#ifndef __NR_waitid
-+# include <string.h>
-+#endif
-
--int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options)
-+static int __NC(waitid)(idtype_t idtype, id_t id, siginfo_t *infop, int options)
- {
--# ifdef __NR_waitid
-- if (SINGLE_THREAD_P)
-- return waitid5(idtype, id, infop, options, NULL);
--
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = waitid5(idtype, id, infop, options, NULL);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--# endif
--
--# elif defined __NR_waitpid
-+#ifdef __NR_waitid
-+ return INLINE_SYSCALL(waitid, 5, idtype, id, infop, options, NULL);
-+#else
- switch (idtype) {
- case P_PID:
- if (id <= 0)
-@@ -65,17 +41,17 @@
- }
-
- memset(infop, 0, sizeof *infop);
-- infop->si_pid = waitpid(id, &infop->si_status, options
--# ifdef WEXITED
-+ infop->si_pid = __NC(waitpid)(id, &infop->si_status, options
-+# ifdef WEXITED
- &~ WEXITED
--# endif
-+# endif
- );
- if (infop->si_pid < 0)
- return infop->si_pid;
- return 0;
--# else
-- __set_errno(ENOSYS);
-- return -1;
--# endif
-+#endif
- }
-+CANCELLABLE_SYSCALL(int, waitid, (idtype_t idtype, id_t id, siginfo_t *infop, int options),
-+ (idtype, id, infop, options))
-+
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/waitpid.c uClibc-git/libc/sysdeps/linux/common/waitpid.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/waitpid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/waitpid.c 2014-07-25 20:36:06.801334659 +0200
-@@ -6,32 +6,16 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <stdlib.h>
--#include <sys/types.h>
- #include <sys/wait.h>
--#include <sys/resource.h>
-+#include <cancel.h>
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include "sysdep-cancel.h"
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
--libc_hidden_proto(wait4)
--
--extern __typeof(waitpid) __libc_waitpid;
--__pid_t __libc_waitpid(__pid_t pid, int *wait_stat, int options)
-+pid_t __NC(waitpid)(pid_t pid, int *wait_stat, int options)
- {
-- if (SINGLE_THREAD_P)
-- return wait4(pid, wait_stat, options, NULL);
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = wait4(pid, wait_stat, options, NULL);
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
-+#if 1 /* kernel/exit.c says to avoid waitpid syscall */
-+ return __wait4_nocancel(pid, wait_stat, options, NULL);
-+#else
-+ return INLINE_SYSCALL(waitpid, 3, pid, wait_stat, options);
- #endif
- }
--libc_hidden_proto(waitpid)
--weak_alias(__libc_waitpid,waitpid)
--libc_hidden_weak(waitpid)
-+CANCELLABLE_SYSCALL(pid_t, waitpid, (pid_t pid, int *wait_stat, int options), (pid, wait_stat, options))
-+lt_libc_hidden(waitpid)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/write.c uClibc-git/libc/sysdeps/linux/common/write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/write.c 2014-07-25 20:36:06.801334659 +0200
-@@ -9,17 +9,11 @@
-
- #include <sys/syscall.h>
- #include <unistd.h>
-+#include <cancel.h>
-
--_syscall3(ssize_t, write, int, fd, const __ptr_t, buf, size_t, count)
--#ifndef __LINUXTHREADS_OLD__
--libc_hidden_def(write)
--#else
--libc_hidden_weak(write)
--strong_alias(write,__libc_write)
--#endif
-+#define __NR___write_nocancel __NR_write
-+_syscall3(ssize_t, __NC(write), int, fd, const void *, buf, size_t, count)
-
--#if 0
--/* Stupid libgcc.a from gcc 2.95.x uses __write in pure.o
-- * which is a blatant GNU libc-ism... */
--strong_alias(write,__write)
--#endif
-+CANCELLABLE_SYSCALL(ssize_t, write, (int fd, const void *buf, size_t count),
-+ (fd, buf, count))
-+lt_libc_hidden(write)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/writev.c uClibc-git/libc/sysdeps/linux/common/writev.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/writev.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/writev.c 2014-07-25 20:36:06.801334659 +0200
-@@ -9,42 +9,20 @@
-
- #include <sys/syscall.h>
- #include <sys/uio.h>
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <errno.h>
--#include <sysdep-cancel.h>
-+#include <cancel.h>
-
- /* We should deal with kernel which have a smaller UIO_FASTIOV as well
- as a very big count. */
--static ssize_t __writev (int fd, const struct iovec *vector, int count)
-+static ssize_t __NC(writev)(int fd, const struct iovec *vector, int count)
- {
-- ssize_t bytes_written;
--
-- bytes_written = INLINE_SYSCALL (writev, 3, fd, vector, count);
--
-- if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
-- return bytes_written;
--
-- /* glibc tries again, but we do not. */
-- /* return __atomic_writev_replacement (fd, vector, count); */
--
-- return -1;
--}
--
--ssize_t writev (int fd, const struct iovec *vector, int count)
--{
-- if (SINGLE_THREAD_P)
-- return __writev (fd, vector, count);
--
-- int oldtype = LIBC_CANCEL_ASYNC ();
-+ ssize_t bytes_written = INLINE_SYSCALL(writev, 3, fd, vector, count);
-
-- ssize_t result = __writev (fd, vector, count);
-+ if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
-+ return bytes_written;
-
-- LIBC_CANCEL_RESET (oldtype);
-+ /* glibc tries again, but we do not. */
-+ /* return __atomic_writev_replacement (fd, vector, count); */
-
-- return result;
-+ return -1;
- }
--#else
--_syscall3(ssize_t, writev, int, filedes, const struct iovec *, vector,
-- int, count)
--#endif
-+CANCELLABLE_SYSCALL(ssize_t, writev, (int fd, const struct iovec *vector, int count), (fd, vector, count))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.c uClibc-git/libc/sysdeps/linux/common/xstatconv.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/xstatconv.c 2014-07-25 20:36:06.801334659 +0200
-@@ -13,14 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-
- Modified for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-
--#include <sys/syscall.h>
- #include <sys/stat.h>
- #include <string.h>
- #include "xstatconv.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.h uClibc-git/libc/sysdeps/linux/common/xstatconv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/common/xstatconv.h 2014-07-25 20:36:06.801334659 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-
- Modified for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-@@ -23,11 +22,14 @@
- /* Pull in whatever this particular arch's kernel thinks the kernel version of
- * struct stat should look like. It turns out that each arch has a different
- * opinion on the subject, and different kernel revs use different names... */
-+#include <features.h>
- #include <bits/kernel_stat.h>
-
-+#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
- extern void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) attribute_hidden;
- extern void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) attribute_hidden;
- #if defined __UCLIBC_HAS_LFS__
- extern void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) attribute_hidden;
- #endif
-+#endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/align64bit.h uClibc-git/libc/sysdeps/linux/common-generic/bits/align64bit.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/align64bit.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common-generic/bits/align64bit.h 2014-07-25 20:36:06.745334366 +0200
-@@ -0,0 +1,17 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _ALIGN_64_BIT_H
-+#define _ALIGN_64_BIT_H
-+
-+/* Simple macro for getting the 64-bit struct arch alignment */
-+
-+struct __longlong_aligned { long long x; };
-+
-+#define __ARCH_64BIT_ALIGNMENT__ \
-+ __attribute__((aligned(__alignof__(struct __longlong_aligned))))
-+
-+#endif /* bits/align64bit.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/dirent.h uClibc-git/libc/sysdeps/linux/common-generic/bits/dirent.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/dirent.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common-generic/bits/dirent.h 2014-07-25 20:36:06.745334366 +0200
-@@ -0,0 +1,53 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _DIRENT_H
-+# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-+#endif
-+
-+#include <bits/align64bit.h>
-+#include <endian.h>
-+
-+struct dirent
-+ {
-+#ifndef __USE_FILE_OFFSET64
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+ __U32_TYPE d_ino;
-+ __U32_TYPE __pad1;
-+ __S32_TYPE d_off;
-+ __S32_TYPE __pad2;
-+# else
-+ __U32_TYPE __pad1;
-+ __U32_TYPE d_ino;
-+ __S32_TYPE __pad2;
-+ __S32_TYPE d_off;
-+# endif /* __LITTLE_ENDIAN */
-+#else
-+ __U64_TYPE d_ino;
-+ __S64_TYPE d_off;
-+#endif
-+ unsigned short int d_reclen;
-+ unsigned char d_type;
-+ char d_name[256]; /* We must not include limits.h! */
-+ } __ARCH_64BIT_ALIGNMENT__;
-+
-+#ifdef __USE_LARGEFILE64
-+struct dirent64
-+ {
-+ __U64_TYPE d_ino;
-+ __S64_TYPE d_off;
-+ unsigned short int d_reclen;
-+ unsigned char d_type;
-+ char d_name[256]; /* We must not include limits.h! */
-+ };
-+#endif
-+
-+#define d_fileno d_ino /* Backwards compatibility. */
-+
-+#undef _DIRENT_HAVE_D_NAMLEN
-+#define _DIRENT_HAVE_D_RECLEN
-+#define _DIRENT_HAVE_D_OFF
-+#define _DIRENT_HAVE_D_TYPE
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/kernel_stat.h uClibc-git/libc/sysdeps/linux/common-generic/bits/kernel_stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/kernel_stat.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common-generic/bits/kernel_stat.h 2014-07-25 20:36:06.745334366 +0200
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _BITS_STAT_STRUCT_H
-+#define _BITS_STAT_STRUCT_H
-+
-+#include <sys/stat.h>
-+
-+/*
-+ * The stat structure defined in
-+ * libc/sysdeps/linux/common-generic/bits/stat.h
-+ * is the same as the kernel one for new architectures
-+ *
-+ * For the common-generic ABI we really don't need this file at all
-+ * However that requires more #ifndef in relevant wrappers,
-+ * further uglifying them
-+ */
-+#if defined __UCLIBC_HAS_LFS__
-+#define kernel_stat64 stat64
-+#else
-+#define kernel_stat64 stat
-+#endif
-+
-+#endif /* _BITS_STAT_STRUCT_H */
-+
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/statfs.h uClibc-git/libc/sysdeps/linux/common-generic/bits/statfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common-generic/bits/statfs.h 2014-07-25 20:36:06.745334366 +0200
-@@ -0,0 +1,78 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _SYS_STATFS_H
-+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-+#endif
-+
-+#include <endian.h>
-+#include <bits/align64bit.h>
-+#include <bits/types.h>
-+
-+
-+struct statfs
-+ {
-+ __U32_TYPE f_type;
-+ __U32_TYPE f_bsize;
-+#ifndef __USE_FILE_OFFSET64
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+ __U32_TYPE f_blocks;
-+ __U32_TYPE __pad1;
-+ __U32_TYPE f_bfree;
-+ __U32_TYPE __pad2;
-+ __U32_TYPE f_bavail;
-+ __U32_TYPE __pad3;
-+ __U32_TYPE f_files;
-+ __U32_TYPE __pad4;
-+ __U32_TYPE f_ffree;
-+ __U32_TYPE __pad5;
-+# else
-+ __U32_TYPE __pad1;
-+ __U32_TYPE f_blocks;
-+ __U32_TYPE __pad2;
-+ __U32_TYPE f_bfree;
-+ __U32_TYPE __pad3;
-+ __U32_TYPE f_bavail;
-+ __U32_TYPE __pad4;
-+ __U32_TYPE f_files;
-+ __U32_TYPE __pad5;
-+ __U32_TYPE f_ffree;
-+# endif /* __LITTLE_ENDIAN */
-+#else
-+ __U64_TYPE f_blocks;
-+ __U64_TYPE f_bfree;
-+ __U64_TYPE f_bavail;
-+ __U64_TYPE f_files;
-+ __U64_TYPE f_ffree;
-+#endif /* __USE_FILE_OFFSET64 */
-+ __fsid_t f_fsid;
-+ __U32_TYPE f_namelen;
-+ __U32_TYPE f_frsize;
-+ __U32_TYPE f_flags;
-+ __U32_TYPE f_spare[4];
-+ } __ARCH_64BIT_ALIGNMENT__;
-+
-+#ifdef __USE_LARGEFILE64
-+struct statfs64
-+ {
-+ __U32_TYPE f_type;
-+ __U32_TYPE f_bsize;
-+ __U64_TYPE f_blocks;
-+ __U64_TYPE f_bfree;
-+ __U64_TYPE f_bavail;
-+ __U64_TYPE f_files;
-+ __U64_TYPE f_ffree;
-+ __fsid_t f_fsid;
-+ __U32_TYPE f_namelen;
-+ __U32_TYPE f_frsize;
-+ __U32_TYPE f_flags;
-+ __U32_TYPE f_spare[4];
-+ };
-+#endif
-+
-+/* Tell code we have these members. */
-+#define _STATFS_F_NAMELEN
-+#define _STATFS_F_FRSIZE
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/stat.h uClibc-git/libc/sysdeps/linux/common-generic/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/stat.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/common-generic/bits/stat.h 2014-07-25 20:36:06.745334366 +0200
-@@ -0,0 +1,195 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _SYS_STAT_H
-+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-+#endif
-+
-+#include <bits/align64bit.h>
-+#include <endian.h>
-+
-+/* Versions of the `struct stat' data structure. */
-+#define _STAT_VER_LINUX_OLD 1
-+#define _STAT_VER_KERNEL 1
-+#define _STAT_VER_SVR4 2
-+#define _STAT_VER_LINUX 3
-+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
-+
-+/* Versions of the `xmknod' interface. */
-+#define _MKNOD_VER_LINUX 1
-+#define _MKNOD_VER_SVR4 2
-+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-+
-+/*
-+ * For 32-bit architectures, this struct is similar to the stat64 but it
-+ * uses 32-bit members along with 32-bit padding. For 64-bit architectures
-+ * this struct is exactly the same with the stat64 one
-+ */
-+struct stat
-+ {
-+#ifndef __USE_FILE_OFFSET64
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+ unsigned long st_dev; /* Device. */
-+ unsigned long __pad1;
-+ unsigned long st_ino; /* 32bit file serial number. */
-+ unsigned long __pad2;
-+ unsigned int st_mode; /* File mode. */
-+ unsigned int st_nlink; /* Link count. */
-+ unsigned int st_uid; /* User ID of the file's owner. */
-+ unsigned int st_gid; /* Group ID of the file's group.*/
-+ unsigned long st_rdev; /* Device number, if device. */
-+ unsigned long __pad3;
-+ unsigned long long __pad4;
-+ long st_size; /* SIze of file, in bytes. */
-+ long __pad5;
-+ int st_blksize; /* Optimal block size for I/O. */
-+ int __pad6;
-+ long st_blocks; /* Number 512-byte blocks allocated */
-+ long __pad7;
-+# else
-+ unsigned long __pad1;
-+ unsigned long st_dev; /* Device. */
-+ unsigned long __pad2;
-+ unsigned long st_ino; /* 32bit file serial number. */
-+ unsigned int st_mode; /* File mode. */
-+ unsigned int st_nlink; /* Link count. */
-+ unsigned int st_uid; /* User ID of the file's owner. */
-+ unsigned int st_gid; /* Group ID of the file's group.*/
-+ unsigned long __pad3;
-+ unsigned long st_rdev; /* Device number, if device. */
-+ unsigned long long __pad4;
-+ long __pad5;
-+ long st_size; /* Size of file, in bytes. */
-+ int st_blksize; /* Optimal block size for I/O. */
-+ int __pad6;
-+ long __pad7;
-+ long st_blocks; /* Number 512-byte blocks allocated */
-+# endif /* __LITTLE_ENDIAN */
-+#else
-+ unsigned long long st_dev; /* Device. */
-+ unsigned long long st_ino; /* 32bit file serial number. */
-+ unsigned int st_mode; /* File mode. */
-+ unsigned int st_nlink; /* Link count. */
-+ unsigned int st_uid; /* User ID of the file's owner. */
-+ unsigned int st_gid; /* Group ID of the file's group.*/
-+ unsigned long long st_rdev; /* Device number, if device. */
-+ unsigned long long _pad1;
-+ long long st_size; /* SIze of file, in bytes. */
-+ int st_blksize; /* Optimal block size for I/O. */
-+ int __pad2;
-+ long long st_blocks; /* Number 512-byte blocks allocated */
-+#endif
-+#ifdef __USE_MISC
-+ /* Nanosecond resolution timestamps are stored in a format
-+ equivalent to 'struct timespec'. This is the type used
-+ whenever possible but the Unix namespace rules do not allow the
-+ identifier 'timespec' to appear in the <sys/stat.h> header.
-+ Therefore we have to handle the use of this header in strictly
-+ standard-compliant sources special. */
-+ struct timespec st_atim; /* Time of last access. */
-+ struct timespec st_mtim; /* Time of last modification. */
-+ struct timespec st_ctim; /* Time of last status change. */
-+# define st_atime st_atim.tv_sec /* Backward compatibility. */
-+# define st_mtime st_mtim.tv_sec
-+# define st_ctime st_ctim.tv_sec
-+#else
-+# ifndef __USE_FILE_OFFSET64
-+ long st_atime; /* Time of last access. */
-+ unsigned long st_atime_nsec;
-+ long st_mtime; /* Time of last modification. */
-+ unsigned long st_mtime_nsec;
-+ long st_ctime; /* Time of last status change. */
-+ unsigned long st_ctime_nsec;
-+# else
-+ int st_atime; /* Time of last access. */
-+ unsigned int st_atime_nsec;
-+ int st_mtime; /* Time of last modification. */
-+ unsigned int st_mtime_nsec;
-+ int st_ctime; /* Time of last status change. */
-+ unsigned int st_ctime_nsec;
-+# endif
-+#endif
-+ unsigned int __unused4;
-+ unsigned int __unused5;
-+ } __ARCH_64BIT_ALIGNMENT__;
-+
-+
-+#ifdef __USE_LARGEFILE64
-+struct stat64
-+ {
-+ unsigned long long st_dev; /* Device. */
-+ unsigned long long st_ino; /* 32bit file serial number. */
-+ unsigned int st_mode; /* File mode. */
-+ unsigned int st_nlink; /* Link count. */
-+ unsigned int st_uid; /* User ID of the file's owner. */
-+ unsigned int st_gid; /* Group ID of the file's group.*/
-+ unsigned long long st_rdev; /* Device number, if device. */
-+ unsigned long long __pad3;
-+ long long st_size; /* Size of file, in bytes. */
-+ int st_blksize; /* Optimal block size for I/O. */
-+ int __pad4;
-+ long long st_blocks; /* Number 512-byte blocks allocated */
-+# ifdef __USE_MISC
-+ /* Nanosecond resolution timestamps are stored in a format
-+ equivalent to 'struct timespec'. This is the type used
-+ whenever possible but the Unix namespace rules do not allow the
-+ identifier 'timespec' to appear in the <sys/stat.h> header.
-+ Therefore we have to handle the use of this header in strictly
-+ standard-compliant sources special. */
-+ struct timespec st_atim; /* Time of last access. */
-+ struct timespec st_mtim; /* Time of last modification. */
-+ struct timespec st_ctim; /* Time of last status change. */
-+# else
-+ int st_atime; /* Time of last access. */
-+ unsigned int st_atime_nsec;
-+ int st_mtime; /* Time of last modification. */
-+ unsigned int st_mtime_nsec;
-+ int st_ctime; /* Time of last status change. */
-+ unsigned int st_ctime_nsec;
-+# endif
-+ unsigned int __unused4;
-+ unsigned int __unused5;
-+};
-+#endif
-+
-+/* Tell code we have these members. */
-+#define _STATBUF_ST_BLKSIZE
-+#define _STATBUF_ST_RDEV
-+/* Nanosecond resolution time values are supported. */
-+#define _STATBUF_ST_NSEC
-+
-+/* Encoding of the file mode. */
-+
-+#define __S_IFMT 0170000 /* These bits determine file type. */
-+
-+/* File types. */
-+#define __S_IFDIR 0040000 /* Directory. */
-+#define __S_IFCHR 0020000 /* Character device. */
-+#define __S_IFBLK 0060000 /* Block device. */
-+#define __S_IFREG 0100000 /* Regular file. */
-+#define __S_IFIFO 0010000 /* FIFO. */
-+#define __S_IFLNK 0120000 /* Symbolic link. */
-+#define __S_IFSOCK 0140000 /* Socket. */
-+
-+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
-+ they do it by enforcing the correct use of the macros. */
-+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
-+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
-+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
-+
-+/* Protection bits. */
-+
-+#define __S_ISUID 04000 /* Set user ID on execution. */
-+#define __S_ISGID 02000 /* Set group ID on execution. */
-+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
-+#define __S_IREAD 0400 /* Read by owner. */
-+#define __S_IWRITE 0200 /* Write by owner. */
-+#define __S_IEXEC 0100 /* Execute by owner. */
-+
-+#ifdef __USE_ATFILE
-+# define UTIME_NOW ((1l << 30) - 1l)
-+# define UTIME_OMIT ((1l << 30) - 2l)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/fcntl.h uClibc-git/libc/sysdeps/linux/cris/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/fcntl.h 2014-07-25 20:36:06.833334827 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/cris/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/kernel_types.h 2014-07-25 20:36:06.833334827 +0200
-@@ -28,6 +28,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- #ifdef __GNUC__
- typedef long long __kernel_loff_t;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/setjmp.h uClibc-git/libc/sysdeps/linux/cris/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/setjmp.h 2014-07-25 20:36:06.833334827 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
-+/* Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,11 +12,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--/* Define the machine-dependent type `jmp_buf'. CRIS version. */
-+/* Define the machine-dependent type `jmp_buf', CRIS version. */
- #ifndef _BITS_SETJMP_H
- #define _BITS_SETJMP_H 1
-
-@@ -24,10 +23,8 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--/*
-- Note that we save and restore CCR to be able to
-- correctly handle DI/EI. Note also that the "move x,ccr" does NOT affect
-- the DMA enable bits (E and D).
-+/* Note that saving and restoring CCR has no meaning in user mode, so we
-+ don't actually do it; the slot is now reserved.
-
- jmp_buf[0] - PC
- jmp_buf[1] - SP (R14)
-@@ -46,21 +43,8 @@
- jmp_buf[14] - R1
- jmp_buf[15] - R0
- jmp_buf[16] - SRP
-- jmp_buf[17] - CCR
-- */
-+ jmp_buf[17] - CCR */
-
--#define _JBLEN 18
--#if defined (__USE_MISC) || defined (_ASM)
--#define JB_SP 1
--#endif
--
--#ifndef _ASM
--typedef int __jmp_buf[_JBLEN];
--#endif
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-+typedef int __jmp_buf[18];
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/cris/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/stackinfo.h 2014-07-25 20:36:06.833334827 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/termios.h uClibc-git/libc/sysdeps/linux/cris/bits/termios.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/termios.h 2014-07-25 20:36:06.833334827 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TERMIOS_H
- # error "Never include <bits/termios.h> directly; use <termios.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h 2014-07-25 20:36:06.833334827 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #define __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_page.h 2014-07-25 20:36:06.833334827 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/wordsize.h uClibc-git/libc/sysdeps/linux/cris/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/bits/wordsize.h 2014-07-25 20:36:06.833334827 +0200
-@@ -13,7 +13,6 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/clone.S uClibc-git/libc/sysdeps/linux/cris/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/clone.S 2014-07-25 20:36:06.833334827 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/fork.c uClibc-git/libc/sysdeps/linux/cris/fork.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/fork.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,18 +0,0 @@
--/*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include "sysdep.h"
--
--#define __NR___libc_fork __NR_fork
--SYSCALL__ (__libc_fork, 0)
-- /* R1 is now 0 for the parent and 1 for the child. Decrement it to
-- make it -1 (all bits set) for the parent, and 0 (no bits set)
-- for the child. Then AND it with R0, so the parent gets
-- R0&-1==R0, and the child gets R0&0==0. */
-- /* i dunno what the blurb above is useful for. we just return. */
--__asm__("ret\n\tnop");
--weak_alias(__libc_fork,fork)
--libc_hidden_weak(fork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/cris/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/cris/jmpbuf-offsets.h 2014-07-25 20:36:06.833334827 +0200
-@@ -0,0 +1,8 @@
-+/* Private macros for accessing __jmp_buf contents. BFIN version. */
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define JB_SP 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/cris/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/cris/jmpbuf-unwind.h 2014-07-25 20:36:06.833334827 +0200
-@@ -0,0 +1,12 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/__longjmp.S uClibc-git/libc/sysdeps/linux/cris/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/__longjmp.S 2014-07-25 20:36:06.813334722 +0200
-@@ -14,14 +14,9 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
- #include "sysdep.h"
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
-
- .syntax no_register_prefix
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/Makefile.arch uClibc-git/libc/sysdeps/linux/cris/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/Makefile.arch 2014-07-25 20:36:06.813334722 +0200
-@@ -5,9 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := __init_brk.c brk.c sbrk.c
-+CSRC-y := __init_brk.c brk.c sbrk.c
-
--SSRC := setjmp.S __longjmp.S clone.S sysdep.S syscall.S vfork.S
--ifeq ($(UNIFIED_SYSCALL),y)
--SSRC += __uClibc_syscall.S
--endif
-+SSRC-y := setjmp.S __longjmp.S clone.S sysdep.S syscall.S vfork.S
-+SSRC-$(UNIFIED_SYSCALL) += __uClibc_syscall.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/setjmp.S uClibc-git/libc/sysdeps/linux/cris/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/setjmp.S 2014-07-25 20:36:06.833334827 +0200
-@@ -14,13 +14,9 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
-
- .syntax no_register_prefix
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/procfs.h uClibc-git/libc/sysdeps/linux/cris/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/sys/procfs.h 2014-07-25 20:36:06.841334869 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/ucontext.h uClibc-git/libc/sysdeps/linux/cris/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/sys/ucontext.h 2014-07-25 20:36:06.841334869 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* System V/cris ABI compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/syscall.S uClibc-git/libc/sysdeps/linux/cris/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/syscall.S 2014-07-25 20:36:06.841334869 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.h uClibc-git/libc/sysdeps/linux/cris/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/sysdep.h 2014-07-25 20:36:06.841334869 +0200
-@@ -14,13 +14,12 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYSDEP_H_
- #define _SYSDEP_H_
-
--#include <sys/syscall.h>
-+#include <common/sysdep.h>
-
- #ifndef C_LABEL
-
-@@ -126,6 +125,14 @@
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
- .align ALIGNARG (2) @ \
- C_LABEL(name)
-+
-+#define HIDDEN_ENTRY(name) \
-+ .text @ \
-+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (name) @ \
-+ .hidden C_SYMBOL_NAME (name) @ \
-+ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
-+ .align ALIGNARG (2) @ \
-+ C_LABEL(name)
-
- #undef END
- #define END(name) \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.S uClibc-git/libc/sysdeps/linux/cris/sysdep.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/sysdep.S 2014-07-25 20:36:06.841334869 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include "sysdep.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/vfork.S uClibc-git/libc/sysdeps/linux/cris/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/cris/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/cris/vfork.S 2014-07-25 20:36:06.841334869 +0200
-@@ -16,7 +16,7 @@
- * enclosing function
- */
-
--ENTRY(__vfork)
-+HIDDEN_ENTRY(__vfork)
- movu.w __NR_vfork,$r9
- break 13
- cmps.w -4096,$r10
-@@ -27,4 +27,4 @@
- PSEUDO_END(__vfork)
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fcntl.h uClibc-git/libc/sysdeps/linux/e1/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/fcntl.h 2014-07-25 20:36:06.865334995 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenv.h uClibc-git/libc/sysdeps/linux/e1/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/fenv.h 2014-07-25 20:36:06.865334995 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenvinline.h uClibc-git/libc/sysdeps/linux/e1/bits/fenvinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenvinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/fenvinline.h 2014-07-25 20:36:06.865334995 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_MATH_INLINES
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/e1/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/kernel_types.h 2014-07-25 20:36:06.865334995 +0200
-@@ -31,6 +31,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- /*
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h 2014-07-25 20:36:06.865334995 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/unistd.h uClibc-git/libc/sysdeps/linux/e1/bits/unistd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/unistd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/unistd.h 2014-07-25 20:36:06.865334995 +0200
-@@ -378,13 +378,6 @@
- return (type)(par1); \
- }
-
--#include <sys/types.h>
--/* Taken from <bits/errno.h> */
--#ifndef _LIBC
--/* We don't support pthreads for the moment*/
--#define __set_errno(val) ((errno) = (val))
--#endif
--
- #if 0
- #define _syscall3(type, name,atype, a , btype, b, ctype, c) \
- type name(atype a, btype b, ctype c,) \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/wordsize.h uClibc-git/libc/sysdeps/linux/e1/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/bits/wordsize.h 2014-07-25 20:36:06.865334995 +0200
-@@ -15,8 +15,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/crt1.c uClibc-git/libc/sysdeps/linux/e1/crt1.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/crt1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/crt1.c 2014-07-25 20:36:06.865334995 +0200
-@@ -18,8 +18,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Stick in a dummy reference to main(), so that if an application
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/Makefile uClibc-git/libc/sysdeps/linux/e1/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/Makefile 2014-07-25 20:36:06.853334932 +0200
-@@ -17,7 +17,7 @@
- CTOR_TARGETS := $(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
-
- # why is crt1.c listed in CSRC ?
--CSRC := crt1.c syscalls.c longjmp.c setjmp.c vfork.c
-+CSRC := crt1.c syscalls.c longjmp.c setjmp.c
- OBJS := $(patsubst %.c,%.o, $(CSRC))
-
- OBJ_LIST := ../../../obj.sysdeps.$(TARGET_ARCH)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/procfs.h uClibc-git/libc/sysdeps/linux/e1/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/sys/procfs.h 2014-07-25 20:36:06.877335057 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/reg.h uClibc-git/libc/sysdeps/linux/e1/sys/reg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/sys/reg.h 2014-07-25 20:36:06.877335057 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_REG_H
- #define _SYS_REG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/ucontext.h uClibc-git/libc/sysdeps/linux/e1/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/sys/ucontext.h 2014-07-25 20:36:06.877335057 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* System V/m68k ABI compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/vfork.c uClibc-git/libc/sysdeps/linux/e1/vfork.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/e1/vfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/e1/vfork.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,14 +0,0 @@
--/*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <errno.h>
--
--#define __NR___vfork __NR_vfork
--attribute_hidden _syscall0(pid_t, __vfork)
--weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/elf-fdpic.h uClibc-git/libc/sysdeps/linux/frv/bits/elf-fdpic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/elf-fdpic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/elf-fdpic.h 2014-07-25 20:36:06.905335205 +0200
-@@ -22,8 +22,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_ELF_FDPIC_H
- #define _BITS_ELF_FDPIC_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/fcntl.h uClibc-git/libc/sysdeps/linux/frv/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/fcntl.h 2014-07-25 20:36:06.905335205 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/setjmp.h uClibc-git/libc/sysdeps/linux/frv/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/setjmp.h 2014-07-25 20:36:06.905335205 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. FRV version. */
-
-@@ -35,7 +34,6 @@
- #define __SETJMP_FP (__SETJMP_SP+1)
-
-
--#ifndef _ASM
- typedef struct
- /* Demand 64-bit alignment such that we can use std/ldd in
- setjmp/longjmp. */
-@@ -48,11 +46,5 @@
- unsigned long __sp; /* stack pointer */
- unsigned long __fp; /* frame pointer */
- } __jmp_buf[1];
--#endif
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)->__sp)
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/frv/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/stackinfo.h 2014-07-25 20:36:06.905335205 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stat.h uClibc-git/libc/sysdeps/linux/frv/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/stat.h 2014-07-25 20:36:06.905335205 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/syscalls.h uClibc-git/libc/sysdeps/linux/frv/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/syscalls.h 2014-07-25 20:36:06.905335205 +0200
-@@ -15,8 +15,7 @@
- # define __syscall_return(type, res) \
- do { \
- unsigned long __sr2 = (res); \
-- if (__builtin_expect ((unsigned long)(__sr2) \
-- >= (unsigned long)(-4095), 0)) { \
-+ if (unlikely ((unsigned long)(__sr2) >= (unsigned long)(-4095))) { \
- extern int __syscall_error (int); \
- return (type) __syscall_error (__sr2); \
- } \
-@@ -26,8 +25,7 @@
- # define __syscall_return(type, res) \
- do { \
- unsigned long __sr2 = (res); \
-- if (__builtin_expect ((unsigned long)(__sr2) \
-- >= (unsigned long)(-4095), 0)) { \
-+ if (unlikely ((unsigned long)(__sr2) >= (unsigned long)(-4095))) { \
- __set_errno (-__sr2); \
- __sr2 = -1; \
- } \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h 2014-07-25 20:36:06.905335205 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_page.h 2014-07-25 20:36:06.905335205 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/wordsize.h uClibc-git/libc/sysdeps/linux/frv/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/bits/wordsize.h 2014-07-25 20:36:06.905335205 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/clone.S uClibc-git/libc/sysdeps/linux/frv/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/clone.S 2014-07-25 20:36:06.905335205 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crt0.S uClibc-git/libc/sysdeps/linux/frv/crt0.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crt0.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/crt0.S 2014-07-25 20:36:06.905335205 +0200
-@@ -22,8 +22,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
-
- /* Based on ../i386/crt0.S and newlib's libgloss/frv/crt0.S */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crti.S uClibc-git/libc/sysdeps/linux/frv/crti.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crti.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/crti.S 2014-07-25 20:36:06.905335205 +0200
-@@ -22,8 +22,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- .section .init,"x"
- .p2align 2
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtn.S uClibc-git/libc/sysdeps/linux/frv/crtn.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtn.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/crtn.S 2014-07-25 20:36:06.905335205 +0200
-@@ -22,8 +22,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- .section .init,"x"
- .globl _init
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtreloc.c uClibc-git/libc/sysdeps/linux/frv/crtreloc.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtreloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/crtreloc.c 2014-07-25 20:36:06.905335205 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <link.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/dl-iterate-phdr.c uClibc-git/libc/sysdeps/linux/frv/dl-iterate-phdr.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/dl-iterate-phdr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/dl-iterate-phdr.c 2014-07-25 20:36:06.905335205 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #include <link.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/fstat64.c uClibc-git/libc/sysdeps/linux/frv/fstat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/fstat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/fstat64.c 2014-07-25 20:36:06.909335225 +0200
-@@ -9,11 +9,9 @@
- * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/stat.h>
-
--#ifdef __UCLIBC_HAS_LFS__
- _syscall2(int, fstat64, int, fd, struct stat64 *, buf)
- libc_hidden_def(fstat64)
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/frv/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/frv/jmpbuf-unwind.h 2014-07-25 20:36:06.909335225 +0200
-@@ -0,0 +1,14 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->__sp)
-+
-+#endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/__longjmp.S uClibc-git/libc/sysdeps/linux/frv/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/__longjmp.S 2014-07-25 20:36:06.889335121 +0200
-@@ -4,10 +4,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
--
- # setjmp/longjmp for Frv. The jmpbuf looks like this:
- #
- # Register jmpbuf offset
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/lstat64.c uClibc-git/libc/sysdeps/linux/frv/lstat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/lstat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/lstat64.c 2014-07-25 20:36:06.909335225 +0200
-@@ -9,11 +9,9 @@
- * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/stat.h>
-
--#ifdef __UCLIBC_HAS_LFS__
- _syscall2(int, lstat64, const char *, file_name, struct stat64 *, buf)
- libc_hidden_def(lstat64)
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/Makefile uClibc-git/libc/sysdeps/linux/frv/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/Makefile 2014-07-25 20:36:06.889335121 +0200
-@@ -17,7 +17,7 @@
- SSRC := __longjmp.S setjmp.S clone.S vfork.S
- SOBJ := $(patsubst %.S,%.o, $(SSRC))
-
--CSRC = mmap.c sysdep.c syscall.c brk.c sbrk.c __init_brk.c dl-iterate-phdr.c
-+CSRC = sysdep.c syscall.c brk.c sbrk.c __init_brk.c dl-iterate-phdr.c
- CSRC += xstatconv.c stat.c stat64.c fstat.c fstat64.c lstat.c lstat64.c
- COBJ := $(patsubst %.c,%.o, $(CSRC))
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/mmap.c uClibc-git/libc/sysdeps/linux/frv/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,50 +0,0 @@
--/* Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
-- Contributed by Daniel Jacobowitz <dan@debian.org>, 1999.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--/* Massivly hacked up for uClibc by Erik Andersen */
--
--/* Extracted from ../common/mmap64.c by Alexandre Oliva <aoliva@redhat.com>
--
-- We don't want to use the old mmap interface. */
--
--#include <features.h>
--#include <errno.h>
--#include <unistd.h>
--#include <sys/syscall.h>
--#include <sys/mman.h>
--
--
--#define __NR___syscall_mmap2 __NR_mmap2
--static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr,
-- size_t, len, int, prot, int, flags, int, fd, off_t, offset)
--
--/* This is always 12, even on architectures where PAGE_SHIFT != 12. */
--# ifndef MMAP2_PAGE_SHIFT
--# define MMAP2_PAGE_SHIFT 12
--# endif
--
--__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
--{
-- if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) {
-- __set_errno (EINVAL);
-- return MAP_FAILED;
-- }
-- return(__syscall_mmap2(addr, len, prot, flags, fd, (off_t) (offset >> MMAP2_PAGE_SHIFT)));
--}
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/stat64.c uClibc-git/libc/sysdeps/linux/frv/stat64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/stat64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/stat64.c 2014-07-25 20:36:06.909335225 +0200
-@@ -9,11 +9,9 @@
- * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
- */
-
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
--#include <unistd.h>
- #include <sys/stat.h>
-
--#ifdef __UCLIBC_HAS_LFS__
- _syscall2(int, stat64, const char *, file_name, struct stat64 *, buf)
- libc_hidden_def(stat64)
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/procfs.h uClibc-git/libc/sysdeps/linux/frv/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/sys/procfs.h 2014-07-25 20:36:06.921335288 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ptrace.h uClibc-git/libc/sysdeps/linux/frv/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/sys/ptrace.h 2014-07-25 20:36:06.921335288 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ucontext.h uClibc-git/libc/sysdeps/linux/frv/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/sys/ucontext.h 2014-07-25 20:36:06.925335309 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/syscall.c uClibc-git/libc/sysdeps/linux/frv/syscall.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/syscall.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/syscall.c 2014-07-25 20:36:06.925335309 +0200
-@@ -13,8 +13,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sysdep.c uClibc-git/libc/sysdeps/linux/frv/sysdep.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sysdep.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/sysdep.c 2014-07-25 20:36:06.925335309 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/vfork.S uClibc-git/libc/sysdeps/linux/frv/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/frv/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/frv/vfork.S 2014-07-25 20:36:06.925335309 +0200
-@@ -13,15 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <features.h>
--
--#include <asm/unistd.h>
--#define _ERRNO_H 1
--#include <bits/errno.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sys/syscall.h>
-
- .text
- .globl __vfork
-@@ -44,4 +39,4 @@
- .size __vfork,.-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/byteswap.h uClibc-git/libc/sysdeps/linux/h8300/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/byteswap.h 2014-07-25 20:36:06.961335497 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _ASM_BITS_BYTESWAP_H
- #define _ASM_BITS_BYTESWAP_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/fcntl.h uClibc-git/libc/sysdeps/linux/h8300/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/fcntl.h 2014-07-25 20:36:06.969335539 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/h8300/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/kernel_types.h 2014-07-25 20:36:06.969335539 +0200
-@@ -32,6 +32,8 @@
- typedef unsigned short __kernel_old_gid_t;
- typedef long long __kernel_loff_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- #ifdef __USE_ALL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/setjmp.h uClibc-git/libc/sysdeps/linux/h8300/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/setjmp.h 2014-07-25 20:36:06.969335539 +0200
-@@ -9,24 +9,10 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
--
- typedef struct
- {
- unsigned long __regs[4]; /* save er4 - er7(sp) */
- unsigned long __pc; /* the return address */
- } __jmp_buf[1];
-
--#endif /* _ASM */
--
--#define JB_REGS 0
--#define JB_PC 16
--#define JB_SIZE 20
--
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)->__regs[3])
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h 2014-07-25 20:36:06.969335539 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT int _code, struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS _code,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/h8300/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/stackinfo.h 2014-07-25 20:36:06.969335539 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h 2014-07-25 20:36:06.969335539 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/h8300/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bsd-setjmp.S 2014-07-25 20:36:06.969335539 +0200
-@@ -1,8 +1,6 @@
- /* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'. H8/300 version. */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- #ifdef __H8300S__
- .h8300s
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/h8300/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/bsd-_setjmp.S 2014-07-25 20:36:06.969335539 +0200
-@@ -1,8 +1,6 @@
- /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. H8/300 version. */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- #ifdef __H8300S__
- .h8300s
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/crt0.S uClibc-git/libc/sysdeps/linux/h8300/crt0.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/crt0.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/crt0.S 2014-07-25 20:36:06.969335539 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-offsets.h 2014-07-25 20:36:06.969335539 +0200
-@@ -0,0 +1,9 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define JB_REGS 0
-+#define JB_PC 16
-+#define JB_SIZE 20
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-unwind.h 2014-07-25 20:36:06.969335539 +0200
-@@ -0,0 +1,12 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->__regs[3])
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/__longjmp.S uClibc-git/libc/sysdeps/linux/h8300/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/__longjmp.S 2014-07-25 20:36:06.937335372 +0200
-@@ -20,3 +20,5 @@
- mov.l @er0+,er3 ; return PC
- adds #4,sp ; adjust return stack
- jmp @er3
-+
-+libc_hidden_def(__longjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/setjmp.S uClibc-git/libc/sysdeps/linux/h8300/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/setjmp.S 2014-07-25 20:36:06.969335539 +0200
-@@ -1,6 +1,4 @@
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- #ifdef __H8300S__
- .h8300s
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/procfs.h uClibc-git/libc/sysdeps/linux/h8300/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/sys/procfs.h 2014-07-25 20:36:06.981335603 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/ucontext.h uClibc-git/libc/sysdeps/linux/h8300/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/sys/ucontext.h 2014-07-25 20:36:06.981335603 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* H8/300 compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/vfork.S uClibc-git/libc/sysdeps/linux/h8300/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/h8300/vfork.S 2014-07-25 20:36:06.981335603 +0200
-@@ -1,5 +1,5 @@
-
--#include <asm/unistd.h>
-+#include <sys/syscall.h>
-
- #ifndef __NR_vfork
- #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
-@@ -12,7 +12,6 @@
- #endif
- .text
- .align 2
-- .globl _errno
- .globl ___vfork
- .hidden ___vfork
- .type ___vfork,@function
-@@ -38,4 +37,4 @@
- jmp @er1 /* don't return, just jmp directly */
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/add_n.s uClibc-git/libc/sysdeps/linux/hppa/add_n.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/add_n.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/add_n.s 2014-07-25 20:36:06.989335644 +0200
-@@ -16,9 +16,8 @@
- ;! License for more details.
-
- ;! You should have received a copy of the GNU Lesser General Public License
--;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
--;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
--;! MA 02111-1307, USA.
-+;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
-+;! <http://www.gnu.org/licenses/>.
-
-
- ;! INPUT PARAMETERS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/atomic.h uClibc-git/libc/sysdeps/linux/hppa/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/atomic.h 2014-07-25 20:36:07.001335707 +0200
-@@ -13,11 +13,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdint.h>
-+#include <errno.h>
- #include <bits/kernel-features.h>
-
- #define ABORT_INSTRUCTION __asm__(__UCLIBC_ABORT_INSTRUCTION__)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/eventfd.h uClibc-git/libc/sysdeps/linux/hppa/bits/eventfd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/eventfd.h 2014-07-25 20:36:07.001335707 +0200
-@@ -0,0 +1,32 @@
-+/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for signalfd. */
-+enum
-+ {
-+ EFD_SEMAPHORE = 000000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+ EFD_CLOEXEC = 010000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+/* the below value looks suspicious, should be 000200004 for consistency */
-+ EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+ };
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fcntl.h uClibc-git/libc/sysdeps/linux/hppa/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/fcntl.h 2014-07-25 20:36:07.001335707 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fenv.h uClibc-git/libc/sysdeps/linux/hppa/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/fenv.h 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/ipc.h uClibc-git/libc/sysdeps/linux/hppa/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/ipc.h 2014-07-25 20:36:07.001335707 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h 2014-07-25 20:36:07.001335707 +0200
-@@ -12,12 +12,4 @@
- unsigned long sa_flags;
- };
-
--/* In uclibc, userspace struct sigaction is identical to
-- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
-- * See sigaction.h
-- */
--
--extern int __syscall_rt_sigaction (int, const struct sigaction *,
-- struct sigaction *, size_t) attribute_hidden;
--
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_types.h 2014-07-25 20:36:07.001335707 +0200
-@@ -45,6 +45,8 @@
- typedef unsigned long long __kernel_ino64_t;
-
- typedef unsigned int __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- #ifdef __USE_ALL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/mman.h uClibc-git/libc/sysdeps/linux/hppa/bits/mman.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/mman.h 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-@@ -45,7 +44,7 @@
- #define MAP_GROWSDOWN 0x8000 /* stack-like segment */
- #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
- #define MAP_NONBLOCK 0x20000 /* do not block on IO */
--#define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+#define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
-
- #define MS_SYNC 1 /* synchronous memory sync */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/setjmp.h uClibc-git/libc/sysdeps/linux/hppa/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/setjmp.h 2014-07-25 20:36:07.001335707 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2000 Free Software Foundation, Inc.
-+/* Copyright (C) 2000, 2005, 2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. HPPA version. */
- #ifndef _BITS_SETJMP_H
-@@ -29,17 +28,6 @@
- easier, and to ensure proper alignment. Naturally, user code should
- not depend on either representation. */
-
--#if defined __USE_MISC || defined _ASM
--#define JB_SP (76/4)
--#endif
--
--#ifndef _ASM
- typedef double __jmp_buf[21];
--#endif
--
--/* Test if longjmp to JMPBUF would unwind the frame containing a local
-- variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
-- ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/sigaction.h uClibc-git/libc/sysdeps/linux/hppa/bits/sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/sigaction.h 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/signum.h uClibc-git/libc/sysdeps/linux/hppa/bits/signum.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/signum.h 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef _SIGNAL_H
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/socket_type.h uClibc-git/libc/sysdeps/linux/hppa/bits/socket_type.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/socket_type.h 2014-07-25 20:36:07.001335707 +0200
-@@ -0,0 +1,54 @@
-+/* Define enum __socket_type for Linux/HP-PARISC.
-+ Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_SOCKET_H
-+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
-+#endif
-+
-+/* Types of sockets. */
-+enum __socket_type
-+{
-+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
-+ byte streams. */
-+#define SOCK_STREAM SOCK_STREAM
-+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
-+ of fixed maximum length. */
-+#define SOCK_DGRAM SOCK_DGRAM
-+ SOCK_RAW = 3, /* Raw protocol interface. */
-+#define SOCK_RAW SOCK_RAW
-+ SOCK_RDM = 4, /* Reliably-delivered messages. */
-+#define SOCK_RDM SOCK_RDM
-+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-+ datagrams of fixed maximum length. */
-+#define SOCK_SEQPACKET SOCK_SEQPACKET
-+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
-+#define SOCK_DCCP SOCK_DCCP
-+ SOCK_PACKET = 10, /* Linux specific way of getting packets
-+ at the dev level. For writing rarp and
-+ other similar things on the user level. */
-+#define SOCK_PACKET SOCK_PACKET
-+
-+ /* Flags to be ORed into the type parameter of socket and socketpair. */
-+
-+ SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
-+ new descriptor(s). */
-+#define SOCK_CLOEXEC SOCK_CLOEXEC
-+ SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
-+ non-blocking. */
-+#define SOCK_NONBLOCK SOCK_NONBLOCK
-+};
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/hppa/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/stackinfo.h 2014-07-25 20:36:07.001335707 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h 2014-07-25 20:36:07.001335707 +0200
-@@ -9,10 +9,10 @@
- #define __UCLIBC_ABORT_INSTRUCTION__ "iitlbp %r0,(%sr0,%r0)"
-
- /* can your target use syscall6() for mmap ? */
--#undef __UCLIBC_MMAP_HAS_6_ARGS__
-+#define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/brk.c uClibc-git/libc/sysdeps/linux/hppa/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/brk.c 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/hppa/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bsd-setjmp.S 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/hppa/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/bsd-_setjmp.S 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/clone.S uClibc-git/libc/sysdeps/linux/hppa/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/clone.S 2014-07-25 20:36:07.001335707 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/crt1.S uClibc-git/libc/sysdeps/linux/hppa/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/crt1.S 2014-07-25 20:36:07.001335707 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .import main, code
- .import $global$, data
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-offsets.h 2014-07-25 20:36:07.001335707 +0200
-@@ -0,0 +1,19 @@
-+/* Private macros for accessing __jmp_buf contents. HPPA version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define JB_SP (76/4)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-unwind.h 2014-07-25 20:36:07.001335707 +0200
-@@ -0,0 +1,12 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame containing a local
-+ variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
-+ ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/__longjmp.S uClibc-git/libc/sysdeps/linux/hppa/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/__longjmp.S 2014-07-25 20:36:06.989335644 +0200
-@@ -13,14 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <features.h>
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* __longjmp(jmpbuf, val) */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/lshift.s uClibc-git/libc/sysdeps/linux/hppa/lshift.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/lshift.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/lshift.s 2014-07-25 20:36:07.001335707 +0200
-@@ -15,9 +15,8 @@
- ;! License for more details.
-
- ;! You should have received a copy of the GNU Lesser General Public License
--;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
--;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
--;! MA 02111-1307, USA.
-+;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
-+;! <http://www.gnu.org/licenses/>.
-
-
- ;! INPUT PARAMETERS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/Makefile.arch uClibc-git/libc/sysdeps/linux/hppa/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/Makefile.arch 2014-07-25 20:36:06.989335644 +0200
-@@ -5,7 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := __syscall_error.c brk.c mmap.c syscall.c
-+CSRC-y := __syscall_error.c brk.c syscall.c
-
--SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S \
-+SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S \
- add_n.s lshift.s rshift.s sub_n.s udiv_qrnnd.s
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/mmap.c uClibc-git/libc/sysdeps/linux/hppa/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,19 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * mmap() for uClibc/x86_64
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <errno.h>
--#include <unistd.h>
--#include <sys/mman.h>
--#include <sys/syscall.h>
--
--
--_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
-- int, flags, int, fd, off_t, offset)
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/rshift.s uClibc-git/libc/sysdeps/linux/hppa/rshift.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/rshift.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/rshift.s 2014-07-25 20:36:07.001335707 +0200
-@@ -15,9 +15,8 @@
- ;! License for more details.
-
- ;! You should have received a copy of the GNU Lesser General Public License
--;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
--;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
--;! MA 02111-1307, USA.
-+;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
-+;! <http://www.gnu.org/licenses/>.
-
-
- ;! INPUT PARAMETERS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/setjmp.S uClibc-git/libc/sysdeps/linux/hppa/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/setjmp.S 2014-07-25 20:36:07.001335707 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .text
- .align 4
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sub_n.s uClibc-git/libc/sysdeps/linux/hppa/sub_n.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sub_n.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/sub_n.s 2014-07-25 20:36:07.001335707 +0200
-@@ -16,9 +16,8 @@
- ;! License for more details.
-
- ;! You should have received a copy of the GNU Lesser General Public License
--;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
--;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
--;! MA 02111-1307, USA.
-+;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
-+;! <http://www.gnu.org/licenses/>.
-
-
- ;! INPUT PARAMETERS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/procfs.h uClibc-git/libc/sysdeps/linux/hppa/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/sys/procfs.h 2014-07-25 20:36:07.021335811 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/ucontext.h uClibc-git/libc/sysdeps/linux/hppa/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/sys/ucontext.h 2014-07-25 20:36:07.021335811 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Don't rely on this, the interface is currently messed up and may need to
- be broken to be fixed. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/syscall.c uClibc-git/libc/sysdeps/linux/hppa/syscall.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/syscall.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/syscall.c 2014-07-25 20:36:07.021335811 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdarg.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/udiv_qrnnd.s uClibc-git/libc/sysdeps/linux/hppa/udiv_qrnnd.s
---- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/udiv_qrnnd.s 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/hppa/udiv_qrnnd.s 2014-07-25 20:36:07.021335811 +0200
-@@ -16,9 +16,8 @@
- ;! License for more details.
-
- ;! You should have received a copy of the GNU Lesser General Public License
--;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
--;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
--;! MA 02111-1307, USA.
-+;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
-+;! <http://www.gnu.org/licenses/>.
-
-
- ;! INPUT PARAMETERS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/atomic.h uClibc-git/libc/sysdeps/linux/i386/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/atomic.h 2014-07-25 20:36:07.049335958 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdint.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/byteswap.h uClibc-git/libc/sysdeps/linux/i386/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/byteswap.h 2014-07-25 20:36:07.049335958 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ASM_BITS_BYTESWAP_H
- #define _ASM_BITS_BYTESWAP_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fcntl.h uClibc-git/libc/sysdeps/linux/i386/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/fcntl.h 2014-07-25 20:36:07.049335958 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fenv.h uClibc-git/libc/sysdeps/linux/i386/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/fenv.h 2014-07-25 20:36:07.049335958 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -82,9 +81,9 @@
- fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) -1)
-+#define FE_DFL_ENV ((const fenv_t *) -1)
-
- #ifdef __USE_GNU
- /* Floating-point environment where none of the exception is masked. */
--# define FE_NOMASK_ENV ((__const fenv_t *) -2)
-+# define FE_NOMASK_ENV ((const fenv_t *) -2)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/i386/bits/huge_vall.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/huge_vall.h 2014-07-25 20:36:07.049335958 +0200
-@@ -0,0 +1,42 @@
-+/* `HUGE_VALL' constant for ix86 (where it is infinity).
-+ Used by <stdlib.h> and <math.h> functions for overflow.
-+ Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _MATH_H
-+# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
-+#endif
-+
-+#if __GNUC_PREREQ(3,3)
-+# define HUGE_VALL (__builtin_huge_vall())
-+#elif __GNUC_PREREQ(2,96)
-+# define HUGE_VALL (__extension__ 0x1.0p32767L)
-+#else
-+
-+# define __HUGE_VALL_bytes { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0 }
-+
-+# define __huge_vall_t union { unsigned char __c[12]; long double __ld; }
-+# ifdef __GNUC__
-+# define HUGE_VALL (__extension__ \
-+ ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
-+# else /* Not GCC. */
-+static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
-+# define HUGE_VALL (__huge_vall.__ld)
-+# endif /* GCC. */
-+
-+#endif /* GCC 2.95 */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/i386/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/kernel_types.h 2014-07-25 20:36:07.049335958 +0200
-@@ -40,6 +40,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- typedef struct {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathdef.h uClibc-git/libc/sysdeps/linux/i386/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/mathdef.h 2014-07-25 20:36:07.049335958 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathinline.h uClibc-git/libc/sysdeps/linux/i386/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/mathinline.h 2014-07-25 20:36:07.049335958 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/select.h uClibc-git/libc/sysdeps/linux/i386/bits/select.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/select.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/select.h 2014-07-25 20:36:07.049335958 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SELECT_H
- # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/setjmp.h uClibc-git/libc/sysdeps/linux/i386/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/setjmp.h 2014-07-25 20:36:07.049335958 +0200
-@@ -1,4 +1,5 @@
--/* Copyright (C) 1997, 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
-+/* Copyright (C) 1997,1998,2000,2001,2003,2005,2006
-+ Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. Intel 386 version. */
- #ifndef _BITS_SETJMP_H
-@@ -24,23 +24,6 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#if defined __USE_MISC || defined _ASM
--# define JB_BX 0
--# define JB_SI 1
--# define JB_DI 2
--# define JB_BP 3
--# define JB_SP 4
--# define JB_PC 5
--# define JB_SIZE 24
--#endif
--
--#ifndef _ASM
- typedef int __jmp_buf[6];
--#endif
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/i386/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/sigcontextinfo.h 2014-07-25 20:36:07.049335958 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT struct sigcontext
- #define SIGCONTEXT_EXTRA_ARGS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/i386/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/stackinfo.h 2014-07-25 20:36:07.049335958 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/syscalls.h uClibc-git/libc/sysdeps/linux/i386/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/syscalls.h 2014-07-25 20:36:07.049335958 +0200
-@@ -136,7 +136,7 @@
- #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
- , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
- #define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \
-- , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6)
-+ , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "g" (arg6)
-
- #else /* !PIC */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h 2014-07-25 20:36:07.049335958 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #define __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wchar.h uClibc-git/libc/sysdeps/linux/i386/bits/wchar.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wchar.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/wchar.h 2014-07-25 20:36:07.049335958 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_WCHAR_H
- #define _BITS_WCHAR_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wordsize.h uClibc-git/libc/sysdeps/linux/i386/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bits/wordsize.h 2014-07-25 20:36:07.049335958 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/brk.c uClibc-git/libc/sysdeps/linux/i386/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/brk.c 2014-07-25 20:36:07.049335958 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/i386/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bsd-setjmp.S 2014-07-25 20:36:07.053335979 +0200
-@@ -13,13 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .global setjmp
- .type setjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/i386/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/bsd-_setjmp.S 2014-07-25 20:36:07.053335979 +0200
-@@ -13,17 +13,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
- in setjmp doesn't clobber the state restored by longjmp. */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- .global _setjmp
- .type _setjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/clone.S uClibc-git/libc/sysdeps/linux/i386/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/clone.S 2014-07-25 20:36:07.053335979 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/crt1.S uClibc-git/libc/sysdeps/linux/i386/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/crt1.S 2014-07-25 20:36:07.053335979 +0200
-@@ -31,9 +31,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This is the canonical entry point, usually the first thing in the text
- segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/fpu_control.h uClibc-git/libc/sysdeps/linux/i386/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/fpu_control.h 2014-07-25 20:36:07.053335979 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/getcontext.S uClibc-git/libc/sysdeps/linux/i386/getcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/getcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/getcontext.S 2014-07-25 20:36:07.053335979 +0200
-@@ -0,0 +1,84 @@
-+/* Save current context.
-+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+
-+ENTRY(__getcontext)
-+ /* Load address of the context data structure. */
-+ movl 4(%esp), %eax
-+
-+ /* Return value of getcontext. EAX is the only register whose
-+ value is not preserved. */
-+ movl $0, oEAX(%eax)
-+
-+ /* Save the 32-bit register values and the return address. */
-+ movl %ecx, oECX(%eax)
-+ movl %edx, oEDX(%eax)
-+ movl %edi, oEDI(%eax)
-+ movl %esi, oESI(%eax)
-+ movl %ebp, oEBP(%eax)
-+ movl (%esp), %ecx
-+ movl %ecx, oEIP(%eax)
-+ leal 4(%esp), %ecx /* Exclude the return address. */
-+ movl %ecx, oESP(%eax)
-+ movl %ebx, oEBX(%eax)
-+
-+ /* Save the FS segment register. We don't touch the GS register
-+ since it is used for threads. */
-+ xorl %edx, %edx
-+ movw %fs, %dx
-+ movl %edx, oFS(%eax)
-+
-+ /* We have separate floating-point register content memory on the
-+ stack. We use the __fpregs_mem block in the context. Set the
-+ links up correctly. */
-+ leal oFPREGSMEM(%eax), %ecx
-+ movl %ecx, oFPREGS(%eax)
-+ /* Save the floating-point context. */
-+ fnstenv (%ecx)
-+ /* And load it right back since the processor changes the mask.
-+ Intel thought this opcode to be used in interrupt handlers which
-+ would block all exceptions. */
-+ fldenv (%ecx)
-+
-+ /* Save the current signal mask. */
-+ pushl %ebx
-+ cfi_adjust_cfa_offset (4)
-+ cfi_rel_offset (ebx, 0)
-+ leal oSIGMASK(%eax), %edx
-+ xorl %ecx, %ecx
-+ movl $SIG_BLOCK, %ebx
-+ movl $__NR_sigprocmask, %eax
-+ ENTER_KERNEL
-+ popl %ebx
-+ cfi_adjust_cfa_offset (-4)
-+ cfi_restore (ebx)
-+ cmpl $-4095, %eax /* Check %eax for error. */
-+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
-+
-+ /* All done, return 0 for success. */
-+ xorl %eax, %eax
-+L(pseudo_end):
-+ ret
-+PSEUDO_END(__getcontext)
-+
-+weak_alias (__getcontext, getcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/i386/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/jmpbuf-offsets.h 2014-07-25 20:36:07.053335979 +0200
-@@ -0,0 +1,25 @@
-+/* Private macros for accessing __jmp_buf contents. i386 version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define JB_BX 0
-+#define JB_SI 1
-+#define JB_DI 2
-+#define JB_BP 3
-+#define JB_SP 4
-+#define JB_PC 5
-+#define JB_SIZE 24
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/i386/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/jmpbuf-unwind.h 2014-07-25 20:36:07.053335979 +0200
-@@ -0,0 +1,23 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/__longjmp.S uClibc-git/libc/sysdeps/linux/i386/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/__longjmp.S 2014-07-25 20:36:07.037335895 +0200
-@@ -14,13 +14,9 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- .global __longjmp
- .type __longjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/makecontext.S uClibc-git/libc/sysdeps/linux/i386/makecontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/makecontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/makecontext.S 2014-07-25 20:36:07.053335979 +0200
-@@ -0,0 +1,123 @@
-+/* Create new context.
-+ Copyright (C) 2001,2002,2005,2007,2008,2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+
-+ENTRY(__makecontext)
-+ movl 4(%esp), %eax
-+
-+ /* Load the address of the function we are supposed to run. */
-+ movl 8(%esp), %ecx
-+
-+ /* Compute the address of the stack. The information comes from
-+ to us_stack element. */
-+ movl oSS_SP(%eax), %edx
-+ movl %ecx, oEIP(%eax)
-+ addl oSS_SIZE(%eax), %edx
-+
-+ /* Remember the number of parameters for the exit handler since
-+ it has to remove them. We store the number in the EBX register
-+ which the function we will call must preserve. */
-+ movl 12(%esp), %ecx
-+ movl %ecx, oEBX(%eax)
-+
-+ /* Make room on the new stack for the parameters.
-+ Room for the arguments, return address (== L(exitcode)) and
-+ oLINK pointer is needed. One of the pointer sizes is subtracted
-+ after aligning the stack. */
-+ negl %ecx
-+ leal -4(%edx,%ecx,4), %edx
-+ negl %ecx
-+
-+ /* Align the stack. */
-+ andl $0xfffffff0, %edx
-+ subl $4, %edx
-+
-+ /* Store the future stack pointer. */
-+ movl %edx, oESP(%eax)
-+
-+ /* Put the next context on the new stack (from the uc_link
-+ element). */
-+ movl oLINK(%eax), %eax
-+ movl %eax, 4(%edx,%ecx,4)
-+
-+ /* Copy all the parameters. */
-+ jecxz 2f
-+1: movl 12(%esp,%ecx,4), %eax
-+ movl %eax, (%edx,%ecx,4)
-+ decl %ecx
-+ jnz 1b
-+2:
-+
-+ /* If the function we call returns we must continue with the
-+ context which is given in the uc_link element. To do this
-+ set the return address for the function the user provides
-+ to a little bit of helper code which does the magic (see
-+ below). */
-+#ifdef __PIC__
-+ call 1f
-+ cfi_adjust_cfa_offset (4)
-+1: popl %ecx
-+ cfi_adjust_cfa_offset (-4)
-+ addl $L(exitcode)-1b, %ecx
-+ movl %ecx, (%edx)
-+#else
-+ movl $L(exitcode), (%edx)
-+#endif
-+ /* 'makecontext' returns no value. */
-+L(pseudo_end):
-+ ret
-+
-+ /* This is the helper code which gets called if a function which
-+ is registered with 'makecontext' returns. In this case we
-+ have to install the context listed in the uc_link element of
-+ the context 'makecontext' manipulated at the time of the
-+ 'makecontext' call. If the pointer is NULL the process must
-+ terminate. */
-+ cfi_endproc
-+L(exitcode):
-+ /* This removes the parameters passed to the function given to
-+ 'makecontext' from the stack. EBX contains the number of
-+ parameters (see above). */
-+ leal (%esp,%ebx,4), %esp
-+
-+#ifdef __PIC__
-+ call 1f
-+1: popl %ebx
-+ addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
-+#endif
-+ cmpl $0, (%esp) /* Check the next context. */
-+ je 2f /* If it is zero exit. */
-+
-+ call JUMPTARGET(__setcontext)
-+ /* If this returns (which can happen if the syscall fails) we'll
-+ exit the program with the return error value (-1). */
-+
-+ movl %eax, (%esp)
-+2: call HIDDEN_JUMPTARGET(exit)
-+ /* The 'exit' call should never return. In case it does cause
-+ the process to terminate. */
-+ hlt
-+ cfi_startproc
-+END(__makecontext)
-+
-+weak_alias (__makecontext, makecontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/Makefile.arch uClibc-git/libc/sysdeps/linux/i386/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/Makefile.arch 2014-07-25 20:36:07.037335895 +0200
-@@ -5,13 +5,13 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c sigaction.c
-+CSRC-y := brk.c __syscall_error.c sigaction.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
-- sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S
-+ sync_file_range.S syscall.S mmap.S
-
--
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--SSRC += vfork.S clone.S
--endif
-+SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
-+SSRC-$(if $(findstring yy,$(UCLIBC_HAS_ADVANCED_REALTIME)$(UCLIBC_HAS_LFS)),y) += posix_fadvise64.S
-+SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
-+SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S swapcontext.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap64.S uClibc-git/libc/sysdeps/linux/i386/mmap64.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap64.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/mmap64.S 2014-07-25 20:36:07.053335979 +0200
-@@ -12,18 +12,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
-+#include <_lfs_64.h>
- #define _ERRNO_H 1
--#include <features.h>
- #include <bits/errno.h>
- #include <sys/syscall.h>
-
--#if defined __UCLIBC_HAS_LFS__ && defined __NR_mmap2
--
-+#ifdef __NR_mmap2
-
- #define LINKAGE 4
- #define PTR_SIZE 4
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap.S uClibc-git/libc/sysdeps/linux/i386/mmap.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/mmap.S 2014-07-25 20:36:07.053335979 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _ERRNO_H 1
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/posix_fadvise64.S uClibc-git/libc/sysdeps/linux/i386/posix_fadvise64.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/posix_fadvise64.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/posix_fadvise64.S 2014-07-25 20:36:07.053335979 +0200
-@@ -13,29 +13,18 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define _ERRNO_H 1
--#include <features.h>
--#include <bits/errno.h>
--#include <sys/syscall.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#if defined __NR_fadvise64_64 || defined __NR_fadvise64
-+#include <_lfs_64.h>
-+#include <sys/syscall.h>
-
--/* Was named __libc_posix_fadvise64 for some inexplicable reason.
--** google says only uclibc has *__libc*_posix_fadviseXXX,
--** so it cannot be compat with anything.
--**
--** Remove this comment and one at the end after 0.9.31
--*/
-+#ifdef __NR_fadvise64_64
-
- .text
- .global posix_fadvise64
- .type posix_fadvise64,%function
- posix_fadvise64:
--#if defined __NR_fadvise64_64
- /* Save regs */
- pushl %ebp
- pushl %ebx
-@@ -63,47 +52,7 @@
- /* Returns 0 on success, else an error code. */
- negl %eax
-
--#elif defined __NR_fadvise64
-- /* Save regs */
-- pushl %ebx
-- pushl %esi
-- pushl %edi
--#if 0
-- /* does len overflow long? */
-- cmpl $0, 28(%esp)
-- movl $-EOVERFLOW, %eax
-- jne overflow
--#endif
-- movl $__NR_fadvise64, %eax /* Syscall number in %eax. */
--
-- movl 16(%esp), %ebx
-- movl 20(%esp), %ecx
-- movl 24(%esp), %edx
-- movl 28(%esp), %esi
-- movl 32(%esp), %edi
--
-- /* Do the system call trap. */
-- int $0x80
--overflow:
-- /* Restore regs */
-- popl %edi
-- popl %esi
-- popl %ebx
--
-- /* Returns 0 on success, else an error code. */
-- negl %eax
--#endif
--
- /* Successful; return the syscall's value. */
- ret
--
- .size posix_fadvise64,.-posix_fadvise64
--
--/*
--** libc_hidden_def(__libc_posix_fadvise64)
--** #if defined __UCLIBC_HAS_LFS__ && defined __UCLIBC_HAS_ADVANCED_REALTIME__
--** weak_alias(__libc_posix_fadvise64,posix_fadvise64)
--** #endif
--*/
--
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/setcontext.S uClibc-git/libc/sysdeps/linux/i386/setcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/setcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/setcontext.S 2014-07-25 20:36:07.053335979 +0200
-@@ -0,0 +1,96 @@
-+/* Install given context.
-+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+
-+ENTRY(__setcontext)
-+ /* Load address of the context data structure. */
-+ movl 4(%esp), %eax
-+
-+ /* Get the current signal mask. Note that we preserve EBX in case
-+ the system call fails and we return from the function with an
-+ error. */
-+ pushl %ebx
-+ cfi_adjust_cfa_offset (4)
-+ xorl %edx, %edx
-+ leal oSIGMASK(%eax), %ecx
-+ movl $SIG_SETMASK, %ebx
-+ cfi_rel_offset (ebx, 0)
-+ movl $__NR_sigprocmask, %eax
-+ ENTER_KERNEL
-+ popl %ebx
-+ cfi_adjust_cfa_offset (-4)
-+ cfi_restore (ebx)
-+ cmpl $-4095, %eax /* Check %eax for error. */
-+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
-+
-+ /* EAX was modified, reload it. */
-+ movl 4(%esp), %eax
-+
-+ /* Restore the floating-point context. Not the registers, only the
-+ rest. */
-+ movl oFPREGS(%eax), %ecx
-+ fldenv (%ecx)
-+
-+ /* Restore the FS segment register. We don't touch the GS register
-+ since it is used for threads. */
-+ movl oFS(%eax), %ecx
-+ movw %cx, %fs
-+
-+ /* Fetch the address to return to. */
-+ movl oEIP(%eax), %ecx
-+
-+ /* Load the new stack pointer. */
-+ cfi_def_cfa (eax, 0)
-+ cfi_offset (edi, oEDI)
-+ cfi_offset (esi, oESI)
-+ cfi_offset (ebp, oEBP)
-+ cfi_offset (ebx, oEBX)
-+ cfi_offset (edx, oEDX)
-+ cfi_offset (ecx, oECX)
-+ movl oESP(%eax), %esp
-+
-+ /* Push the return address on the new stack so we can return there. */
-+ pushl %ecx
-+
-+ /* Load the values of all the 32-bit registers (except ESP).
-+ Since we are loading from EAX, it must be last. */
-+ movl oEDI(%eax), %edi
-+ movl oESI(%eax), %esi
-+ movl oEBP(%eax), %ebp
-+ movl oEBX(%eax), %ebx
-+ movl oEDX(%eax), %edx
-+ movl oECX(%eax), %ecx
-+ movl oEAX(%eax), %eax
-+
-+ /* End FDE here, we fall into another context. */
-+ cfi_endproc
-+ cfi_startproc
-+
-+ /* The following 'ret' will pop the address of the code and jump
-+ to it. */
-+
-+L(pseudo_end):
-+ ret
-+PSEUDO_END(__setcontext)
-+
-+weak_alias (__setcontext, setcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/setjmp.S uClibc-git/libc/sysdeps/linux/i386/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/setjmp.S 2014-07-25 20:36:07.053335979 +0200
-@@ -13,14 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
--
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .global __sigsetjmp
- .type __sigsetjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sigaction.c uClibc-git/libc/sysdeps/linux/i386/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sigaction.c 2014-07-25 20:36:07.053335979 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA.
-+ see <http://www.gnu.org/licenses/>.
-
- Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-@@ -27,9 +26,6 @@
-
- #define SA_RESTORER 0x04000000
-
--extern __typeof(sigaction) __libc_sigaction;
--
--
- #if defined __NR_rt_sigaction
-
- extern void restore_rt(void) __asm__ ("__restore_rt") attribute_hidden;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/swapcontext.S uClibc-git/libc/sysdeps/linux/i386/swapcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/swapcontext.S 2014-07-25 20:36:07.053335979 +0200
-@@ -0,0 +1,110 @@
-+/* Save current context and install the given one.
-+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+
-+ENTRY(__swapcontext)
-+ /* Load address of the context data structure we save in. */
-+ movl 4(%esp), %eax
-+
-+ /* Return value of swapcontext. EAX is the only register whose
-+ value is not preserved. */
-+ movl $0, oEAX(%eax)
-+
-+ /* Save the 32-bit register values and the return address. */
-+ movl %ecx, oECX(%eax)
-+ movl %edx, oEDX(%eax)
-+ movl %edi, oEDI(%eax)
-+ movl %esi, oESI(%eax)
-+ movl %ebp, oEBP(%eax)
-+ movl (%esp), %ecx
-+ movl %ecx, oEIP(%eax)
-+ leal 4(%esp), %ecx
-+ movl %ecx, oESP(%eax)
-+ movl %ebx, oEBX(%eax)
-+
-+ /* Save the FS segment register. */
-+ xorl %edx, %edx
-+ movw %fs, %dx
-+ movl %edx, oFS(%eax)
-+
-+ /* We have separate floating-point register content memory on the
-+ stack. We use the __fpregs_mem block in the context. Set the
-+ links up correctly. */
-+ leal oFPREGSMEM(%eax), %ecx
-+ movl %ecx, oFPREGS(%eax)
-+ /* Save the floating-point context. */
-+ fnstenv (%ecx)
-+
-+ /* Load address of the context data structure we have to load. */
-+ movl 8(%esp), %ecx
-+
-+ /* Save the current signal mask and install the new one. */
-+ pushl %ebx
-+ leal oSIGMASK(%eax), %edx
-+ leal oSIGMASK(%ecx), %ecx
-+ movl $SIG_SETMASK, %ebx
-+ movl $__NR_sigprocmask, %eax
-+ ENTER_KERNEL
-+ popl %ebx
-+ cmpl $-4095, %eax /* Check %eax for error. */
-+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
-+
-+ /* EAX was modified, reload it. */
-+ movl 8(%esp), %eax
-+
-+ /* Restore the floating-point context. Not the registers, only the
-+ rest. */
-+ movl oFPREGS(%eax), %ecx
-+ fldenv (%ecx)
-+
-+ /* Restore the FS segment register. We don't touch the GS register
-+ since it is used for threads. */
-+ movl oFS(%eax), %edx
-+ movw %dx, %fs
-+
-+ /* Fetch the address to return to. */
-+ movl oEIP(%eax), %ecx
-+
-+ /* Load the new stack pointer. */
-+ movl oESP(%eax), %esp
-+
-+ /* Push the return address on the new stack so we can return there. */
-+ pushl %ecx
-+
-+ /* Load the values of all the 32-bit registers (except ESP).
-+ Since we are loading from EAX, it must be last. */
-+ movl oEDI(%eax), %edi
-+ movl oESI(%eax), %esi
-+ movl oEBP(%eax), %ebp
-+ movl oEBX(%eax), %ebx
-+ movl oEDX(%eax), %edx
-+ movl oECX(%eax), %ecx
-+ movl oEAX(%eax), %eax
-+
-+ /* The following 'ret' will pop the address of the code and jump
-+ to it. */
-+L(pseudo_end):
-+ ret
-+PSEUDO_END(__swapcontext)
-+
-+weak_alias (__swapcontext, swapcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sync_file_range.S uClibc-git/libc/sysdeps/linux/i386/sync_file_range.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sync_file_range.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sync_file_range.S 2014-07-25 20:36:07.053335979 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _ERRNO_H 1
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/debugreg.h uClibc-git/libc/sysdeps/linux/i386/sys/debugreg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/debugreg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/debugreg.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_DEBUGREG_H
- #define _SYS_DEBUGREG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/elf.h uClibc-git/libc/sysdeps/linux/i386/sys/elf.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/elf.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ELF_H
- #define _SYS_ELF_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/io.h uClibc-git/libc/sysdeps/linux/i386/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/io.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
- #define _SYS_IO_H 1
-@@ -33,7 +32,6 @@
- E.g., Linux/Alpha for Alpha PCs supports this. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
- /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
- access any I/O port is granted. This call requires root
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/perm.h uClibc-git/libc/sysdeps/linux/i386/sys/perm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/perm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/perm.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PERM_H
-
-@@ -26,7 +25,6 @@
- /* Set port input/output permissions. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
-
- /* Change I/O privilege level. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/procfs.h uClibc-git/libc/sysdeps/linux/i386/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/procfs.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/reg.h uClibc-git/libc/sysdeps/linux/i386/sys/reg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/reg.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_REG_H
- #define _SYS_REG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/ucontext.h uClibc-git/libc/sysdeps/linux/i386/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/ucontext.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/user.h uClibc-git/libc/sysdeps/linux/i386/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/user.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/vm86.h uClibc-git/libc/sysdeps/linux/i386/sys/vm86.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/vm86.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sys/vm86.h 2014-07-25 20:36:07.069336063 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_VM86_H
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sysdep.h uClibc-git/libc/sysdeps/linux/i386/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/sysdep.h 2014-07-25 20:36:07.069336063 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINUX_I386_SYSDEP_H
- #define _LINUX_I386_SYSDEP_H 1
-@@ -44,12 +43,9 @@
- incomplete stabs information. Fake some entries here which specify
- the current source file. */
- #define ENTRY(name) \
-- STABS_CURRENT_FILE1("") \
-- STABS_CURRENT_FILE(name) \
- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
- .align ALIGNARG(4); \
-- STABS_FUN(name) \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT
-@@ -58,30 +54,6 @@
- #define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(name) \
-- STABS_FUN_END(name)
--
--#ifdef HAVE_CPP_ASM_DEBUGINFO
--/* Disable that goop, because we just pass -g through to the assembler
-- and it generates proper line number information directly. */
--# define STABS_CURRENT_FILE1(name)
--# define STABS_CURRENT_FILE(name)
--# define STABS_FUN(name)
--# define STABS_FUN_END(name)
--#else
--/* Remove the following two lines once the gdb bug is fixed. */
--#define STABS_CURRENT_FILE(name) \
-- STABS_CURRENT_FILE1 (#name)
--#define STABS_CURRENT_FILE1(name) \
-- 1: .stabs name,100,0,0,1b;
--/* Emit stabs definition lines. We use F(0,1) and define t(0,1) as `int',
-- the same way gcc does it. */
--#define STABS_FUN(name) STABS_FUN2(name, name##:F(0,1))
--#define STABS_FUN2(name, namestr) \
-- .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0; \
-- .stabs #namestr,36,0,0,name;
--#define STABS_FUN_END(name) \
-- 1: .stabs "",36,0,0,1b-name;
--#endif
-
- /* If compiled for profiling, call `mcount' at the start of each function. */
- #ifdef PROF
-@@ -150,10 +122,6 @@
- #undef __i686
- #endif /* __ASSEMBLER__ */
-
--#ifndef offsetof
--# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
--#endif
--
- /* For Linux we can use the system call table in the header file
- /usr/include/asm/unistd.h
- of the kernel. But these symbols do not follow the SYS_* syntax
-@@ -227,8 +195,6 @@
- #define PSEUDO_END_ERRVAL(name) \
- END (name)
-
--#define ret_ERRVAL ret
--
- #ifndef __PIC__
- # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
- #else
-@@ -444,6 +410,7 @@
- # define PTR_DEMANGLE(reg) rorl $9, reg; \
- xorl %gs:POINTER_GUARD, reg
- # else
-+# include <stddef.h>
- # define PTR_MANGLE(var) __asm__ ("xorl %%gs:%c2, %0\n" \
- "roll $9, %0" \
- : "=r" (var) \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/ucontext_i.sym uClibc-git/libc/sysdeps/linux/i386/ucontext_i.sym
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/i386/ucontext_i.sym 2014-07-25 20:36:07.069336063 +0200
-@@ -0,0 +1,30 @@
-+#include <stddef.h>
-+#include <signal.h>
-+#include <sys/ucontext.h>
-+
-+--
-+
-+SIG_BLOCK
-+SIG_SETMASK
-+
-+#define ucontext(member) offsetof (ucontext_t, member)
-+#define mcontext(member) ucontext (uc_mcontext.member)
-+#define mreg(reg) mcontext (gregs[REG_##reg])
-+
-+oLINK ucontext (uc_link)
-+oSS_SP ucontext (uc_stack.ss_sp)
-+oSS_SIZE ucontext (uc_stack.ss_size)
-+oGS mreg (GS)
-+oFS mreg (FS)
-+oEDI mreg (EDI)
-+oESI mreg (ESI)
-+oEBP mreg (EBP)
-+oESP mreg (ESP)
-+oEBX mreg (EBX)
-+oEDX mreg (EDX)
-+oECX mreg (ECX)
-+oEAX mreg (EAX)
-+oEIP mreg (EIP)
-+oFPREGS mcontext (fpregs)
-+oSIGMASK ucontext (uc_sigmask)
-+oFPREGSMEM ucontext (__fpregs_mem)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/vfork.S uClibc-git/libc/sysdeps/linux/i386/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i386/vfork.S 2014-07-25 20:36:07.069336063 +0200
-@@ -38,4 +38,4 @@
- .size __vfork,.-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/fcntl.h uClibc-git/libc/sysdeps/linux/i960/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/bits/fcntl.h 2014-07-25 20:36:07.097336209 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h 2014-07-25 20:36:07.097336209 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #define __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/wordsize.h uClibc-git/libc/sysdeps/linux/i960/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/bits/wordsize.h 2014-07-25 20:36:07.097336209 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/clone.S uClibc-git/libc/sysdeps/linux/i960/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/clone.S 2014-07-25 20:36:07.097336209 +0200
-@@ -14,8 +14,7 @@
- # details.
- #
- # You should have received a copy of the GNU Library General Public License
--# along with this program; if not, write to the Free Software Foundation, Inc.,
--# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
- # Derived from an old port of uC-libc to the i960 by Keith Adams (kma@cse.ogi.edu).
- #
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/crt0.S uClibc-git/libc/sysdeps/linux/i960/crt0.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/crt0.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/crt0.S 2014-07-25 20:36:07.097336209 +0200
-@@ -14,8 +14,7 @@
- # details.
- #
- # You should have received a copy of the GNU Library General Public License
--# along with this program; if not, write to the Free Software Foundation, Inc.,
--# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
-
- /*
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/mmap.S uClibc-git/libc/sysdeps/linux/i960/mmap.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/mmap.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/mmap.S 2014-07-25 20:36:07.097336209 +0200
-@@ -14,8 +14,7 @@
- # details.
- #
- # You should have received a copy of the GNU Library General Public License
--# along with this program; if not, write to the Free Software Foundation, Inc.,
--# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
- # Derived from an old port of uC-libc to the i960 by Keith Adams (kma@cse.ogi.edu).
- #
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/setjmp.S uClibc-git/libc/sysdeps/linux/i960/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/setjmp.S 2014-07-25 20:36:07.097336209 +0200
-@@ -122,3 +122,5 @@
- mov 1, g0 /* return 1 by default */
- 0:
- ret /* return to caller of __sigsetjmp */
-+
-+libc_hidden_def(__longjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/procfs.h uClibc-git/libc/sysdeps/linux/i960/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/sys/procfs.h 2014-07-25 20:36:07.109336272 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/ucontext.h uClibc-git/libc/sysdeps/linux/i960/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/sys/ucontext.h 2014-07-25 20:36:07.109336272 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Don't rely on this, the interface is currently messed up and may need to
- be broken to be fixed. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/vfork.S uClibc-git/libc/sysdeps/linux/i960/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/i960/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/i960/vfork.S 2014-07-25 20:36:07.109336272 +0200
-@@ -18,6 +18,7 @@
-
- .globl ___vfork
- .hidden ___vfork
-+ .type ___vfork,@function
- ___vfork:
- mov g13, r3
- ldconst __NR_vfork, g13
-@@ -30,4 +31,4 @@
- ret
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/atomic.h uClibc-git/libc/sysdeps/linux/ia64/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/atomic.h 2014-07-25 20:36:07.137336419 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdint.h>
- #include <ia64intrin.h>
-@@ -92,12 +91,12 @@
- do \
- { \
- __oldval = __val; \
-- if (__builtin_expect (__val <= 0, 0)) \
-+ if (unlikely (__val <= 0)) \
- break; \
- __val = atomic_compare_and_exchange_val_acq (__memp, __oldval - 1, \
- __oldval); \
- } \
-- while (__builtin_expect (__val != __oldval, 0)); \
-+ while (unlikely (__val != __oldval)); \
- __oldval; })
-
- #define atomic_bit_test_set(mem, bit) \
-@@ -113,7 +112,7 @@
- __oldval | __mask, \
- __oldval); \
- } \
-- while (__builtin_expect (__val != __oldval, 0)); \
-+ while (unlikely (__val != __oldval)); \
- __oldval & __mask; })
-
- #define atomic_full_barrier() __sync_synchronize ()
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/byteswap.h uClibc-git/libc/sysdeps/linux/ia64/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/byteswap.h 2014-07-25 20:36:07.137336419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ASM_BITS_BYTESWAP_H
- #define _ASM_BITS_BYTESWAP_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/ia64/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/fcntl.h 2014-07-25 20:36:07.137336419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fenv.h uClibc-git/libc/sysdeps/linux/ia64/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/fenv.h 2014-07-25 20:36:07.137336419 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -73,15 +72,15 @@
- typedef unsigned long int fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) 0xc009804c0270033fUL)
-+#define FE_DFL_ENV ((const fenv_t *) 0xc009804c0270033fUL)
-
- #ifdef __USE_GNU
- /* Floating-point environment where only FE_UNNORMAL is masked since this
- exception is not generally supported by glibc. */
--# define FE_NOMASK_ENV ((__const fenv_t *) 0xc009804c02700302UL)
-+# define FE_NOMASK_ENV ((const fenv_t *) 0xc009804c02700302UL)
-
- /* Floating-point environment with (processor-dependent) non-IEEE
- floating point. In this case, turning on flush-to-zero mode for
- s0, s2, and s3. */
--# define FE_NONIEEE_ENV ((__const fenv_t *) 0xc009a04d0270037fUL)
-+# define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/ia64/bits/huge_vall.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/huge_vall.h 2014-07-25 20:36:07.137336419 +0200
-@@ -0,0 +1,41 @@
-+/* `HUGE_VALL' constant for ia64 (where it is infinity).
-+ Used by <stdlib.h> and <math.h> functions for overflow.
-+ Copyright (C) 2000, 2004 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _MATH_H
-+# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
-+#endif
-+
-+#if __GNUC_PREREQ(3,3)
-+# define HUGE_VALL (__builtin_huge_vall())
-+#elif __GNUC_PREREQ(2,96)
-+# define HUGE_VALL (__extension__ 0x1.0p32767L)
-+#else
-+
-+# define __HUGE_VALL_bytes { 0,0,0,0,0,0,0, 0x80, 0xff, 0x7f, 0,0,0,0,0,0}
-+
-+# define __huge_vall_t union { unsigned char __c[16]; long double __ld; }
-+# ifdef __GNUC__
-+# define HUGE_VALL (__extension__ \
-+ ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
-+# else /* Not GCC. */
-+static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
-+# define HUGE_VALL (__huge_vall.__ld)
-+# endif /* GCC. */
-+
-+#endif /* GCC 2.95 */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/ipc.h uClibc-git/libc/sysdeps/linux/ia64/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/ipc.h 2014-07-25 20:36:07.137336419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/ia64/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/kernel_types.h 2014-07-25 20:36:07.137336419 +0200
-@@ -52,5 +52,7 @@
-
- typedef unsigned int __kernel_dev_t;
- typedef unsigned int __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- #endif /* _ASM_IA64_POSIX_TYPES_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/local_lim.h uClibc-git/libc/sysdeps/linux/ia64/bits/local_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/local_lim.h 2014-07-25 20:36:07.137336419 +0200
-@@ -0,0 +1,99 @@
-+/* Minimum guaranteed maximum values for system limits. Linux/IA-64 version.
-+ Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ see <http://www.gnu.org/licenses/>. */
-+
-+/* The kernel header pollutes the namespace with the NR_OPEN symbol
-+ and defines LINK_MAX although filesystems have different maxima. A
-+ similar thing is true for OPEN_MAX: the limit can be changed at
-+ runtime and therefore the macro must not be defined. Remove this
-+ after including the header if necessary. */
-+#ifndef NR_OPEN
-+# define __undef_NR_OPEN
-+#endif
-+#ifndef LINK_MAX
-+# define __undef_LINK_MAX
-+#endif
-+#ifndef OPEN_MAX
-+# define __undef_OPEN_MAX
-+#endif
-+#ifndef ARG_MAX
-+# define __undef_ARG_MAX
-+#endif
-+
-+/* The kernel sources contain a file with all the needed information. */
-+#include <linux/limits.h>
-+
-+/* Have to remove NR_OPEN? */
-+#ifdef __undef_NR_OPEN
-+# undef NR_OPEN
-+# undef __undef_NR_OPEN
-+#endif
-+/* Have to remove LINK_MAX? */
-+#ifdef __undef_LINK_MAX
-+# undef LINK_MAX
-+# undef __undef_LINK_MAX
-+#endif
-+/* Have to remove OPEN_MAX? */
-+#ifdef __undef_OPEN_MAX
-+# undef OPEN_MAX
-+# undef __undef_OPEN_MAX
-+#endif
-+/* Have to remove ARG_MAX? */
-+#ifdef __undef_ARG_MAX
-+# undef ARG_MAX
-+# undef __undef_ARG_MAX
-+#endif
-+
-+/* The number of data keys per process. */
-+#define _POSIX_THREAD_KEYS_MAX 128
-+/* This is the value this implementation supports. */
-+#define PTHREAD_KEYS_MAX 1024
-+
-+/* Controlling the iterations of destructors for thread-specific data. */
-+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-+/* Number of iterations this implementation does. */
-+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-+
-+/* The number of threads per process. */
-+#define _POSIX_THREAD_THREADS_MAX 64
-+/* We have no predefined limit on the number of threads. */
-+#undef PTHREAD_THREADS_MAX
-+
-+/* Maximum amount by which a process can descrease its asynchronous I/O
-+ priority level. */
-+#define AIO_PRIO_DELTA_MAX 20
-+
-+/* Minimum size for a thread. We are free to choose a reasonable value. */
-+#define PTHREAD_STACK_MIN 196608
-+
-+/* Maximum number of timer expiration overruns. */
-+#define DELAYTIMER_MAX 2147483647
-+
-+/* Maximum tty name length. */
-+#define TTY_NAME_MAX 32
-+
-+/* Maximum login name length. This is arbitrary. */
-+#define LOGIN_NAME_MAX 256
-+
-+/* Maximum host name length. */
-+#define HOST_NAME_MAX 64
-+
-+/* Maximum message queue priority level. */
-+#define MQ_PRIO_MAX 32768
-+
-+/* Maximum value the semaphore can have. */
-+#define SEM_VALUE_MAX (2147483647)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathdef.h uClibc-git/libc/sysdeps/linux/ia64/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/mathdef.h 2014-07-25 20:36:07.137336419 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathinline.h uClibc-git/libc/sysdeps/linux/ia64/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/mathinline.h 2014-07-25 20:36:07.137336419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/msq.h uClibc-git/libc/sysdeps/linux/ia64/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/msq.h 2014-07-25 20:36:07.137336419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- #error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sem.h uClibc-git/libc/sysdeps/linux/ia64/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/sem.h 2014-07-25 20:36:07.137336419 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/ia64/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/setjmp.h 2014-07-25 20:36:07.137336419 +0200
-@@ -1,5 +1,5 @@
- /* Define the machine-dependent type `jmp_buf'. Linux/IA-64 version.
-- Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
-+ Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
-
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SETJMP_H
- #define _BITS_SETJMP_H 1
-@@ -32,9 +31,4 @@
- /* the __jmp_buf element type should be __float80 per ABI... */
- typedef long __jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */
-
--/* Test if longjmp to JMPBUF would unwind the frame containing a local
-- variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
-- ((void *)(_address) < (void *)(((long *)_jmpbuf)[0]))
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/shm.h uClibc-git/libc/sysdeps/linux/ia64/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/shm.h 2014-07-25 20:36:07.137336419 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigaction.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigaction.h 2014-07-25 20:36:07.137336419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigcontext.h 2014-07-25 20:36:07.137336419 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
- # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/siginfo.h uClibc-git/libc/sysdeps/linux/ia64/bits/siginfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/siginfo.h 2014-07-25 20:36:07.141336440 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined __need_siginfo_t \
- && !defined __need_sigevent_t
-@@ -298,7 +297,11 @@
-
- /* Structure to transport application-defined values with signals. */
- # define __SIGEV_MAX_SIZE 64
--# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# if __WORDSIZE == 64
-+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# else
-+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
-+# endif
-
- typedef struct sigevent
- {
-@@ -310,6 +313,10 @@
- {
- int _pad[__SIGEV_PAD_SIZE];
-
-+ /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
-+ thread to receive the signal. */
-+ __pid_t _tid;
-+
- struct
- {
- void (*_function) (sigval_t); /* Function to start. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigstack.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigstack.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigstack.h 2014-07-25 20:36:07.141336440 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include this file directly. Use <signal.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/ia64/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/stackinfo.h 2014-07-25 20:36:07.141336440 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stat.h uClibc-git/libc/sysdeps/linux/ia64/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/stat.h 2014-07-25 20:36:07.141336440 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/syscalls.h uClibc-git/libc/sysdeps/linux/ia64/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/syscalls.h 2014-07-25 20:36:07.141336440 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SYSCALLS_H
- #define _BITS_SYSCALLS_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h 2014-07-25 20:36:07.141336440 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/wordsize.h uClibc-git/libc/sysdeps/linux/ia64/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/bits/wordsize.h 2014-07-25 20:36:07.141336440 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 64
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/brk.S uClibc-git/libc/sysdeps/linux/ia64/brk.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/brk.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/brk.S 2014-07-25 20:36:07.141336440 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/clone2.S uClibc-git/libc/sysdeps/linux/ia64/clone2.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/clone2.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/clone2.S 2014-07-25 20:36:07.141336440 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/crt1.S uClibc-git/libc/sysdeps/linux/ia64/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/crt1.S 2014-07-25 20:36:07.141336440 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __ASSEMBLY__
- #include "sysdep.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/fork.S uClibc-git/libc/sysdeps/linux/ia64/fork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/fork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/fork.S 2014-07-25 20:36:07.145336461 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include "sysdep.h"
-@@ -24,7 +23,10 @@
- /* pid_t fork(void); */
- /* Implemented as a clone system call with parameters SIGCHLD and 0 */
-
--ENTRY(__libc_fork)
-+#ifdef __UCLIBC_HAS_THREADS__
-+.weak fork
-+#endif
-+ENTRY(fork)
- alloc r2=ar.pfs,0,0,2,0
- mov out0=SIGCHLD /* Return SIGCHLD when child finishes */
- /* no other clone flags; nothing shared */
-@@ -34,9 +36,8 @@
- cmp.eq p6,p0=-1,r10
- (p6) br.cond.spnt.few __syscall_error
- ret
--PSEUDO_END(__libc_fork)
--
--weak_alias (__libc_fork, __fork)
--libc_hidden_def (__fork)
--weak_alias (__libc_fork, fork)
--libc_hidden_weak (fork)
-+PSEUDO_END(fork)
-+#ifdef __UCLIBC_HAS_THREADS__
-+strong_alias(fork,__libc_fork)
-+#endif
-+libc_hidden_def(fork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/ia64/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/ia64/jmpbuf-unwind.h 2014-07-25 20:36:07.145336461 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame containing a local
-+ variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
-+ ((void *)(_address) < (void *)(((long *)_jmpbuf)[0]))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/__longjmp.S uClibc-git/libc/sysdeps/linux/ia64/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/__longjmp.S 2014-07-25 20:36:07.125336356 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-
- Note that __sigsetjmp() did NOT flush the register stack. Instead,
- we do it here since __longjmp() is usually much less frequently
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/Makefile.arch uClibc-git/libc/sysdeps/linux/ia64/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/Makefile.arch 2014-07-25 20:36:07.125336356 +0200
-@@ -5,8 +5,8 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := __syscall_error.c
-+CSRC-y := __syscall_error.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S brk.S bsd-setjmp.S bsd-_setjmp.S clone2.S fork.S \
- pipe.S setjmp.S syscall.S vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/pipe.S uClibc-git/libc/sysdeps/linux/ia64/pipe.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/pipe.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/pipe.S 2014-07-25 20:36:07.145336461 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* __pipe is a special syscall since it returns two values. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/setjmp.S uClibc-git/libc/sysdeps/linux/ia64/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/setjmp.S 2014-07-25 20:36:07.145336461 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-
- The layout of the jmp_buf is as follows. This is subject to change
- and user-code should never depend on the particular layout of
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/io.h uClibc-git/libc/sysdeps/linux/ia64/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/sys/io.h 2014-07-25 20:36:07.165336566 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
- #define _SYS_IO_H 1
-@@ -24,6 +23,7 @@
-
- __BEGIN_DECLS
-
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges.
-@@ -33,12 +33,12 @@
- E.g., Linux/Alpha for Alpha PCs supports this. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on);
--libc_hidden_proto(ioperm)
-
- /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
- access any I/O port is granted. This call requires root
- privileges. */
- extern int iopl (int __level);
-+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
-
- extern unsigned int _inb (unsigned long int __port);
- extern unsigned int _inb (unsigned long int __port);
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/procfs.h uClibc-git/libc/sysdeps/linux/ia64/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/sys/procfs.h 2014-07-25 20:36:07.165336566 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ptrace.h uClibc-git/libc/sysdeps/linux/ia64/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/sys/ptrace.h 2014-07-25 20:36:07.165336566 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/ia64/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/sys/ucontext.h 2014-07-25 20:36:07.165336566 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/user.h uClibc-git/libc/sysdeps/linux/ia64/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/sys/user.h 2014-07-25 20:36:07.165336566 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/syscall.S uClibc-git/libc/sysdeps/linux/ia64/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/syscall.S 2014-07-25 20:36:07.165336566 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sysdep.h uClibc-git/libc/sysdeps/linux/ia64/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/sysdep.h 2014-07-25 20:36:07.165336566 +0200
-@@ -14,13 +14,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINUX_IA64_SYSDEP_H
- #define _LINUX_IA64_SYSDEP_H 1
-
-+#include <common/sysdep.h>
- #include <features.h>
- #include <asm/unistd.h>
-
-@@ -49,6 +49,15 @@
- C_LABEL(name) \
- CALL_MCOUNT
-
-+#define HIDDEN_ENTRY(name) \
-+ .text; \
-+ .align 32; \
-+ .proc C_SYMBOL_NAME(name); \
-+ .global C_SYMBOL_NAME(name); \
-+ .hidden C_SYMBOL_NAME(name); \
-+ C_LABEL(name) \
-+ CALL_MCOUNT
-+
- #define LEAF(name) \
- .text; \
- .align 32; \
-@@ -161,7 +170,6 @@
-
- #define ret br.ret.sptk.few b0
- #define ret_NOERRNO ret
--#define ret_ERRVAL ret
-
- #endif /* not __ASSEMBLER__ */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/vfork.S uClibc-git/libc/sysdeps/linux/ia64/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/ia64/vfork.S 2014-07-25 20:36:07.165336566 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include "sysdep.h"
-@@ -29,7 +28,7 @@
- /* pid_t vfork(void); */
- /* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
-
--ENTRY(__vfork)
-+HIDDEN_ENTRY(__vfork)
- alloc r2=ar.pfs,0,0,2,0
- mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
- mov out1=0 /* Standard sp value. */
-@@ -41,4 +40,4 @@
- PSEUDO_END(__vfork)
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/byteswap.h uClibc-git/libc/sysdeps/linux/m68k/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/byteswap.h 2014-07-25 20:36:07.189336691 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ASM_BITS_BYTESWAP_H
- #define _ASM_BITS_BYTESWAP_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fcntl.h uClibc-git/libc/sysdeps/linux/m68k/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/fcntl.h 2014-07-25 20:36:07.189336691 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fenv.h uClibc-git/libc/sysdeps/linux/m68k/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/fenv.h 2014-07-25 20:36:07.189336691 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -71,9 +70,9 @@
- fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) -1)
-+#define FE_DFL_ENV ((const fenv_t *) -1)
-
- #ifdef __USE_GNU
- /* Floating-point environment where none of the exceptions are masked. */
--# define FE_NOMASK_ENV ((__const fenv_t *) -2)
-+# define FE_NOMASK_ENV ((const fenv_t *) -2)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/m68k/bits/huge_vall.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/huge_vall.h 2014-07-25 20:36:07.189336691 +0200
-@@ -0,0 +1,42 @@
-+/* `HUGE_VALL' constant for m68k (where it is infinity).
-+ Used by <stdlib.h> and <math.h> functions for overflow.
-+ Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _MATH_H
-+# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-+#endif
-+
-+#if __GNUC_PREREQ(3,3)
-+# define HUGE_VALL (__builtin_huge_vall ())
-+#elif __GNUC_PREREQ(2,96)
-+# define HUGE_VALL (__extension__ 0x1.0p32767L)
-+#elif defined__GNUC__
-+
-+# define HUGE_VALL \
-+ (__extension__ \
-+ ((union { unsigned long __l[3]; long double __ld; }) \
-+ { __l: { 0x7fff0000UL, 0x80000000UL, 0UL } }).__ld)
-+
-+#else /* not GCC */
-+
-+static union { unsigned char __c[12]; long double __ld; } __huge_vall =
-+ { { 0x7f, 0xff, 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0 } };
-+# define HUGE_VALL (__huge_vall.__ld)
-+
-+#endif /* GCC 2.95. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/m68k/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/kernel_types.h 2014-07-25 20:36:07.189336691 +0200
-@@ -32,6 +32,8 @@
- typedef unsigned short __kernel_old_gid_t;
- typedef long long __kernel_loff_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- #ifdef __USE_ALL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathdef.h uClibc-git/libc/sysdeps/linux/m68k/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/mathdef.h 2014-07-25 20:36:07.189336691 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathinline.h uClibc-git/libc/sysdeps/linux/m68k/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/mathinline.h 2014-07-25 20:36:07.189336691 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef __GNUC__
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/poll.h uClibc-git/libc/sysdeps/linux/m68k/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/poll.h 2014-07-25 20:36:07.189336691 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/setjmp.h uClibc-git/libc/sysdeps/linux/m68k/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/setjmp.h 2014-07-25 20:36:07.189336691 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. m68k version. */
- #ifndef _BITS_SETJMP_H
-@@ -25,7 +24,7 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
-+#include <features.h>
-
- typedef struct
- {
-@@ -37,7 +36,7 @@
- int *__fp;
- int *__sp;
-
--#if defined __HAVE_68881__ || defined __HAVE_FPU__
-+#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
- /* There are eight floating point registers which
- are saved in IEEE 96-bit extended format. */
- char __fpregs[8 * (96 / 8)];
-@@ -45,24 +44,4 @@
-
- } __jmp_buf[1];
-
--#endif
--
--#define JB_REGS 0
--#define JB_DREGS 0
--#define JB_AREGS 24
--#define JB_PC 48
--#define JB_FPREGS 52
--
--#if defined __HAVE_68881__ || defined __HAVE_FPU__
--# define JB_SIZE 76
--#else
--# define JB_SIZE 52
--#endif
--
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)->__aregs[5])
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h 2014-07-25 20:36:07.189336691 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT int _code, struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS _code,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/m68k/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/stackinfo.h 2014-07-25 20:36:07.189336691 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stat.h uClibc-git/libc/sysdeps/linux/m68k/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/stat.h 2014-07-25 20:36:07.189336691 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h 2014-07-25 20:36:07.189336691 +0200
-@@ -15,8 +15,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #define __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_page.h 2014-07-25 20:36:07.189336691 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/wordsize.h uClibc-git/libc/sysdeps/linux/m68k/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bits/wordsize.h 2014-07-25 20:36:07.189336691 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/m68k/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bsd-setjmp.S 2014-07-25 20:36:07.189336691 +0200
-@@ -2,9 +2,8 @@
- /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
- /* This file is released under the LGPL, any version you like */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <features.h>
-+#include <jmpbuf-offsets.h>
- #include "m68k_pic.S"
-
- .globl setjmp;
-@@ -15,7 +14,7 @@
- moveal %sp@(4), %a0
- movel %sp@(0), %a0@(JB_PC)
- moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
--#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
-+#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
- fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
- #endif
- clrl %d0
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/m68k/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/bsd-_setjmp.S 2014-07-25 20:36:07.189336691 +0200
-@@ -2,9 +2,8 @@
- /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
- /* This file is released under the LGPL, any version you like */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <features.h>
-+#include <jmpbuf-offsets.h>
-
- .globl _setjmp;
- .type _setjmp,@function
-@@ -14,7 +13,7 @@
- moveal %sp@(4), %a0
- movel %sp@(0), %a0@(JB_PC)
- moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
--#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
-+#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
- fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
- #endif
- clrl %d0
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/crt1.S uClibc-git/libc/sysdeps/linux/m68k/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/crt1.S 2014-07-25 20:36:07.189336691 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include "m68k_pic.S"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/fpu_control.h uClibc-git/libc/sysdeps/linux/m68k/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/fpu_control.h 2014-07-25 20:36:07.193336713 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-offsets.h 2014-07-25 20:36:07.193336713 +0200
-@@ -0,0 +1,19 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+
-+#define JB_REGS 0
-+#define JB_DREGS 0
-+#define JB_AREGS 24
-+#define JB_PC 48
-+#define JB_FPREGS 52
-+
-+#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
-+# define JB_SIZE 76
-+#else
-+# define JB_SIZE 52
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-unwind.h 2014-07-25 20:36:07.193336713 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->__aregs[5])
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/__longjmp.S uClibc-git/libc/sysdeps/linux/m68k/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/__longjmp.S 2014-07-25 20:36:07.177336629 +0200
-@@ -2,10 +2,8 @@
- /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
- /* This file is released under the LGPL, any version you like */
-
--#define _ASM
--#define _SETJMP_H
- #include <features.h>
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- .globl __longjmp
- .type __longjmp,@function
-@@ -17,7 +15,7 @@
- movel #1, %d0
- 1:
- moveml %a0@(JB_REGS), %d2-%d7/%a2-%a7
--#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
-+#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
- fmovemx %a0@(JB_FPREGS), %fp2-%fp7
- #endif
- movel %a0@(JB_PC), %sp@
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/Makefile.arch uClibc-git/libc/sysdeps/linux/m68k/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/Makefile.arch 2014-07-25 20:36:07.177336629 +0200
-@@ -5,6 +5,6 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c
-+CSRC-y := brk.c __syscall_error.c
-
--SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S vfork.S
-+SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/setjmp.S uClibc-git/libc/sysdeps/linux/m68k/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/setjmp.S 2014-07-25 20:36:07.193336713 +0200
-@@ -2,9 +2,8 @@
- /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
- /* This file is released under the LGPL, any version you like */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <features.h>
-+#include <jmpbuf-offsets.h>
- #include "m68k_pic.S"
-
- .globl __sigsetjmp;
-@@ -15,7 +14,7 @@
- moveal %sp@(4), %a0
- movel %sp@(0), %a0@(JB_PC)
- moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
--#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
-+#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
- fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
- #endif
- clrl %d0
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/procfs.h uClibc-git/libc/sysdeps/linux/m68k/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/sys/procfs.h 2014-07-25 20:36:07.205336775 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/reg.h uClibc-git/libc/sysdeps/linux/m68k/sys/reg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/sys/reg.h 2014-07-25 20:36:07.205336775 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_REG_H
- #define _SYS_REG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/ucontext.h uClibc-git/libc/sysdeps/linux/m68k/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/sys/ucontext.h 2014-07-25 20:36:07.205336775 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* System V/m68k ABI compliant context switching support. */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/vfork.S uClibc-git/libc/sysdeps/linux/m68k/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/m68k/vfork.S 2014-07-25 20:36:07.205336775 +0200
-@@ -4,9 +4,7 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--
--#include <asm/unistd.h>
-+#include <sys/syscall.h>
-
- #ifndef __NR_vfork
- #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
-@@ -16,7 +14,6 @@
-
- .text
- .align 2
-- .globl errno
- .globl __vfork
- .hidden __vfork
- .type __vfork,@function
-@@ -42,4 +39,4 @@
-
- .size __vfork,.-__vfork
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/Makefile.commonarch uClibc-git/libc/sysdeps/linux/Makefile.commonarch
---- uClibc-0.9.33.2/libc/sysdeps/linux/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/Makefile.commonarch 2014-07-25 20:36:06.477332962 +0200
-@@ -8,15 +8,15 @@
- ARCH_DIR := $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
- ARCH_OUT := $(top_builddir)libc/sysdeps/linux/$(TARGET_ARCH)
-
--ARCH_CSRC := $(patsubst %.c,$(ARCH_DIR)/%.c,$(CSRC))
--ARCH_COBJ := $(patsubst %.c,$(ARCH_OUT)/%.o,$(CSRC))
--ARCH_SSRC = $(patsubst %.s,$(ARCH_DIR)/%.s,$(patsubst %.S,$(ARCH_DIR)/%.S,$(SSRC)))
--ARCH_SOBJ = $(patsubst %.s,$(ARCH_OUT)/%.o,$(patsubst %.S,$(ARCH_OUT)/%.o,$(SSRC)))
-+ARCH_CSRC := $(addprefix $(ARCH_DIR)/,$(CSRC-y))
-+ARCH_COBJ := $(addprefix $(ARCH_OUT)/,$(CSRC-y:.c=.o))
-+ARCH_SSRC = $(addprefix $(ARCH_DIR)/,$(SSRC-y))
-+ARCH_SOBJ = $(patsubst %.s,%.o,$(patsubst %.S,%.o,$(addprefix $(ARCH_OUT)/,$(SSRC-y))))
-
--ARCH_OBJS = $(ARCH_COBJ) $(ARCH_SOBJ)
-+ARCH_OBJS-y = $(ARCH_COBJ) $(ARCH_SOBJ)
-
- crt-y := FORCE
--libc-y += $(ARCH_OBJS)
-+libc-y += $(ARCH_OBJS-y)
- libc-nomulti-y += $(ARCH_SOBJ)
- objclean-y += CLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
-
-@@ -37,5 +37,23 @@
- headers_clean-y += HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
- HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
- $(do_rm) $(ARCH_HEADERS_OUT)
--
- endif
-+
-+CFLAGS-ucontext_i.c = -S
-+
-+$(ARCH_OUT)/ucontext_i.c: $(ARCH_DIR)/ucontext_i.sym
-+ $(do_awk) $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
-+
-+$(ARCH_OUT)/ucontext_i.s: $(ARCH_OUT)/ucontext_i.c
-+ $(compile.c)
-+
-+$(ARCH_OUT)/ucontext_i.h: $(ARCH_OUT)/ucontext_i.s
-+ $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
-+
-+pregen-headers-$(UCLIBC_HAS_CONTEXT_FUNCS) += $(ARCH_OUT)/ucontext_i.h
-+
-+headers_clean-$(UCLIBC_HAS_CONTEXT_FUNCS) += \
-+ HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i)
-+
-+HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i):
-+ $(do_rm) $(addprefix $(ARCH_OUT)/ucontext_i., c h s)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/atomic.h uClibc-git/libc/sysdeps/linux/metag/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/atomic.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/atomic.h 2014-07-25 20:36:07.233336922 +0200
-@@ -0,0 +1,66 @@
-+/*
-+ * Copyrith (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#include <stdint.h>
-+#include <sysdep.h>
-+
-+typedef int8_t atomic8_t;
-+typedef uint8_t uatomic8_t;
-+typedef int_fast8_t atomic_fast8_t;
-+typedef uint_fast8_t uatomic_fast8_t;
-+
-+typedef int32_t atomic32_t;
-+typedef uint32_t uatomic32_t;
-+typedef int_fast32_t atomic_fast32_t;
-+typedef uint_fast32_t uatomic_fast32_t;
-+
-+typedef intptr_t atomicptr_t;
-+typedef uintptr_t uatomicptr_t;
-+typedef intmax_t atomic_max_t;
-+typedef uintmax_t uatomic_max_t;
-+
-+void __metag_link_error (void);
-+
-+#define atomic_full_barrier() \
-+ __asm__ __volatile__("": : :"memory")
-+
-+/* Atomic compare and exchange. This sequence relies on the kernel to
-+ provide a compare and exchange operation which is atomic. */
-+
-+#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
-+ ({ __metag_link_error (); oldval; })
-+
-+#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
-+ ({ __metag_link_error (); oldval; })
-+
-+/* This code uses the kernel helper to do cmpxchg. It relies on the fact
-+ the helper code only clobbers D0Re0. */
-+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-+ ({ register __typeof (oldval) a_current __asm__ ("D1Ar1"); \
-+ register __typeof (oldval) a_newval __asm__ ("D0Ar2") = (newval); \
-+ register __typeof (mem) a_ptr __asm__ ("D1Ar3") = (mem); \
-+ register __typeof (oldval) a_oldval __asm__ ("D0Ar4") = (oldval); \
-+ __asm__ __volatile__ \
-+ ("0:\n\t" \
-+ "GETD %[cur], [%[ptr]]\n\t" \
-+ "CMP %[cur], %[old]\n\t" \
-+ "BNE 1f\n\t" \
-+ "MOVT D1RtP, #0x6fff\n\t" \
-+ "ADD D1RtP, D1RtP, #0xf040\n\t" \
-+ "SWAP D1RtP, PC\n\t" \
-+ "MOV %[cur], %[old]\n\t" \
-+ "CMP D0Re0, #0\n\t" \
-+ "BNE 0b\n\t" \
-+ "1:" \
-+ : [cur] "=&r" (a_current) \
-+ : [new] "r" (a_newval), [ptr] "r" (a_ptr), \
-+ [old] "r" (a_oldval) \
-+ : "D0Re0", "D1RtP", "cc", "memory"); \
-+ a_current; })
-+
-+#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
-+ ({ __metag_link_error (); oldval; })
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/endian.h uClibc-git/libc/sysdeps/linux/metag/bits/endian.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/endian.h 2014-07-25 20:36:07.233336922 +0200
-@@ -0,0 +1,12 @@
-+/* Meta is little endian
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _ENDIAN_H
-+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-+#endif
-+
-+#define __BYTE_ORDER __LITTLE_ENDIAN
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fcntl.h uClibc-git/libc/sysdeps/linux/metag/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/fcntl.h 2014-07-25 20:36:07.233336922 +0200
-@@ -0,0 +1,238 @@
-+/* O_*, F_*, FD_* bit values for Linux.
-+ Copyright (C) 1995-1998, 2000, 2004, 2006, 2007, 2008
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _FCNTL_H
-+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-+#endif
-+
-+#include <sys/types.h>
-+#ifdef __USE_GNU
-+# include <bits/uio.h>
-+#endif
-+
-+
-+/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
-+ located on an ext2 file system */
-+#define O_ACCMODE 0003
-+#define O_RDONLY 00
-+#define O_WRONLY 01
-+#define O_RDWR 02
-+#define O_CREAT 0100 /* not fcntl */
-+#define O_EXCL 0200 /* not fcntl */
-+#define O_NOCTTY 0400 /* not fcntl */
-+#define O_TRUNC 01000 /* not fcntl */
-+#define O_APPEND 02000
-+#define O_NONBLOCK 04000
-+#define O_NDELAY O_NONBLOCK
-+#define O_SYNC 010000
-+#define O_FSYNC O_SYNC
-+#define O_ASYNC 020000
-+
-+#ifdef __USE_GNU
-+# define O_DIRECT 040000 /* Direct disk access. */
-+# define O_DIRECTORY 0200000 /* Must be a directory. */
-+# define O_NOFOLLOW 0400000 /* Do not follow links. */
-+# define O_NOATIME 01000000 /* Do not set atime. */
-+# define O_CLOEXEC 02000000 /* Set close_on_exec. */
-+#endif
-+
-+/* For now Linux has synchronisity options for data and read operations.
-+ We define the symbols here but let them do the same as O_SYNC since
-+ this is a superset. */
-+#if defined __USE_POSIX199309 || defined __USE_UNIX98
-+# define O_DSYNC O_SYNC /* Synchronize data. */
-+# define O_RSYNC O_SYNC /* Synchronize read operations. */
-+#endif
-+
-+#ifdef __USE_LARGEFILE64
-+# define O_LARGEFILE 0100000
-+#endif
-+
-+/* Values for the second argument to `fcntl'. */
-+#define F_DUPFD 0 /* Duplicate file descriptor. */
-+#define F_GETFD 1 /* Get file descriptor flags. */
-+#define F_SETFD 2 /* Set file descriptor flags. */
-+#define F_GETFL 3 /* Get file status flags. */
-+#define F_SETFL 4 /* Set file status flags. */
-+#ifndef __USE_FILE_OFFSET64
-+# define F_GETLK 5 /* Get record locking info. */
-+# define F_SETLK 6 /* Set record locking info (non-blocking). */
-+# define F_SETLKW 7 /* Set record locking info (blocking). */
-+#else
-+# define F_GETLK F_GETLK64 /* Get record locking info. */
-+# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
-+# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
-+#endif
-+#define F_GETLK64 12 /* Get record locking info. */
-+#define F_SETLK64 13 /* Set record locking info (non-blocking). */
-+#define F_SETLKW64 14 /* Set record locking info (blocking). */
-+
-+#if defined __USE_BSD || defined __USE_UNIX98
-+# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
-+# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
-+#endif
-+
-+#ifdef __USE_GNU
-+# define F_SETSIG 10 /* Set number of signal to be sent. */
-+# define F_GETSIG 11 /* Get number of signal to be sent. */
-+#endif
-+
-+#ifdef __USE_GNU
-+# define F_SETLEASE 1024 /* Set a lease. */
-+# define F_GETLEASE 1025 /* Enquire what lease is active. */
-+# define F_NOTIFY 1026 /* Request notfications on a directory. */
-+# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
-+ close-on-exit set on new fd. */
-+#endif
-+
-+/* For F_[GET|SET]FD. */
-+#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
-+
-+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
-+#define F_RDLCK 0 /* Read lock. */
-+#define F_WRLCK 1 /* Write lock. */
-+#define F_UNLCK 2 /* Remove lock. */
-+
-+/* For old implementation of bsd flock(). */
-+#define F_EXLCK 4 /* or 3 */
-+#define F_SHLCK 8 /* or 4 */
-+
-+#ifdef __USE_BSD
-+/* Operations for bsd flock(), also used by the kernel implementation. */
-+# define LOCK_SH 1 /* shared lock */
-+# define LOCK_EX 2 /* exclusive lock */
-+# define LOCK_NB 4 /* or'd with one of the above to prevent
-+ blocking */
-+# define LOCK_UN 8 /* remove lock */
-+#endif
-+
-+#ifdef __USE_GNU
-+# define LOCK_MAND 32 /* This is a mandatory flock: */
-+# define LOCK_READ 64 /* ... which allows concurrent read operations. */
-+# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
-+# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
-+#endif
-+
-+#ifdef __USE_GNU
-+/* Types of directory notifications that may be requested with F_NOTIFY. */
-+# define DN_ACCESS 0x00000001 /* File accessed. */
-+# define DN_MODIFY 0x00000002 /* File modified. */
-+# define DN_CREATE 0x00000004 /* File created. */
-+# define DN_DELETE 0x00000008 /* File removed. */
-+# define DN_RENAME 0x00000010 /* File renamed. */
-+# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
-+# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
-+#endif
-+
-+struct flock
-+ {
-+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
-+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
-+#ifndef __USE_FILE_OFFSET64
-+ __off_t l_start; /* Offset where the lock begins. */
-+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
-+#else
-+ __off64_t l_start; /* Offset where the lock begins. */
-+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
-+#endif
-+ __pid_t l_pid; /* Process holding the lock. */
-+ };
-+
-+#ifdef __USE_LARGEFILE64
-+struct flock64
-+ {
-+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
-+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
-+ __off64_t l_start; /* Offset where the lock begins. */
-+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
-+ __pid_t l_pid; /* Process holding the lock. */
-+ };
-+#endif
-+
-+/* Define some more compatibility macros to be backward compatible with
-+ BSD systems which did not managed to hide these kernel macros. */
-+#ifdef __USE_BSD
-+# define FAPPEND O_APPEND
-+# define FFSYNC O_FSYNC
-+# define FASYNC O_ASYNC
-+# define FNONBLOCK O_NONBLOCK
-+# define FNDELAY O_NDELAY
-+#endif /* Use BSD. */
-+
-+/* Advise to `posix_fadvise'. */
-+#ifdef __USE_XOPEN2K
-+# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
-+# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
-+# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
-+# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
-+# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
-+# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
-+#endif
-+
-+
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
-+/* Flags for SYNC_FILE_RANGE. */
-+# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
-+ in the range before performing the
-+ write. */
-+# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
-+ dirty pages in the range which are
-+ not presently under writeback. */
-+# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
-+ the range after performing the
-+ write. */
-+
-+/* Flags for SPLICE and VMSPLICE. */
-+# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
-+# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
-+ (but we may still block on the fd
-+ we splice from/to). */
-+# define SPLICE_F_MORE 4 /* Expect more data. */
-+# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
-+#endif
-+
-+__BEGIN_DECLS
-+
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
-+
-+/* Provide kernel hint to read ahead. */
-+extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-+ __THROW;
-+
-+/* Selective file content synch'ing. */
-+extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
-+ unsigned int __flags);
-+
-+/* Splice address range into a pipe. */
-+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
-+ size_t __count, unsigned int __flags);
-+
-+/* Splice two files together. */
-+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
-+ __off64_t *__offout, size_t __len,
-+ unsigned int __flags);
-+
-+/* In-kernel implementation of tee for pipe buffers. */
-+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
-+ unsigned int __flags);
-+
-+#endif
-+__END_DECLS
-+
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fenv.h uClibc-git/libc/sysdeps/linux/metag/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/fenv.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,77 @@
-+/* Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _FENV_H
-+# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-+#endif
-+
-+
-+/* Define bits representing the exception. We use the bit positions
-+ of the appropriate bits in TXDEFR. */
-+enum
-+ {
-+ FE_INEXACT = 0x1,
-+#define FE_INEXACT FE_INEXACT
-+ FE_UNDERFLOW = 0x2,
-+#define FE_UNDERFLOW FE_UNDERFLOW
-+ FE_OVERFLOW = 0x4,
-+#define FE_OVERFLOW FE_OVERFLOW
-+ FE_DIVBYZERO = 0x8,
-+#define FE_DIVBYZERO FE_DIVBYZERO
-+ FE_INVALID = 0x10,
-+#define FE_INVALID FE_INVALID
-+ };
-+
-+#define FE_ALL_EXCEPT \
-+ (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
-+
-+/* The Meta FPU supports all of the four defined rounding modes. We
-+ use the values of the rounding mode bits in TXMODE as the values
-+ for the appropriate macros. */
-+enum
-+ {
-+ FE_TONEAREST = 0x0,
-+#define FE_TONEAREST FE_TONEAREST
-+ FE_TOWARDZERO = 0x1,
-+#define FE_TOWARDZERO FE_TOWARDZERO
-+ FE_UPWARD = 0x2,
-+#define FE_UPWARD FE_UPWARD
-+ FE_DOWNWARD = 0x3
-+#define FE_DOWNWARD FE_DOWNWARD
-+ };
-+
-+
-+/* Type representing exception flags. */
-+typedef unsigned int fexcept_t;
-+
-+
-+/* Type representing floating-point environment. */
-+typedef struct
-+ {
-+ unsigned int txdefr;
-+ unsigned int txmode;
-+ }
-+fenv_t;
-+
-+/* If the default argument is used we use this value. */
-+#define FE_DFL_ENV ((__const fenv_t *) -1)
-+
-+#ifdef __USE_GNU
-+/* Floating-point environment where none of the exception is masked. */
-+# define FE_NOMASK_ENV ((__const fenv_t *) -2)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/ipc.h uClibc-git/libc/sysdeps/linux/metag/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/ipc.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,55 @@
-+/* Copyright (C) 1995-1999, 2000, 2005, 2007 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+#ifndef _SYS_IPC_H
-+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-+#endif
-+
-+#include <bits/types.h>
-+
-+/* Mode bits for `msgget', `semget', and `shmget'. */
-+#define IPC_CREAT 01000 /* Create key if key does not exist. */
-+#define IPC_EXCL 02000 /* Fail if key exists. */
-+#define IPC_NOWAIT 04000 /* Return error on wait. */
-+
-+/* Control commands for `msgctl', `semctl', and `shmctl'. */
-+#define IPC_RMID 0 /* Remove identifier. */
-+#define IPC_SET 1 /* Set `ipc_perm' options. */
-+#define IPC_STAT 2 /* Get `ipc_perm' options. */
-+#ifdef __USE_GNU
-+# define IPC_INFO 3 /* See ipcs. */
-+#endif
-+
-+/* Special key values. */
-+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-+
-+
-+/* Data structure used to pass permission information to IPC operations. */
-+struct ipc_perm
-+ {
-+ __key_t __key; /* Key. */
-+ __uid_t uid; /* Owner's user ID. */
-+ __gid_t gid; /* Owner's group ID. */
-+ __uid_t cuid; /* Creator's user ID. */
-+ __gid_t cgid; /* Creator's group ID. */
-+ unsigned int mode; /* Read/write permission. */
-+ unsigned short __seq; /* Sequence number. */
-+ unsigned short __pad1;
-+ unsigned long __unused1;
-+ unsigned long __unused2;
-+ };
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/metag/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/kernel_types.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/kernel_types.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,47 @@
-+/* Note that we use the exact same include guard #define names
-+ * as asm/posix_types.h. This will avoid gratuitous conflicts
-+ * with the posix_types.h kernel header, and will ensure that
-+ * our private content, and not the kernel header, will win.
-+ * -Erik
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef __ASM_GENERIC_POSIX_TYPES_H
-+#define __ASM_GENERIC_POSIX_TYPES_H
-+
-+typedef unsigned int __kernel_dev_t;
-+typedef unsigned int __kernel_ino_t;
-+typedef unsigned int __kernel_mode_t;
-+typedef unsigned long __kernel_nlink_t;
-+typedef long __kernel_off_t;
-+typedef int __kernel_pid_t;
-+typedef unsigned int __kernel_uid_t;
-+typedef unsigned int __kernel_gid_t;
-+typedef unsigned int __kernel_size_t;
-+typedef int __kernel_ssize_t;
-+typedef long __kernel_ptrdiff_t;
-+typedef long __kernel_time_t;
-+typedef long __kernel_suseconds_t;
-+typedef long __kernel_clock_t;
-+typedef int __kernel_daddr_t;
-+typedef char * __kernel_caddr_t;
-+typedef int __kernel_ipc_pid_t;
-+typedef unsigned short __kernel_uid16_t;
-+typedef unsigned short __kernel_gid16_t;
-+typedef unsigned int __kernel_uid32_t;
-+typedef unsigned int __kernel_gid32_t;
-+typedef unsigned int __kernel_old_uid_t;
-+typedef unsigned int __kernel_old_gid_t;
-+typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long long __kernel_loff_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-+
-+typedef struct {
-+ int val[2];
-+} __kernel_fsid_t;
-+
-+#endif /* __ASM_GENERIC_POSIX_TYPES_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/profil-counter.h uClibc-git/libc/sysdeps/linux/metag/bits/profil-counter.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/profil-counter.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/profil-counter.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,17 @@
-+/*
-+ * Low-level statistical profiling support function. Linux/Meta version.
-+ *
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ * Based on the SH version from the GNU C Library.
-+ */
-+
-+#include <signal.h>
-+
-+static void
-+profil_counter (int signo, struct sigcontext sc)
-+{
-+ profil_count (sc.cbuf.ctx.CurrPC);
-+}
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/setjmp.h uClibc-git/libc/sysdeps/linux/metag/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/setjmp.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,44 @@
-+/*
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+/* Define the machine-dependent type `jmp_buf' */
-+#ifndef _BITS_SETJMP_H
-+#define _BITS_SETJMP_H 1
-+
-+#if !defined _SETJMP_H && !defined _PTHREAD_H
-+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-+#endif
-+
-+/*
-+ jmp_buf[0] - A0StP
-+ jmp_buf[1] - A1GbP
-+ jmp_buf[2] - A0FrP
-+ jmp_buf[3] - A1LbP
-+ jmp_buf[4] - D0FrT
-+ jmp_buf[5] - D1RtP
-+ jmp_buf[6] - D0.5
-+ jmp_buf[7] - D1.5
-+ jmp_buf[8] - D0.6
-+ jmp_buf[9] - D1.6
-+ jmp_buf[10] - D0.7
-+ jmp_buf[11] - D1.7
-+ */
-+
-+#define _JBLEN 24
-+#if defined (__USE_MISC) || defined (_ASM)
-+#define JB_SP 0
-+#endif
-+
-+#ifndef _ASM
-+typedef int __jmp_buf[_JBLEN] __attribute__((aligned (8)));
-+#endif
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) > (void *) (jmpbuf)[JB_SP])
-+
-+#endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/metag/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/sigcontextinfo.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,14 @@
-+/*
-+ * Copyright (C) 2013, Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#define SIGCONTEXT struct sigcontext
-+#define SIGCONTEXT_EXTRA_ARGS
-+#define GET_PC(ctx) ((void *) ctx.cbuf.ctx.CurrPC)
-+#define GET_FRAME(ctx) ((void *) ctx.cbuf.ctx.AX[1].U0)
-+#define GET_STACK(ctx) ((void *) ctx.cbuf.ctx.AX[0].U0)
-+#define CALL_SIGHANDLER(handler, signo, ctx) \
-+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/metag/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/stackinfo.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/stackinfo.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,28 @@
-+/* Copyright (C) 2001 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+/* This file contains a bit of information about the stack allocation
-+ of the processor. */
-+
-+#ifndef _STACKINFO_H
-+#define _STACKINFO_H 1
-+
-+/* On Meta the stack grows up. */
-+#define _STACK_GROWS_UP 1
-+
-+#endif /* stackinfo.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/syscalls.h uClibc-git/libc/sysdeps/linux/metag/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/syscalls.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/syscalls.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,120 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#ifndef _BITS_SYSCALLS_H
-+#define _BITS_SYSCALLS_H
-+#ifndef _SYSCALL_H
-+# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
-+#endif
-+
-+/*
-+ Meta version adapted from the ARM version.
-+*/
-+
-+#define SYS_ify(syscall_name) (__NR_##syscall_name)
-+
-+#ifdef __ASSEMBLER__
-+
-+/* Call a given syscall, with arguments loaded. */
-+#undef DO_CALL
-+#define DO_CALL(syscall_name, args) \
-+ MOV D1Re0, #SYS_ify (syscall_name); \
-+ SWITCH #0x440001
-+
-+#else
-+
-+#include <errno.h>
-+
-+#undef INLINE_SYSCALL_NCS
-+#define INLINE_SYSCALL_NCS(name, nr, args...) \
-+(__extension__ \
-+ ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL_NCS (name, , nr, args); \
-+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
-+ { \
-+ __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
-+ _inline_sys_result = (unsigned int) -1; \
-+ } \
-+ (int) _inline_sys_result; }) \
-+)
-+
-+#undef INTERNAL_SYSCALL_DECL
-+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
-+
-+#undef INTERNAL_SYSCALL_NCS
-+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
-+(__extension__ \
-+ ({unsigned int __sys_result; \
-+ { \
-+ PREP_ARGS_##nr (args); \
-+ register int _result __asm__ ("D0Re0"), _nr __asm__ ("D1Re0"); \
-+ LOAD_ARGS_##nr; \
-+ _nr = (name); \
-+ __asm__ volatile ("SWITCH #0x440001 ! syscall " #name \
-+ : "=r" (_result) \
-+ : "d" (_nr) ASM_ARGS_##nr \
-+ : "memory"); \
-+ __sys_result = _result; \
-+ } \
-+ (int) __sys_result; }) \
-+)
-+
-+#undef INTERNAL_SYSCALL_ERROR_P
-+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
-+ ((unsigned int) (val) >= 0xfffff001u)
-+
-+#undef INTERNAL_SYSCALL_ERRNO
-+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
-+
-+#define PREP_ARGS_0()
-+#define PREP_ARGS_1(a1) \
-+ int _t1 = (int) (a1); \
-+ PREP_ARGS_0 ()
-+#define PREP_ARGS_2(a1, a2) \
-+ int _t2 = (int) (a2); \
-+ PREP_ARGS_1 (a1)
-+#define PREP_ARGS_3(a1, a2, a3) \
-+ int _t3 = (int) (a3); \
-+ PREP_ARGS_2 (a1, a2)
-+#define PREP_ARGS_4(a1, a2, a3, a4) \
-+ int _t4 = (int) (a4); \
-+ PREP_ARGS_3 (a1, a2, a3)
-+#define PREP_ARGS_5(a1, a2, a3, a4, a5) \
-+ int _t5 = (int) (a5); \
-+ PREP_ARGS_4 (a1, a2, a3, a4)
-+#define PREP_ARGS_6(a1, a2, a3, a4, a5, a6) \
-+ int _t6 = (int) (a6); \
-+ PREP_ARGS_5 (a1, a2, a3, a4, a5)
-+
-+#define LOAD_ARGS_0
-+#define ASM_ARGS_0
-+#define LOAD_ARGS_1 \
-+ register int _a1 __asm__ ("D1Ar1") = (int) (_t1); \
-+ LOAD_ARGS_0
-+#define ASM_ARGS_1 ASM_ARGS_0, "d" (_a1)
-+#define LOAD_ARGS_2 \
-+ register int _a2 __asm__ ("D0Ar2") = (int) (_t2); \
-+ LOAD_ARGS_1
-+#define ASM_ARGS_2 ASM_ARGS_1, "d" (_a2)
-+#define LOAD_ARGS_3 \
-+ register int _a3 __asm__ ("D1Ar3") = (int) (_t3); \
-+ LOAD_ARGS_2
-+#define ASM_ARGS_3 ASM_ARGS_2, "d" (_a3)
-+#define LOAD_ARGS_4 \
-+ register int _a4 __asm__ ("D0Ar4") = (int) (_t4); \
-+ LOAD_ARGS_3
-+#define ASM_ARGS_4 ASM_ARGS_3, "d" (_a4)
-+#define LOAD_ARGS_5 \
-+ register int _a5 __asm__ ("D1Ar5") = (int) (_t5); \
-+ LOAD_ARGS_4
-+#define ASM_ARGS_5 ASM_ARGS_4, "d" (_a5)
-+#define LOAD_ARGS_6 \
-+ register int _a6 __asm__ ("D0Ar6") = (int) (_t6); \
-+ LOAD_ARGS_5
-+#define ASM_ARGS_6 ASM_ARGS_5, "d" (_a6)
-+
-+#endif /* __ASSEMBLER__ */
-+#endif /* _BITS_SYSCALLS_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,46 @@
-+/*
-+ * Track misc arch-specific features that aren't config options
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
-+#define _BITS_UCLIBC_ARCH_FEATURES_H
-+
-+/* instruction used when calling abort() to kill yourself */
-+/*#define __UCLIBC_ABORT_INSTRUCTION__ "asm instruction"*/
-+#undef __UCLIBC_ABORT_INSTRUCTION__
-+
-+/* can your target use syscall6() for mmap ? */
-+#define __UCLIBC_MMAP_HAS_6_ARGS__
-+
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-+
-+/* does your target have a broken create_module() ? */
-+#undef __UCLIBC_BROKEN_CREATE_MODULE__
-+
-+/* does your target have to worry about older [gs]etrlimit() ? */
-+#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
-+
-+/* does your target have an asm .set ? */
-+#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
-+
-+/* define if target doesn't like .global */
-+#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
-+
-+/* define if target supports .weak */
-+#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
-+
-+/* define if target supports .weakext */
-+#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
-+
-+/* needed probably only for ppc64 */
-+#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
-+
-+/* define if target supports IEEE signed zero floats */
-+#define __UCLIBC_HAVE_SIGNED_ZERO__
-+
-+#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/wordsize.h uClibc-git/libc/sysdeps/linux/metag/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/wordsize.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/bits/wordsize.h 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,19 @@
-+/* Copyright (C) 1999 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/brk.c uClibc-git/libc/sysdeps/linux/metag/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/brk.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/brk.c 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,38 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <errno.h>
-+#include <unistd.h>
-+#include <sys/syscall.h>
-+
-+libc_hidden_proto(brk)
-+
-+/* This must be initialized data because commons can't have aliases. */
-+void * __curbrk attribute_hidden = 0;
-+
-+int brk (void *addr)
-+{
-+ void *newbrk;
-+
-+ __asm__ __volatile__ ("MOV D1Re0,%2\n\t"
-+ "MOV D1Ar1,%1\n\t"
-+ "SWITCH #0x440001\n\t"
-+ "MOV %0,D0Re0"
-+ : "=r" (newbrk)
-+ : "r" (addr), "K" (__NR_brk)
-+ : "D0Re0", "D1Re0", "D1Ar1");
-+
-+ __curbrk = newbrk;
-+
-+ if (newbrk < addr)
-+ {
-+ __set_errno (ENOMEM);
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+libc_hidden_def(brk)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/clone.S uClibc-git/libc/sysdeps/linux/metag/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/clone.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/clone.S 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,101 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+! clone() is even more special than fork() as it mucks with stacks
-+! and invokes a function in the right context after its all over.
-+
-+#include <asm/errno.h>
-+#include <asm/unistd.h>
-+
-+#define CLONE_VM 0x00000100
-+#define CLONE_THREAD 0x00010000
-+
-+#ifdef __PIC__
-+#define __CLONE_METAG_LOAD_TP ___metag_load_tp@PLT
-+#else
-+#define __CLONE_METAG_LOAD_TP ___metag_load_tp
-+#endif
-+
-+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
-+ pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
-+
-+ .text
-+ .global __clone
-+ .type __clone,function
-+__clone:
-+ ! sanity check args
-+ MOV D0Re0, #-EINVAL
-+ CMP D1Ar1, #0
-+ BEQ ___error
-+ CMP D0Ar2, #0
-+ BEQ ___error
-+
-+ ! save function pointer
-+ MOV D0FrT, D1Ar1
-+
-+ ! do the system call
-+ MOV D1Ar1, D1Ar3
-+ MOV D1Ar3, D1Ar5
-+ MOV D1Ar5, D0Ar6
-+ MOV D0Ar6, D0Ar4
-+ GETD D0Ar4, [A0StP+#-4]
-+
-+ ! new sp is already in D0Ar2
-+ MOV D1Re0, #__NR_clone
-+ SWITCH #0x440001
-+ CMP D0Re0,#0
-+ ! Error on -1
-+ BLT ___error
-+ ! If non-zero we are the parent
-+ MOVNE PC, D1RtP
-+ ! BRKPNT
-+
-+ ! We are the child
-+#ifdef RESET_PID
-+ SETL [A0StP++], D0FrT, D1RtP
-+ MOVT D0FrT, #HI(CLONE_THREAD)
-+ ADD D0FrT, D0FrT, #LO(CLONE_THREAD)
-+ ANDS D0FrT, D0FrT, D1Ar1
-+ BNZ 3f
-+ MOVT D0FrT, #HI(CLONE_VM)
-+ ADD D0FrT, D0FrT, #LO(CLONE_VM)
-+ ANDS D0FrT, D0FrT, D1Ar1
-+ BZ 1f
-+ MOV D1Ar1, #-1
-+ BA 2f
-+1: MOV D1Re0, #__NR_getpid
-+ SWITCH #0x440001
-+ MOV D1Ar1, D0Re0
-+2: CALLR D1RtP, __CLONE_METAG_LOAD_TP
-+ SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE
-+ SETD [D0Re0 + #PID], D1Ar1
-+ SETD [D0Re0 + #TID], D1Ar1
-+3: GETL D0FrT, D1RtP, [--A0StP]
-+#endif
-+ ! Rearrange the function arg and call address from registers
-+ MOV D0Ar2, D0FrT
-+ MOV D1Ar1, D0Ar6
-+ MOV D1RtP, PC
-+ ADD D1RtP, D1RtP, #8
-+ MOV PC, D0Ar2
-+
-+ ! and we are done, passing the return value D0Re0 through D1Ar1
-+ MOV D1Ar1, D0Re0
-+#ifdef __PIC__
-+ B _exit@PLT
-+#else
-+ B _exit
-+#endif
-+
-+___error:
-+ MOV D1Ar1, D0Re0
-+#ifdef __PIC__
-+ B ___syscall_error@PLT
-+#else
-+ B ___syscall_error
-+#endif
-+ .size __clone, .-__clone
-+
-+.weak _clone
-+_clone = __clone
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crt1.S uClibc-git/libc/sysdeps/linux/metag/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crt1.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/crt1.S 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,75 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+#include <asm/unistd.h>
-+
-+ .text
-+ .global __start
-+ .type __start,function
-+__start:
-+ MOV D0FrT,A0StP
-+ MOV A0FrP,A0StP
-+
-+ MOV A0.2,#0
-+ MOV A0.3,#0
-+
-+ MOV A1.1,#0
-+ MOV A1.2,#0
-+ MOV A1.3,#0
-+
-+ MOV D0.5,#0
-+ MOV D0.6,#0
-+ MOV D0.7,#0
-+
-+ MOV D1.5,#0
-+ MOV D1.6,#0
-+ MOV D1.7,#0
-+
-+ MOV D1Ar3,D0Ar2 ! argv
-+ MOV D0Ar2,D1Ar1 ! argc
-+ MOV D0Ar6,D0Ar4 ! rtld_fini
-+
-+#ifdef __PIC__
-+ ADDT A1LbP,CPC1,#HI(__GLOBAL_OFFSET_TABLE__)
-+ ADD A1LbP,A1LbP,#LO(__GLOBAL_OFFSET_TABLE__+4)
-+
-+ MOV D1Ar1,A1LbP
-+ ADDT D1Ar1,D1Ar1,#HI(_main@GOTOFF)
-+ ADD D1Ar1,D1Ar1,#LO(_main@GOTOFF)
-+
-+ MOV D0Ar4,A1LbP
-+ ADDT D0Ar4,D0Ar4,#HI(__init@GOTOFF)
-+ ADD D0Ar4,D0Ar4,#LO(__init@GOTOFF)
-+
-+ MOV D1Ar5,A1LbP
-+ ADDT D1Ar5,D1Ar5,#HI(__fini@GOTOFF)
-+ ADD D1Ar5,D1Ar5,#LO(__fini@GOTOFF)
-+#else
-+ MOVT D1Ar1,#HI(_main)
-+ ADD D1Ar1,D1Ar1,#LO(_main)
-+ MOVT D0Ar4,#HI(__init)
-+ ADD D0Ar4,D0Ar4,#LO(__init)
-+ MOVT D1Ar5,#HI(__fini)
-+ ADD D1Ar5,D1Ar5,#LO(__fini)
-+#endif
-+
-+ MOVT D1Re0,#0x80
-+
-+ SETL [A0StP++],D0Re0,D1Re0 ! stack_end (8Mb)
-+
-+ MOV D1Re0,#0
-+ MOV D0Re0,#0
-+
-+#ifdef __PIC__
-+ CALLR D1RtP, ___uClibc_main@PLT
-+#else
-+ CALLR D1RtP, ___uClibc_main
-+#endif
-+
-+ MOV D1Re0,#__NR_exit
-+ MOV D1Ar1,#0x1
-+ SWITCH #0x440001 ! exit syscall
-+
-+ .size __start,.-__start
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crti.S uClibc-git/libc/sysdeps/linux/metag/crti.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crti.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/crti.S 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,19 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+ .section .init
-+ .global __init
-+ .type __init,function
-+__init:
-+ MOV D0FrT, A0FrP
-+ ADD A0FrP, A0StP, #0
-+ SETL [A0StP++], D0.4, D1RtP
-+
-+ .section .fini
-+ .global __fini
-+ .type __fini,function
-+__fini:
-+ MOV D0FrT, A0FrP
-+ ADD A0FrP, A0StP, #0
-+ SETL [A0StP++], D0.4, D1RtP
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crtn.S uClibc-git/libc/sysdeps/linux/metag/crtn.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crtn.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/crtn.S 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,19 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+ .section .init
-+ .global __init
-+ .type __init,function
-+ GETL D0.4, D1RtP, [A0FrP+#8++]
-+ SUB A0StP, A0FrP, #8
-+ MOV A0FrP, D0.4
-+ MOV PC, D1RtP
-+
-+ .section .fini
-+ .global __fini
-+ .type __fini,function
-+ GETL D0.4, D1RtP, [A0FrP+#8++]
-+ SUB A0StP, A0FrP, #8
-+ MOV A0FrP, D0.4
-+ MOV PC, D1RtP
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/libc-metag_load_tp.S uClibc-git/libc/sysdeps/linux/metag/libc-metag_load_tp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/libc-metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/libc-metag_load_tp.S 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <ldso/ldso/metag/metag_load_tp.S>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/_longjmp.S uClibc-git/libc/sysdeps/linux/metag/_longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/_longjmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/_longjmp.S 2014-07-25 20:36:07.221336859 +0200
-@@ -0,0 +1,25 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+
-+ .text
-+ .global ___longjmp
-+ .type ___longjmp,function
-+
-+___longjmp:
-+ !! If val is 0, set it to 1
-+ CMP D0Ar2,#0
-+ ADDZ D0Ar2,D0Ar2,#1
-+
-+ !! Restore A0/A1 regs
-+ MGETL A0.0,A0.1,[D1Ar1++]
-+ !! Restore D0/D1 regs
-+ MOV A0.3,D1Ar1
-+ MGETL D0FrT,D0.5,D0.6,D0.7,[A0.3++]
-+ !! Move 2nd argument to return value
-+ MOV D0Re0,D0Ar2
-+ MOV PC,D1RtP
-+ .size ___longjmp,.-___longjmp
-+
-+libc_hidden_def(__longjmp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile uClibc-git/libc/sysdeps/linux/metag/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/Makefile 2014-07-25 20:36:07.221336859 +0200
-@@ -0,0 +1,13 @@
-+# Makefile for uClibc
-+#
-+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+top_srcdir=../../../../
-+top_builddir=../../../../
-+all: objs
-+include $(top_builddir)Rules.mak
-+include Makefile.arch
-+include $(top_srcdir)Makerules
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile.arch uClibc-git/libc/sysdeps/linux/metag/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/Makefile.arch 2014-07-25 20:36:07.221336859 +0200
-@@ -0,0 +1,12 @@
-+# Makefile for uClibc
-+#
-+# Copyright (C) 2013 Imagination Technologies Ltd.
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+CSRC-y := brk.c syscall.c metag.c __syscall_error.c
-+
-+SSRC-y := _longjmp.S clone.S setjmp.S vfork.S
-+
-+SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-metag_load_tp.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/metag.c uClibc-git/libc/sysdeps/linux/metag/metag.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/metag.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/metag.c 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <errno.h>
-+#include <sys/syscall.h>
-+
-+_syscall2(int,metag_setglobalbit,char *,addr,int,mask)
-+_syscall1(void,metag_set_fpu_flags,unsigned int,flags)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/setjmp.S uClibc-git/libc/sysdeps/linux/metag/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/setjmp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/setjmp.S 2014-07-25 20:36:07.237336943 +0200
-@@ -0,0 +1,52 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+!!! setjmp and variants
-+ .text
-+
-+!! int _setjmp (jmp_buf __env)
-+!! Store the calling environment in ENV, not saving the signal mask.
-+!! Return 0. */
-+ .global __setjmp
-+ .type __setjmp,function
-+__setjmp:
-+ MOV D0Ar2,#0
-+ B ___sigsetjmp1
-+ .size __setjmp,.-__setjmp
-+
-+!! int setjmp (jmp_buf __env)
-+!! Store the calling environment in ENV, also saving the signal mask.
-+!! Return 0. */
-+ .global _setjmp
-+ .type _setjmp,function
-+_setjmp:
-+ MOV D0Ar2,#1
-+ !! fall through to __sigsetjmp
-+ .size _setjmp,.-_setjmp
-+
-+!! int __sigsetjmp (jmp_buf __env, int __savemask)
-+!! Store the calling environment in ENV, also saving the
-+!! signal mask if SAVEMASK is nonzero. Return 0.
-+!! This is the internal name for `sigsetjmp'.
-+ .global ___sigsetjmp
-+ .type ___sigsetjmp,function
-+___sigsetjmp:
-+___sigsetjmp1:
-+ !! Save A0/A1 regs
-+ MSETL [D1Ar1++],A0.0,A0.1
-+ !! Use A0.3 as temp
-+ MOV A0.3,D1Ar1
-+ !! Rewind D1Ar1 that was modified above
-+ SUB D1Ar1,D1Ar1,#(2*8)
-+ !! Save D0/D1 regs
-+ MSETL [A0.3++],D0FrT,D0.5,D0.6,D0.7
-+ !! Tail call __sigjmp_save
-+#ifdef __PIC__
-+ B ___sigjmp_save@PLT
-+#else
-+ B ___sigjmp_save
-+#endif
-+ .size ___sigsetjmp,.-___sigsetjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/io.h uClibc-git/libc/sysdeps/linux/metag/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/io.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/sys/io.h 2014-07-25 20:36:07.245336985 +0200
-@@ -0,0 +1,48 @@
-+/* Copyright (C) 1996, 1998, 1999, 2000 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _SYS_IO_H
-+
-+#define _SYS_IO_H 1
-+#include <features.h>
-+
-+__BEGIN_DECLS
-+
-+/* If TURN_ON is TRUE, request for permission to do direct i/o on the
-+ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
-+ permission off for that range. This call requires root privileges. */
-+extern int ioperm (unsigned long int __from, unsigned long int __num,
-+ int __turn_on) __THROW;
-+
-+/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
-+ permission to access any I/O port is granted. This call requires
-+ root privileges. */
-+extern int iopl (int __level) __THROW;
-+
-+/* The functions that actually perform reads and writes. */
-+extern unsigned char inb (unsigned long int port) __THROW;
-+extern unsigned short int inw (unsigned long int port) __THROW;
-+extern unsigned long int inl (unsigned long int port) __THROW;
-+
-+extern void outb (unsigned char value, unsigned long int port) __THROW;
-+extern void outw (unsigned short value, unsigned long int port) __THROW;
-+extern void outl (unsigned long value, unsigned long int port) __THROW;
-+
-+__END_DECLS
-+
-+#endif /* _SYS_IO_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/procfs.h uClibc-git/libc/sysdeps/linux/metag/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/procfs.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/sys/procfs.h 2014-07-25 20:36:07.245336985 +0200
-@@ -0,0 +1,121 @@
-+/* Copyright (C) 1996, 1997, 1999, 2007 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+#ifndef _SYS_PROCFS_H
-+#define _SYS_PROCFS_H 1
-+
-+/* This is somewhat modelled after the file of the same name on SVR4
-+ systems. It provides a definition of the core file format for ELF
-+ used on Linux. It doesn't have anything to do with the /proc file
-+ system, even though Linux has one.
-+
-+ Anyway, the whole purpose of this file is for GDB and GDB only.
-+ Don't read too much into it. Don't use it for anything other than
-+ GDB unless you know what you are doing. */
-+
-+#include <features.h>
-+#include <sys/time.h>
-+#include <sys/types.h>
-+#include <sys/user.h>
-+
-+__BEGIN_DECLS
-+
-+/* Type for a general-purpose register. */
-+typedef unsigned long elf_greg_t;
-+
-+#define ELF_NGREG 30
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+
-+/* Register set for the floating-point registers. */
-+#define ELF_NFPREG 18
-+typedef unsigned long elf_fpreg_t;
-+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-+
-+/* Signal info. */
-+struct elf_siginfo
-+ {
-+ int si_signo; /* Signal number. */
-+ int si_code; /* Extra code. */
-+ int si_errno; /* Errno. */
-+ };
-+
-+/* Definitions to generate Intel SVR4-like core files. These mostly
-+ have the same names as the SVR4 types with "elf_" tacked on the
-+ front to prevent clashes with Linux definitions, and the typedef
-+ forms have been avoided. This is mostly like the SVR4 structure,
-+ but more Linuxy, with things that Linux does not support and which
-+ GDB doesn't really use excluded. */
-+
-+struct elf_prstatus
-+ {
-+ struct elf_siginfo pr_info; /* Info associated with signal. */
-+ short int pr_cursig; /* Current signal. */
-+ unsigned long int pr_sigpend; /* Set of pending signals. */
-+ unsigned long int pr_sighold; /* Set of held signals. */
-+ __pid_t pr_pid;
-+ __pid_t pr_ppid;
-+ __pid_t pr_pgrp;
-+ __pid_t pr_sid;
-+ struct timeval pr_utime; /* User time. */
-+ struct timeval pr_stime; /* System time. */
-+ struct timeval pr_cutime; /* Cumulative user time. */
-+ struct timeval pr_cstime; /* Cumulative system time. */
-+ elf_gregset_t pr_reg; /* GP registers. */
-+ int pr_fpvalid; /* True if math copro being used. */
-+ };
-+
-+
-+#define ELF_PRARGSZ (80) /* Number of chars for args. */
-+
-+struct elf_prpsinfo
-+ {
-+ char pr_state; /* Numeric process state. */
-+ char pr_sname; /* Char for pr_state. */
-+ char pr_zomb; /* Zombie. */
-+ char pr_nice; /* Nice val. */
-+ unsigned long int pr_flag; /* Flags. */
-+ unsigned short int pr_uid;
-+ unsigned short int pr_gid;
-+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
-+ /* Lots missing */
-+ char pr_fname[16]; /* Filename of executable. */
-+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
-+ };
-+
-+/* The rest of this file provides the types for emulation of the
-+ Solaris <proc_service.h> interfaces that should be implemented by
-+ users of libthread_db. */
-+
-+/* Addresses. */
-+typedef void *psaddr_t;
-+
-+/* Register sets. Linux has different names. */
-+typedef elf_gregset_t prgregset_t;
-+typedef elf_fpregset_t prfpregset_t;
-+
-+/* We don't have any differences between processes and threads,
-+ therefore have only one PID type. */
-+typedef __pid_t lwpid_t;
-+
-+/* Process status and info. In the end we do provide typedefs for them. */
-+typedef struct elf_prstatus prstatus_t;
-+typedef struct elf_prpsinfo prpsinfo_t;
-+
-+__END_DECLS
-+
-+#endif /* sys/procfs.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/ucontext.h uClibc-git/libc/sysdeps/linux/metag/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/sys/ucontext.h 2014-07-25 20:36:07.249337006 +0200
-@@ -0,0 +1,96 @@
-+/* Copyright (C) 1998, 1999, 2001, 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+/* Meta ABI compliant context switching support. */
-+
-+#ifndef _SYS_UCONTEXT_H
-+#define _SYS_UCONTEXT_H 1
-+
-+#include <features.h>
-+#include <signal.h>
-+#include <sys/procfs.h>
-+
-+/* We need the signal context definitions even if they are not used
-+ included in <signal.h>. */
-+#include <bits/sigcontext.h>
-+
-+typedef int greg_t;
-+
-+/* Number of general registers. */
-+#define NGREG 18
-+
-+/* Container for all general registers. */
-+typedef elf_gregset_t gregset_t;
-+
-+/* Number of each register is the `gregset_t' array. */
-+enum
-+{
-+ R0 = 0,
-+#define R0 R0
-+ R1 = 1,
-+#define R1 R1
-+ R2 = 2,
-+#define R2 R2
-+ R3 = 3,
-+#define R3 R3
-+ R4 = 4,
-+#define R4 R4
-+ R5 = 5,
-+#define R5 R5
-+ R6 = 6,
-+#define R6 R6
-+ R7 = 7,
-+#define R7 R7
-+ R8 = 8,
-+#define R8 R8
-+ R9 = 9,
-+#define R9 R9
-+ R10 = 10,
-+#define R10 R10
-+ R11 = 11,
-+#define R11 R11
-+ R12 = 12,
-+#define R12 R12
-+ R13 = 13,
-+#define R13 R13
-+ R14 = 14,
-+#define R14 R14
-+ R15 = 15
-+#define R15 R15
-+};
-+
-+/* Structure to describe FPU registers. */
-+typedef elf_fpregset_t fpregset_t;
-+
-+/* Context to describe whole processor state. This only describes
-+ the core registers; coprocessor registers get saved elsewhere
-+ (e.g. in uc_regspace, or somewhere unspecified on the stack
-+ during non-RT signal handlers). */
-+typedef struct sigcontext mcontext_t;
-+
-+/* Userlevel context. */
-+typedef struct ucontext
-+ {
-+ unsigned long uc_flags;
-+ struct ucontext *uc_link;
-+ stack_t uc_stack;
-+ mcontext_t uc_mcontext;
-+ __sigset_t uc_sigmask;
-+ } ucontext_t;
-+
-+#endif /* sys/ucontext.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/user.h uClibc-git/libc/sysdeps/linux/metag/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/user.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/sys/user.h 2014-07-25 20:36:07.249337006 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * This file is not needed, but in practice gdb might try to include it.
-+ *
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/syscall.c uClibc-git/libc/sysdeps/linux/metag/syscall.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/syscall.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/syscall.c 2014-07-25 20:36:07.249337006 +0200
-@@ -0,0 +1,40 @@
-+/* syscall for META/uClibc
-+ *
-+ * Copyright (C) 2013 Imagination Technologies
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+#include <errno.h>
-+#include <sys/types.h>
-+#include <sys/syscall.h>
-+
-+long syscall(long sysnum,
-+ long arg1, long arg2, long arg3,
-+ long arg4, long arg5, long arg6)
-+{
-+
-+ register long __call __asm__ ("D1Re0") = sysnum;
-+ register long __res __asm__ ("D0Re0");
-+ register long __a __asm__ ("D1Ar1") = arg1;
-+ register long __b __asm__ ("D0Ar2") = arg2;
-+ register long __c __asm__ ("D1Ar3") = arg3;
-+ register long __d __asm__ ("D0Ar4") = arg4;
-+ register long __e __asm__ ("D1Ar5") = arg5;
-+ register long __f __asm__ ("D0Ar6") = arg6;
-+
-+
-+ __asm__ __volatile__ ("SWITCH #0x440001"
-+ : "=d" (__res)
-+ : "d" (__call), "d" (__a), "d" (__b),
-+ "d" (__c), "d" (__d), "d" (__e) , "d" (__f)
-+ : "memory");
-+
-+ if(__res >= (unsigned long) -4095) {
-+ long err = __res;
-+ (*__errno_location()) = (-err);
-+ __res = (unsigned long) -1;
-+ }
-+ return (long) __res;
-+}
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/__syscall_error.c uClibc-git/libc/sysdeps/linux/metag/__syscall_error.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/__syscall_error.c 2014-07-25 20:36:07.221336859 +0200
-@@ -0,0 +1,18 @@
-+/* Wrapper for setting errno.
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <errno.h>
-+#include <features.h>
-+
-+/* This routine is jumped to by all the syscall handlers, to stash
-+ * an error number into errno. */
-+int __syscall_error(int err_no) attribute_hidden;
-+int __syscall_error(int err_no)
-+{
-+ __set_errno(-err_no);
-+ return -1;
-+}
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sysdep.h uClibc-git/libc/sysdeps/linux/metag/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sysdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/sysdep.h 2014-07-25 20:36:07.249337006 +0200
-@@ -0,0 +1,59 @@
-+/*
-+ * Assembler macros for Meta.
-+ *
-+ * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <common/sysdep.h>
-+
-+#include <features.h>
-+#include <libc-internal.h>
-+
-+#ifdef __ASSEMBLER__
-+
-+#ifdef SHARED
-+#define PLTJMP(_x) _x##@PLT
-+#else
-+#define PLTJMP(_x) _x
-+#endif
-+
-+#undef PSEUDO_END
-+#define PSEUDO_END(name) \
-+ SYSCALL_ERROR_HANDLER \
-+ END (name)
-+
-+#if defined NOT_IN_libc
-+# define SYSCALL_ERROR __local_syscall_error
-+# ifdef RTLD_PRIVATE_ERRNO
-+# define SYSCALL_ERROR_HANDLER \
-+__local_syscall_error: \
-+ NEG D0Re0, D0Re0; \
-+ ADDT D1Re0, CPC1, #HI(_rtld_errno); \
-+ ADD D1Re0, D1Re0, #LO(_rtld_errno) + 4; \
-+ SETD [D1Re0], D0Re0; \
-+ NEG D0Re0, #0x1; \
-+ MOV PC, D1RtP;
-+# else
-+# define SYSCALL_ERROR_HANDLER \
-+__local_syscall_error: \
-+ MOV D1Re0, D1RtP; \
-+ SETL [A0StP++], D0Re0, D1Re0; \
-+ CALLR D1RtP, PLTJMP(___errno_location); \
-+ GETD D1Re0, [A0StP+#-8]; \
-+ NEG D1Re0, D1Re0; \
-+ SETD [D0Re0], D1Re0; \
-+ NEG D0Re0, #0x1; \
-+ GETD D1RtP, [A0StP+#-4]; \
-+ SUB A0StP, A0StP, #0x8; \
-+ MOV PC, D1RtP;
-+# endif
-+#else
-+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
-+# define SYSCALL_ERROR ___syscall_error
-+#endif
-+
-+#endif /* __ASSEMBLER __*/
-+
-+/* Pointer mangling is not yet supported for META. */
-+#define PTR_MANGLE(var) (void) (var)
-+#define PTR_DEMANGLE(var) (void) (var)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/vfork.S uClibc-git/libc/sysdeps/linux/metag/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/metag/vfork.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/metag/vfork.S 2014-07-25 20:36:07.249337006 +0200
-@@ -0,0 +1,67 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+#include <asm/unistd.h>
-+
-+#define _ERRNO_H
-+#include <bits/errno.h>
-+#include <sys/syscall.h>
-+
-+#ifndef SAVE_PID
-+#define SAVE_PID
-+#endif
-+
-+#ifndef RESTORE_PID
-+#define RESTORE_PID
-+#endif
-+
-+#ifdef __NR_vfork
-+#define __VFORK_NR __NR_vfork
-+#else
-+#define __VFORK_NR __NR_fork
-+#endif
-+
-+/* Clone the calling process, but without copying the whole address space.
-+ The calling process is suspended until the new process exits or is
-+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
-+ and the process ID of the new process to the old process. */
-+
-+ .balign 4
-+ .global ___vfork
-+ .hidden ___vfork
-+ .type ___vfork, @function
-+___vfork:
-+
-+ SAVE_PID
-+
-+ MOV D1Ar1, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
-+ MOV D0Ar2, #0
-+ MOV D1Ar3, #0
-+ MOV D0Ar4, #0
-+ MOV D1Ar5, #0
-+ MOV D0Ar6, #0
-+ MOV D1Re0, #__NR_clone
-+ SWITCH #0x440001
-+
-+ RESTORE_PID
-+
-+ MOVT D1Re0, #HI(-4096)
-+ ADD D1Re0, D1Re0, #LO(-4096)
-+ CMP D1Re0, D0Re0
-+ BCS error
-+
-+ /* Syscall worked. Return to child/parent */
-+ MOV PC, D1RtP
-+
-+error:
-+ MOV D1Ar1, D0Re0
-+#ifdef __PIC__
-+ B ___syscall_error@PLT
-+#else
-+ B ___syscall_error
-+#endif
-+ .size ___vfork,.-___vfork
-+
-+weak_alias(__vfork,vfork)
-+libc_hidden_weak(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/fcntl.h uClibc-git/libc/sysdeps/linux/microblaze/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/fcntl.h 2014-07-25 20:36:07.265337089 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/microblaze/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/kernel_types.h 2014-07-25 20:36:07.265337089 +0200
-@@ -44,6 +44,8 @@
- typedef unsigned int __kernel_old_uid_t;
- typedef unsigned int __kernel_old_gid_t;
- typedef unsigned int __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- #ifdef __GNUC__
- typedef long long __kernel_loff_t;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/poll.h uClibc-git/libc/sysdeps/linux/microblaze/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/poll.h 2014-07-25 20:36:07.265337089 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/setjmp.h uClibc-git/libc/sysdeps/linux/microblaze/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/setjmp.h 2014-07-25 20:36:07.265337089 +0200
-@@ -19,7 +19,6 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- typedef struct
- {
- /* Stack pointer. */
-@@ -35,13 +34,5 @@
- /* Callee-saved registers r18-r31. */
- int __regs[14];
- } __jmp_buf[1];
--#endif
--
--#define JB_SIZE (4 * 18)
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[0].__sp)
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/microblaze/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/stackinfo.h 2014-07-25 20:36:07.265337089 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h 2014-07-25 20:36:07.265337089 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_page.h 2014-07-25 20:36:07.265337089 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/wordsize.h uClibc-git/libc/sysdeps/linux/microblaze/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/bits/wordsize.h 2014-07-25 20:36:07.265337089 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h 2014-07-25 20:36:07.265337089 +0200
-@@ -0,0 +1,6 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#define JB_SIZE (4 * 18)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h 2014-07-25 20:36:07.265337089 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[0].__sp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/__longjmp.S uClibc-git/libc/sysdeps/linux/microblaze/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/__longjmp.S 2014-07-25 20:36:07.257337048 +0200
-@@ -12,10 +12,6 @@
- * Written by Miles Bader <miles@gnu.org>
- */
-
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
--
- #include <libc-symbols.h>
-
- .text
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile uClibc-git/libc/sysdeps/linux/microblaze/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/Makefile 2014-07-25 20:36:07.257337048 +0200
-@@ -13,8 +13,7 @@
- # details.
- #
- # You should have received a copy of the GNU Library General Public License
--# along with this program; if not, write to the Free Software Foundation, Inc.,
--# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- top_srcdir=../../../../
- top_builddir=../../../../
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile.arch uClibc-git/libc/sysdeps/linux/microblaze/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/Makefile.arch 2014-07-25 20:36:07.257337048 +0200
-@@ -5,8 +5,8 @@
- #
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
--CSRC := mmap.c clone.c fixdfsi.c
-+CSRC-y := clone.c fixdfsi.c
-
--SSRC := setjmp.S __longjmp.S vfork.S
-+SSRC-y := setjmp.S __longjmp.S vfork.S
-
- ARCH_HEADERS := floatlib.h
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/mmap.c uClibc-git/libc/sysdeps/linux/microblaze/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,16 +0,0 @@
--/* Use new style mmap for microblaze */
--/*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <unistd.h>
--#include <errno.h>
--#include <sys/mman.h>
--#include <sys/syscall.h>
--
--
--_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
-- int, flags, int, fd, __off_t, offset)
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/setjmp.S uClibc-git/libc/sysdeps/linux/microblaze/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/setjmp.S 2014-07-25 20:36:07.265337089 +0200
-@@ -25,13 +25,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <libc-symbols.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/procfs.h uClibc-git/libc/sysdeps/linux/microblaze/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/sys/procfs.h 2014-07-25 20:36:07.281337173 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ptrace.h uClibc-git/libc/sysdeps/linux/microblaze/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/sys/ptrace.h 2014-07-25 20:36:07.281337173 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ucontext.h uClibc-git/libc/sysdeps/linux/microblaze/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/sys/ucontext.h 2014-07-25 20:36:07.281337173 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/user.h uClibc-git/libc/sysdeps/linux/microblaze/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/sys/user.h 2014-07-25 20:36:07.281337173 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/vfork.S uClibc-git/libc/sysdeps/linux/microblaze/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/microblaze/vfork.S 2014-07-25 20:36:07.281337173 +0200
-@@ -13,21 +13,15 @@
- * Microblaze port by John Williams
- */
-
--#define _ERRNO_H 1
--#include <bits/errno.h>
--#define _SYSCALL_H
--#include <bits/sysnum.h>
--
--#include <libc-symbols.h>
-+#include <sys/syscall.h>
-
- /* Clone the calling process, but without copying the whole address space.
- The calling process is suspended until the new process exits or is
- replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
- and the process ID of the new process to the old process. */
-
--.global C_SYMBOL_NAME(errno)
--
- .globl __vfork
-+ .hidden __vfork
- .align 4
- __vfork:
- addi r12, r0, SYS_vfork
-@@ -50,4 +44,4 @@
- .size __vfork, .-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/atomic.h uClibc-git/libc/sysdeps/linux/mips/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/atomic.h 2014-07-25 20:36:07.309337320 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MIPS_BITS_ATOMIC_H
- #define _MIPS_BITS_ATOMIC_H 1
-@@ -84,10 +83,10 @@
- in which values are returned. */
-
- #define __arch_compare_and_exchange_xxx_8_int(mem, newval, oldval, rel, acq) \
-- (abort (), __prev = __cmp = 0)
-+ (abort (), __prev = 0, __cmp = 0)
-
- #define __arch_compare_and_exchange_xxx_16_int(mem, newval, oldval, rel, acq) \
-- (abort (), __prev = __cmp = 0)
-+ (abort (), __prev = 0, __cmp = 0)
-
- #define __arch_compare_and_exchange_xxx_32_int(mem, newval, oldval, rel, acq) \
- __asm__ __volatile__ ( \
-@@ -111,7 +110,7 @@
- #if _MIPS_SIM == _ABIO32
- /* We can't do an atomic 64-bit operation in O32. */
- #define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
-- (abort (), __prev = __cmp = 0)
-+ (abort (), __prev = 0, __cmp = 0)
- #else
- #define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
- __asm__ __volatile__ ("\n" \
-@@ -136,22 +135,22 @@
- /* For all "bool" routines, we return FALSE if exchange succesful. */
-
- #define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp; \
- __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
- !__cmp; })
-
- #define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp; \
- __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
- !__cmp; })
-
- #define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp; \
- __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
- !__cmp; })
-
- #define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp; \
- __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
- !__cmp; })
-
-@@ -159,22 +158,22 @@
- successful or not. */
-
- #define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
- __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
- (__typeof (*mem))__prev; })
-
- #define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
- __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
- (__typeof (*mem))__prev; })
-
- #define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
- __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
- (__typeof (*mem))__prev; })
-
- #define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
--({ __typeof (*mem) __prev; int __cmp; \
-+({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
- __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
- (__typeof (*mem))__prev; })
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dirent.h uClibc-git/libc/sysdeps/linux/mips/bits/dirent.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/dirent.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _DIRENT_H
- # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dlfcn.h uClibc-git/libc/sysdeps/linux/mips/bits/dlfcn.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/dlfcn.h 2014-07-25 20:36:07.309337320 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _DLFCN_H
- # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/eventfd.h uClibc-git/libc/sysdeps/linux/mips/bits/eventfd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/eventfd.h 2014-07-25 20:36:07.309337320 +0200
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd. */
-+enum
-+ {
-+ EFD_SEMAPHORE = 00000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+ EFD_CLOEXEC = 02000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+ EFD_NONBLOCK = 00000200
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+ };
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fcntl.h uClibc-git/libc/sysdeps/linux/mips/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/fcntl.h 2014-07-25 20:36:07.309337320 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fenv.h uClibc-git/libc/sysdeps/linux/mips/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/fenv.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -69,9 +68,9 @@
- fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) -1)
-+#define FE_DFL_ENV ((const fenv_t *) -1)
-
- #ifdef __USE_GNU
- /* Floating-point environment where none of the exception is masked. */
--# define FE_NOMASK_ENV ((__const fenv_t *) -2)
-+# define FE_NOMASK_ENV ((const fenv_t *) -2)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ioctl-types.h uClibc-git/libc/sysdeps/linux/mips/bits/ioctl-types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ioctl-types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/ioctl-types.h 2014-07-25 20:36:07.309337320 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IOCTL_H
- # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ipc.h uClibc-git/libc/sysdeps/linux/mips/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/ipc.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/mips/bits/kernel_sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/kernel_sigaction.h 2014-07-25 20:36:07.309337320 +0200
-@@ -24,12 +24,4 @@
- #endif
- };
-
--/* In uclibc, userspace struct sigaction is identical to
-- * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
-- * See sigaction.h
-- */
--
--extern int __syscall_rt_sigaction (int, const struct sigaction *,
-- struct sigaction *, size_t) attribute_hidden;
--
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/mips/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/kernel_types.h 2014-07-25 20:36:07.309337320 +0200
-@@ -32,6 +32,8 @@
- typedef __kernel_uid_t __kernel_old_uid_t;
- typedef __kernel_gid_t __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
- #else
- typedef unsigned int __kernel_dev_t;
-@@ -68,6 +70,8 @@
- typedef __kernel_uid_t __kernel_old_uid_t;
- typedef __kernel_gid_t __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mathdef.h uClibc-git/libc/sysdeps/linux/mips/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/mathdef.h 2014-07-25 20:36:07.309337320 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mman.h uClibc-git/libc/sysdeps/linux/mips/bits/mman.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/mman.h 2014-07-25 20:36:07.309337320 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-@@ -66,7 +65,7 @@
- # define MAP_LOCKED 0x8000 /* pages are locked */
- # define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
- # define MAP_NONBLOCK 0x20000 /* do not block on IO */
--# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/msq.h uClibc-git/libc/sysdeps/linux/mips/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/msq.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/poll.h uClibc-git/libc/sysdeps/linux/mips/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/poll.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/resource.h uClibc-git/libc/sysdeps/linux/mips/bits/resource.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/resource.h 2014-07-25 20:36:07.309337320 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_RESOURCE_H
- # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sem.h uClibc-git/libc/sysdeps/linux/mips/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/sem.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/setjmp.h uClibc-git/libc/sysdeps/linux/mips/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/setjmp.h 2014-07-25 20:36:07.309337320 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SETJMP_H
- #define _BITS_SETJMP_H 1
-@@ -26,13 +25,19 @@
-
- #include <sgidefs.h>
-
-+#if _MIPS_SIM == _MIPS_SIM_ABI32
-+#define ptrsize void *
-+#else
-+#define ptrsize long long
-+#endif
-+
- typedef struct
- {
- /* Program counter. */
-- void * __pc;
-+ ptrsize __pc;
-
- /* Stack pointer. */
-- void * __sp;
-+ ptrsize __sp;
-
- /* Callee-saved registers s0 through s7. */
- #if _MIPS_SIM == _MIPS_SIM_ABI32
-@@ -42,10 +47,10 @@
- #endif
-
- /* The frame pointer. */
-- void * __fp;
-+ ptrsize __fp;
-
- /* The global pointer. */
-- void * __gp;
-+ ptrsize __gp;
-
- /* Floating point status register. */
- int __fpc_csr;
-@@ -58,15 +63,4 @@
- #endif /* N32 || O32 */
- } __jmp_buf[1];
-
--#ifdef __USE_MISC
--/* Offset to the program counter in `jmp_buf'. */
--# define JB_PC 0
--#endif
--
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[0].__sp)
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/shm.h uClibc-git/libc/sysdeps/linux/mips/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/shm.h 2014-07-25 20:36:07.309337320 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigaction.h uClibc-git/libc/sysdeps/linux/mips/bits/sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/sigaction.h 2014-07-25 20:36:07.313337341 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/mips/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/sigcontext.h 2014-07-25 20:36:07.313337341 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SIGCONTEXT_H
- #define _BITS_SIGCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/mips/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/sigcontextinfo.h 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include <sgidefs.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/siginfo.h uClibc-git/libc/sysdeps/linux/mips/bits/siginfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/siginfo.h 2014-07-25 20:36:07.313337341 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined __need_siginfo_t \
- && !defined __need_sigevent_t
-@@ -265,8 +264,11 @@
-
- /* Structure to transport application-defined values with signals. */
- # define __SIGEV_MAX_SIZE 64
--# define __SIGEV_HEAD_SIZE (sizeof(long) + 2*sizeof(int))
--# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE - __SIGEV_HEAD_SIZE) / sizeof (int))
-+# if __WORDSIZE == 64
-+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# else
-+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
-+# endif
-
- /* Forward declaration of the `pthread_attr_t' type. */
- struct __pthread_attr_s;
-@@ -282,6 +284,10 @@
- {
- int _pad[__SIGEV_PAD_SIZE];
-
-+ /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
-+ thread to receive the signal. */
-+ __pid_t _tid;
-+
- struct
- {
- void (*_function) (sigval_t); /* Function to start. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/signum.h uClibc-git/libc/sysdeps/linux/mips/bits/signum.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/signum.h 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef _SIGNAL_H
-
-@@ -54,7 +53,20 @@
- #define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
- #define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
-
--/* Biggest signal number + 1 (including real-time signals). */
--#define _NSIG 129
-+/* MIPS is special by having 128 signals.
-+ * All (?) other architectures have at most 64 signals.
-+ * Having 128 signals is problematic because signal nos are 1-based
-+ * and last signal number is then 128.
-+ * This plays havoc with WIFSIGNALED and WCOREDUMP in waitpid status word,
-+ * when process dies from signal 128.
-+ * Linux kernel 3.9 accepts signal 128, with awful results :/
-+ * It is being fixed.
-+ *
-+ * glibc (accidentally?) papers over this issue by declaring _NSIG to be 128,
-+ * not 129 (despite claiming that _NSIG is "biggest signal number + 1"
-+ * in the comment above that definition). We follow suit.
-+ * Note that this results in __SIGRTMAX == 127. It is intended.
-+ */
-+#define _NSIG 128
-
- #endif /* <signal.h> included. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigstack.h uClibc-git/libc/sysdeps/linux/mips/bits/sigstack.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/sigstack.h 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include this file directly. Use <signal.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket.h uClibc-git/libc/sysdeps/linux/mips/bits/socket.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,369 +0,0 @@
--/* System-specific socket constants and types. Linux/MIPS version.
-- Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006
-- Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#ifndef __BITS_SOCKET_H
--#define __BITS_SOCKET_H
--
--#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
--# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
--#endif
--
--#define __need_size_t
--#define __need_NULL
--#include <stddef.h>
--
--#include <limits.h>
--#include <sys/types.h>
--
--/* Type for length arguments in socket calls. */
--#ifndef __socklen_t_defined
--typedef __socklen_t socklen_t;
--# define __socklen_t_defined
--#endif
--
--/* Types of sockets. */
--enum __socket_type
--{
-- SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
-- of fixed maximum length. */
--#define SOCK_DGRAM SOCK_DGRAM
-- SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
-- byte streams. */
--#define SOCK_STREAM SOCK_STREAM
-- SOCK_RAW = 3, /* Raw protocol interface. */
--#define SOCK_RAW SOCK_RAW
-- SOCK_RDM = 4, /* Reliably-delivered messages. */
--#define SOCK_RDM SOCK_RDM
-- SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-- datagrams of fixed maximum length. */
--#define SOCK_SEQPACKET SOCK_SEQPACKET
-- SOCK_DCCP = 6,
--#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
-- SOCK_PACKET = 10, /* Linux specific way of getting packets
-- at the dev level. For writing rarp and
-- other similar things on the user level. */
--#define SOCK_PACKET SOCK_PACKET
-- /* Flags to be ORed into the type parameter of socket and socketpair and
-- used for the flags parameter of paccept. */
--
-- SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
-- new descriptor(s). */
--#define SOCK_CLOEXEC SOCK_CLOEXEC
-- SOCK_NONBLOCK = 0200 /* Atomically mark descriptor(s) as
-- non-blocking. */
--#define SOCK_NONBLOCK SOCK_NONBLOCK
--};
--
--/* Protocol families. */
--#define PF_UNSPEC 0 /* Unspecified. */
--#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
--#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
--#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
--#define PF_INET 2 /* IP protocol family. */
--#define PF_AX25 3 /* Amateur Radio AX.25. */
--#define PF_IPX 4 /* Novell Internet Protocol. */
--#define PF_APPLETALK 5 /* Appletalk DDP. */
--#define PF_NETROM 6 /* Amateur radio NetROM. */
--#define PF_BRIDGE 7 /* Multiprotocol bridge. */
--#define PF_ATMPVC 8 /* ATM PVCs. */
--#define PF_X25 9 /* Reserved for X.25 project. */
--#define PF_INET6 10 /* IP version 6. */
--#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
--#define PF_DECnet 12 /* Reserved for DECnet project. */
--#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
--#define PF_SECURITY 14 /* Security callback pseudo AF. */
--#define PF_KEY 15 /* PF_KEY key management API. */
--#define PF_NETLINK 16
--#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
--#define PF_PACKET 17 /* Packet family. */
--#define PF_ASH 18 /* Ash. */
--#define PF_ECONET 19 /* Acorn Econet. */
--#define PF_ATMSVC 20 /* ATM SVCs. */
--#define PF_SNA 22 /* Linux SNA Project */
--#define PF_IRDA 23 /* IRDA sockets. */
--#define PF_PPPOX 24 /* PPPoX sockets. */
--#define PF_WANPIPE 25 /* Wanpipe API sockets. */
--#define PF_LLC 26 /* Linux LLC. */
--#define PF_CAN 29 /* Controller Area Network. */
--#define PF_TIPC 30 /* TIPC sockets. */
--#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
--#define PF_IUCV 32 /* IUCV sockets. */
--#define PF_RXRPC 33 /* RxRPC sockets. */
--#define PF_ISDN 34 /* mISDN sockets. */
--#define PF_PHONET 35 /* Phonet sockets. */
--#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
--#define PF_CAIF 37 /* CAIF sockets. */
--#define PF_ALG 38 /* Algorithm sockets. */
--#define PF_MAX 39 /* For now.. */
--
--/* Address families. */
--#define AF_UNSPEC PF_UNSPEC
--#define AF_LOCAL PF_LOCAL
--#define AF_UNIX PF_UNIX
--#define AF_FILE PF_FILE
--#define AF_INET PF_INET
--#define AF_AX25 PF_AX25
--#define AF_IPX PF_IPX
--#define AF_APPLETALK PF_APPLETALK
--#define AF_NETROM PF_NETROM
--#define AF_BRIDGE PF_BRIDGE
--#define AF_ATMPVC PF_ATMPVC
--#define AF_X25 PF_X25
--#define AF_INET6 PF_INET6
--#define AF_ROSE PF_ROSE
--#define AF_DECnet PF_DECnet
--#define AF_NETBEUI PF_NETBEUI
--#define AF_SECURITY PF_SECURITY
--#define AF_KEY PF_KEY
--#define AF_NETLINK PF_NETLINK
--#define AF_ROUTE PF_ROUTE
--#define AF_PACKET PF_PACKET
--#define AF_ASH PF_ASH
--#define AF_ECONET PF_ECONET
--#define AF_ATMSVC PF_ATMSVC
--#define AF_SNA PF_SNA
--#define AF_IRDA PF_IRDA
--#define AF_PPPOX PF_PPPOX
--#define AF_WANPIPE PF_WANPIPE
--#define AF_LLC PF_LLC
--#define AF_CAN PF_CAN
--#define AF_TIPC PF_TIPC
--#define AF_BLUETOOTH PF_BLUETOOTH
--#define AF_IUCV PF_IUCV
--#define AF_RXRPC PF_RXRPC
--#define AF_ISDN PF_ISDN
--#define AF_PHONET PF_PHONET
--#define AF_IEEE802154 PF_IEEE802154
--#define AF_CAIF PF_CAIF
--#define AF_ALG PF_ALG
--#define AF_MAX PF_MAX
--
--/* Socket level values. Others are defined in the appropriate headers.
--
-- XXX These definitions also should go into the appropriate headers as
-- far as they are available. */
--#define SOL_RAW 255
--#define SOL_DECNET 261
--#define SOL_X25 262
--#define SOL_PACKET 263
--#define SOL_ATM 264 /* ATM layer (cell level). */
--#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
--#define SOL_IRDA 266
--
--/* Maximum queue length specifiable by listen. */
--#define SOMAXCONN 128
--
--/* Get the definition of the macro to define the common sockaddr members. */
--#include <bits/sockaddr.h>
--
--/* Structure describing a generic socket address. */
--struct sockaddr
-- {
-- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
-- char sa_data[14]; /* Address data. */
-- };
--
--
--/* Structure large enough to hold any socket address (with the historical
-- exception of AF_UNIX). We reserve 128 bytes. */
--#define __ss_aligntype unsigned long int
--#define _SS_SIZE 128
--#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
--
--struct sockaddr_storage
-- {
-- __SOCKADDR_COMMON (ss_); /* Address family, etc. */
-- __ss_aligntype __ss_align; /* Force desired alignment. */
-- char __ss_padding[_SS_PADSIZE];
-- };
--
--
--/* Bits in the FLAGS argument to `send', `recv', et al. */
--enum
-- {
-- MSG_OOB = 0x01, /* Process out-of-band data. */
--#define MSG_OOB MSG_OOB
-- MSG_PEEK = 0x02, /* Peek at incoming messages. */
--#define MSG_PEEK MSG_PEEK
-- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
--#define MSG_DONTROUTE MSG_DONTROUTE
--#ifdef __USE_GNU
-- /* DECnet uses a different name. */
-- MSG_TRYHARD = MSG_DONTROUTE,
--# define MSG_TRYHARD MSG_DONTROUTE
--#endif
-- MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
--#define MSG_CTRUNC MSG_CTRUNC
-- MSG_PROXY = 0x10, /* Supply or ask second address. */
--#define MSG_PROXY MSG_PROXY
-- MSG_TRUNC = 0x20,
--#define MSG_TRUNC MSG_TRUNC
-- MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
--#define MSG_DONTWAIT MSG_DONTWAIT
-- MSG_EOR = 0x80, /* End of record. */
--#define MSG_EOR MSG_EOR
-- MSG_WAITALL = 0x100, /* Wait for a full request. */
--#define MSG_WAITALL MSG_WAITALL
-- MSG_FIN = 0x200,
--#define MSG_FIN MSG_FIN
-- MSG_SYN = 0x400,
--#define MSG_SYN MSG_SYN
-- MSG_CONFIRM = 0x800, /* Confirm path validity. */
--#define MSG_CONFIRM MSG_CONFIRM
-- MSG_RST = 0x1000,
--#define MSG_RST MSG_RST
-- MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
--#define MSG_ERRQUEUE MSG_ERRQUEUE
-- MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
--#define MSG_NOSIGNAL MSG_NOSIGNAL
-- MSG_MORE = 0x8000, /* Sender will send more. */
--#define MSG_MORE MSG_MORE
-- MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
--#define MSG_WAITFORONE MSG_WAITFORONE
--
-- MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
-- descriptor received through
-- SCM_RIGHTS. */
--#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
-- };
--
--
--/* Structure describing messages sent by
-- `sendmsg' and received by `recvmsg'. */
--/* Note: do not change these members to match glibc; these match the
-- SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
-- http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
--/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
-- platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
--struct msghdr
-- {
-- void *msg_name; /* Address to send to/receive from. */
-- socklen_t msg_namelen; /* Length of address data. */
--
-- struct iovec *msg_iov; /* Vector of data to send/receive into. */
--#if __WORDSIZE == 32
-- int msg_iovlen; /* Number of elements in the vector. */
--#else
-- size_t msg_iovlen; /* Number of elements in the vector. */
--#endif
--
-- void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
--#if __WORDSIZE == 32
-- socklen_t msg_controllen; /* Ancillary data buffer length. */
--#else
-- size_t msg_controllen; /* Ancillary data buffer length. */
--#endif
--
-- int msg_flags; /* Flags on received message. */
-- };
--
--/* Structure used for storage of ancillary data object information. */
--struct cmsghdr
-- {
-- size_t cmsg_len; /* Length of data in cmsg_data plus length
-- of cmsghdr structure. */
-- int cmsg_level; /* Originating protocol. */
-- int cmsg_type; /* Protocol specific type. */
--#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-- __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
--#endif
-- };
--
--/* Ancillary data object manipulation macros. */
--#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
--# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
--#else
--# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
--#endif
--#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
--#define CMSG_FIRSTHDR(mhdr) \
-- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
-- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
--#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
-- & (size_t) ~(sizeof (size_t) - 1))
--#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
-- + CMSG_ALIGN (sizeof (struct cmsghdr)))
--#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
--
--extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
-- struct cmsghdr *__cmsg) __THROW;
--libc_hidden_proto(__cmsg_nxthdr)
--#ifdef __USE_EXTERN_INLINES
--# ifndef _EXTERN_INLINE
--# define _EXTERN_INLINE extern __inline
--# endif
--_EXTERN_INLINE struct cmsghdr *
--__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
--{
-- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
-- /* The kernel header does this so there may be a reason. */
-- return 0;
--
-- __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
-- + CMSG_ALIGN (__cmsg->cmsg_len));
-- if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
-- + __mhdr->msg_controllen)
-- || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
-- > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
-- /* No more entries. */
-- return 0;
-- return __cmsg;
--}
--#endif /* Use `extern inline'. */
--
--/* Socket level message types. This must match the definitions in
-- <linux/socket.h>. */
--enum
-- {
-- SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
--#define SCM_RIGHTS SCM_RIGHTS
--#ifdef __USE_BSD
-- , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
--# define SCM_CREDENTIALS SCM_CREDENTIALS
--#endif
-- };
--
--/* User visible structure for SCM_CREDENTIALS message */
--
--struct ucred
--{
-- pid_t pid; /* PID of sending process. */
-- uid_t uid; /* UID of sending process. */
-- gid_t gid; /* GID of sending process. */
--};
--
--/* Get socket manipulation related informations from kernel headers. */
--#ifndef __GLIBC__
--#define __GLIBC__ 2
--#include <asm/socket.h>
--#undef __GLIBC__
--#else
--#include <asm/socket.h>
--#endif
--
--
--/* Structure used to manipulate the SO_LINGER option. */
--struct linger
-- {
-- int l_onoff; /* Nonzero to linger on close. */
-- int l_linger; /* Time to linger. */
-- };
--
--#endif /* bits/socket.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket_type.h uClibc-git/libc/sysdeps/linux/mips/bits/socket_type.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/socket_type.h 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,55 @@
-+/* System-specific socket constants and types. Linux/MIPS version.
-+ Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_SOCKET_H
-+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
-+#endif
-+
-+/* Types of sockets. */
-+enum __socket_type
-+{
-+ SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
-+ of fixed maximum length. */
-+#define SOCK_DGRAM SOCK_DGRAM
-+ SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
-+ byte streams. */
-+#define SOCK_STREAM SOCK_STREAM
-+ SOCK_RAW = 3, /* Raw protocol interface. */
-+#define SOCK_RAW SOCK_RAW
-+ SOCK_RDM = 4, /* Reliably-delivered messages. */
-+#define SOCK_RDM SOCK_RDM
-+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-+ datagrams of fixed maximum length. */
-+#define SOCK_SEQPACKET SOCK_SEQPACKET
-+ SOCK_DCCP = 6,
-+#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
-+ SOCK_PACKET = 10, /* Linux specific way of getting packets
-+ at the dev level. For writing rarp and
-+ other similar things on the user level. */
-+#define SOCK_PACKET SOCK_PACKET
-+
-+ /* Flags to be ORed into the type parameter of socket and socketpair. */
-+
-+ SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
-+ new descriptor(s). */
-+#define SOCK_CLOEXEC SOCK_CLOEXEC
-+ SOCK_NONBLOCK = 00000200 /* Atomically mark descriptor(s) as
-+ non-blocking. */
-+#define SOCK_NONBLOCK SOCK_NONBLOCK
-+};
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/mips/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/stackinfo.h 2014-07-25 20:36:07.313337341 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/statfs.h uClibc-git/libc/sysdeps/linux/mips/bits/statfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/statfs.h 2014-07-25 20:36:07.313337341 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STATFS_H
- # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stat.h uClibc-git/libc/sysdeps/linux/mips/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/stat.h 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/syscalls.h uClibc-git/libc/sysdeps/linux/mips/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/syscalls.h 2014-07-25 20:36:07.313337341 +0200
-@@ -29,7 +29,7 @@
- } \
- result_var; })
-
--#define INTERNAL_SYSCALL_DECL(err) long err
-+#define INTERNAL_SYSCALL_DECL(err) long err attribute_unused
-
- #define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/termios.h uClibc-git/libc/sysdeps/linux/mips/bits/termios.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/termios.h 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TERMIOS_H
- # error "Never include <bits/termios.h> directly; use <termios.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h 2014-07-25 20:36:07.313337341 +0200
-@@ -4,6 +4,7 @@
-
- #ifndef _BITS_UCLIBC_ARCH_FEATURES_H
- #define _BITS_UCLIBC_ARCH_FEATURES_H
-+#include <sgidefs.h>
-
- /* instruction used when calling abort() to kill yourself */
- #define __UCLIBC_ABORT_INSTRUCTION__ "break 255"
-@@ -11,8 +12,12 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#if _MIPS_SIM == _ABIO32
-+#define __UCLIBC_SYSCALL_ALIGN_64BIT__
-+#else
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-+#endif
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_page.h 2014-07-25 20:36:07.313337341 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* Supply an architecture specific value for PAGE_SIZE and friends. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/wordsize.h uClibc-git/libc/sysdeps/linux/mips/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bits/wordsize.h 2014-07-25 20:36:07.313337341 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE _MIPS_SZPTR
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/brk.c uClibc-git/libc/sysdeps/linux/mips/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/brk.c 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/mips/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bsd-setjmp.S 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/mips/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/bsd-_setjmp.S 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/cacheflush.c uClibc-git/libc/sysdeps/linux/mips/cacheflush.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/cacheflush.c 2014-07-25 20:36:07.313337341 +0200
-@@ -12,19 +12,18 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the uClibc Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the uClibc Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <errno.h>
--#include <unistd.h>
- #include <sys/syscall.h>
-
- #ifdef __NR_cacheflush
-+# include <sys/cachectl.h>
- _syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
--strong_alias(cacheflush, _flush_cache)
-+strong_alias_untyped(cacheflush, _flush_cache)
- #endif
-
- #ifdef __NR_cachectl
-+# include <sys/cachectl.h>
- _syscall3(int, cachectl, void *, addr, const int, nbytes, const int, op)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/clone.S uClibc-git/libc/sysdeps/linux/mips/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/clone.S 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/crt1.S uClibc-git/libc/sysdeps/linux/mips/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/crt1.S 2014-07-25 20:36:07.313337341 +0200
-@@ -31,9 +31,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include <sys/regdef.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/fpu_control.h uClibc-git/libc/sysdeps/linux/mips/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/fpu_control.h 2014-07-25 20:36:07.313337341 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/getcontext.S uClibc-git/libc/sysdeps/linux/mips/getcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/getcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/getcontext.S 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,148 @@
-+/* Save current context.
-+ Copyright (C) 2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int getcontext (ucontext_t *ucp) */
-+
-+ .text
-+LOCALSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1 /* save gp */
-+# if _MIPS_SIM != _ABIO32
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = ((LOCALSZ * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - (1 * SZREG)
-+
-+NESTED (__getcontext, FRAMESZ, ra)
-+ .mask MASK, 0
-+ .fmask 0x00000000, 0
-+
-+#ifdef __PIC__
-+ SETUP_GP
-+
-+ move a2, sp
-+# define _SP a2
-+
-+# if _MIPS_SIM != _ABIO32
-+ move a3, gp
-+# define _GP a3
-+# endif
-+
-+ PTR_ADDIU sp, -FRAMESZ
-+ SETUP_GP64 (GPOFF, __getcontext)
-+ SAVE_GP (GPOFF)
-+
-+#else /* ! __PIC__ */
-+# define _SP sp
-+# define _GP gp
-+
-+#endif /* ! __PIC__ */
-+
-+#ifdef PROF
-+ .set noat
-+ move AT, ra
-+ jal _mcount
-+ .set at
-+#endif
-+
-+ /* Store a magic flag. */
-+ li v1, 1
-+ REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
-+
-+ REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+ REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
-+#endif
-+ REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S ra, MCONTEXT_PC(a0)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+ s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# else /* _MIPS_SIM != _ABI64 */
-+ s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+ cfc1 v1, fcr31
-+ sw v1, MCONTEXT_FPC_CSR(a0)
-+#endif /* __mips_hard_float */
-+
-+/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
-+ li a3, _NSIG8
-+ PTR_ADDU a2, a0, UCONTEXT_SIGMASK
-+ move a1, zero
-+ li a0, SIG_BLOCK
-+
-+ li v0, SYS_ify (rt_sigprocmask)
-+ syscall
-+ bnez a3, 99f
-+
-+#ifdef __PIC__
-+ RESTORE_GP64
-+ PTR_ADDIU sp, FRAMESZ
-+#endif
-+ move v0, zero
-+ jr ra
-+
-+99:
-+#ifdef __PIC__
-+ PTR_LA t9, JUMPTARGET (__syscall_error)
-+ RESTORE_GP64
-+ PTR_ADDIU sp, FRAMESZ
-+ jr t9
-+
-+#else /* ! __PIC__ */
-+
-+ j JUMPTARGET (__syscall_error)
-+#endif /* ! __PIC__ */
-+PSEUDO_END (__getcontext)
-+
-+weak_alias (__getcontext, getcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/mips/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/jmpbuf-unwind.h 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,22 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[0].__sp)
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].__sp - (_adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/kernel_rt_sigframe.h uClibc-git/libc/sysdeps/linux/mips/kernel_rt_sigframe.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/kernel_rt_sigframe.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/kernel_rt_sigframe.h 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,10 @@
-+/* Linux kernel RT signal frame. */
-+typedef struct kernel_rt_sigframe
-+ {
-+ uint32_t rs_ass[4];
-+ uint32_t rs_code[2];
-+ siginfo_t rs_info;
-+ struct ucontext rs_uc;
-+ uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
-+ }
-+kernel_rt_sigframe_t;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/__longjmp.c uClibc-git/libc/sysdeps/linux/mips/__longjmp.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/__longjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/__longjmp.c 2014-07-25 20:36:07.297337257 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <setjmp.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/makecontext.S uClibc-git/libc/sysdeps/linux/mips/makecontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/makecontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/makecontext.S 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,188 @@
-+/* Modify saved context.
-+ Copyright (C) 2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int makecontext (ucontext_t *ucp, (void *func) (), int argc, ...) */
-+
-+ .text
-+LOCALSZ = 0
-+ARGSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1 /* save gp */
-+#endif
-+#if _MIPS_SIM != _ABIO32
-+ARGSZ = 5 /* save a3-a7 */
-+# ifdef __PIC__
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-+#if _MIPS_SIM != _ABIO32
-+A3OFF = FRAMESZ - (5 * SZREG) /* callee-allocated */
-+A4OFF = FRAMESZ - (4 * SZREG)
-+A5OFF = FRAMESZ - (3 * SZREG)
-+A6OFF = FRAMESZ - (2 * SZREG)
-+A7OFF = FRAMESZ - (1 * SZREG)
-+NARGREGS = 8
-+#else
-+A3OFF = FRAMESZ + (3 * SZREG) /* caller-allocated */
-+NARGREGS = 4
-+#endif
-+
-+NESTED (__makecontext, FRAMESZ, ra)
-+ .mask MASK, -(ARGSZ * SZREG)
-+ .fmask 0x00000000, 0
-+
-+98:
-+#ifdef __PIC__
-+ SETUP_GP
-+#endif
-+
-+ PTR_ADDIU sp, -FRAMESZ
-+
-+#ifdef __PIC__
-+ SETUP_GP64 (GPOFF, __makecontext)
-+ SAVE_GP (GPOFF)
-+#endif
-+
-+#ifdef PROF
-+ .set noat
-+ move AT, ra
-+ jal _mcount
-+ .set at
-+#endif
-+
-+ /* Store args to be passed. */
-+ REG_S a3, A3OFF(sp)
-+#if _MIPS_SIM != _ABIO32
-+ REG_S a4, A4OFF(sp)
-+ REG_S a5, A5OFF(sp)
-+ REG_S a6, A6OFF(sp)
-+ REG_S a7, A7OFF(sp)
-+#endif
-+
-+ /* Store a magic flag. */
-+ li v1, 1
-+ REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
-+
-+ /* Set up the stack. */
-+ PTR_L t0, STACK_SP(a0)
-+ PTR_L t2, STACK_SIZE(a0)
-+ PTR_ADDIU t1, sp, A3OFF
-+ PTR_ADDU t0, t2
-+ and t0, ALMASK
-+ blez a2, 2f /* no arguments */
-+
-+ /* Store register arguments. */
-+ PTR_ADDIU t2, a0, MCONTEXT_GREGS + 4 * SZREG
-+ move t3, zero
-+0:
-+ addiu t3, 1
-+ REG_L v1, (t1)
-+ PTR_ADDIU t1, SZREG
-+ REG_S v1, (t2)
-+ PTR_ADDIU t2, SZREG
-+ bgeu t3, a2, 2f /* all done */
-+ bltu t3, NARGREGS, 0b /* next */
-+
-+ /* Make room for stack arguments. */
-+ PTR_SUBU t2, a2, t3
-+ PTR_SLL t2, 3
-+ PTR_SUBU t0, t2
-+ and t0, ALMASK
-+
-+ /* Store stack arguments. */
-+ move t2, t0
-+1:
-+ addiu t3, 1
-+ REG_L v1, (t1)
-+ PTR_ADDIU t1, SZREG
-+ REG_S v1, (t2)
-+ PTR_ADDIU t2, SZREG
-+ bltu t3, a2, 1b /* next */
-+
-+2:
-+#if _MIPS_SIM == _ABIO32
-+ /* Make room for a0-a3 storage. */
-+ PTR_ADDIU t0, -(NARGSAVE * SZREG)
-+#endif
-+ PTR_L v1, UCONTEXT_LINK(a0)
-+#ifdef __PIC__
-+ PTR_ADDIU t9, 99f - 98b
-+#else
-+ PTR_LA t9, 99f
-+#endif
-+ REG_S t0, (29 * SZREG + MCONTEXT_GREGS)(a0) /* sp */
-+ REG_S v1, (16 * SZREG + MCONTEXT_GREGS)(a0) /* s0 */
-+#ifdef __PIC__
-+ REG_S gp, (17 * SZREG + MCONTEXT_GREGS)(a0) /* s1 */
-+#endif
-+ REG_S t9, (31 * SZREG + MCONTEXT_GREGS)(a0) /* ra */
-+ REG_S a1, MCONTEXT_PC(a0)
-+
-+#ifdef __PIC__
-+ RESTORE_GP64
-+ PTR_ADDIU sp, FRAMESZ
-+#endif
-+ jr ra
-+
-+99:
-+#ifdef __PIC__
-+ move gp, s1
-+#endif
-+ move a0, zero
-+ beqz s0, 0f
-+
-+ /* setcontext (ucp) */
-+ move a0, s0
-+#ifdef __PIC__
-+ PTR_LA t9, JUMPTARGET (__setcontext)
-+ jalr t9
-+# if _MIPS_SIM == _ABIO32
-+ move gp, s1
-+# endif
-+#else
-+ jal JUMPTARGET (__setcontext)
-+#endif
-+ move a0, v0
-+
-+0:
-+ /* exit (a0) */
-+#ifdef __PIC__
-+ PTR_LA t9, HIDDEN_JUMPTARGET (exit)
-+ jalr t9
-+#else
-+ jal HIDDEN_JUMPTARGET (exit)
-+#endif
-+
-+ /* You don't exist, you won't feel anything. */
-+1:
-+ lb zero, (zero)
-+ b 1b
-+PSEUDO_END (__makecontext)
-+
-+weak_alias (__makecontext, makecontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/Makefile.arch uClibc-git/libc/sysdeps/linux/mips/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/Makefile.arch 2014-07-25 20:36:07.297337257 +0200
-@@ -5,20 +5,18 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := \
-- __longjmp.c brk.c setjmp_aux.c mmap.c \
-- cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \
-- readahead.c
--
--SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
--
--ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
--CSRC += posix_fadvise.c posix_fadvise64.c
--endif
--
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--SSRC += vfork.S clone.S
--endif
-+CSRC-y := \
-+ __longjmp.c brk.c setjmp_aux.c \
-+ pread_write.c sigaction.c _test_and_set.c
-+
-+SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
-+
-+CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c sysmips.c
-+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise.c
-+CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_HAS_ADVANCED_REALTIME)),y) += posix_fadvise64.c
-+SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
-+SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S \
-+ swapcontext.S
-
- ASFLAGS-syscall_error.S += -D_LIBC_REENTRANT
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/mmap.c uClibc-git/libc/sysdeps/linux/mips/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,26 +0,0 @@
--/* Use new style mmap for mips */
--/*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <unistd.h>
--#include <errno.h>
--#include <sys/mman.h>
--#include <sys/syscall.h>
--
--
--#if 0
--/* For now, leave mmap using mmap1 since mmap2 seems
-- * to have issues (i.e. it doesn't work 100% properly).
-- */
--#ifdef __NR_mmap2
--# undef __NR_mmap
--# define __NR_mmap __NR_mmap2
--#endif
--#endif
--
--_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
-- int, flags, int, fd, __off_t, offset)
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/mips/posix_fadvise64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/posix_fadvise64.c 2014-07-25 20:36:07.313337341 +0200
-@@ -8,36 +8,28 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
-+#include <_lfs_64.h>
- #include <sys/syscall.h>
--#include <fcntl.h>
-+#include <bits/wordsize.h>
-
--#ifdef __UCLIBC_HAS_LFS__
-+/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
-+#if defined __NR_fadvise64 && __WORDSIZE == 32
-+# include <fcntl.h>
-+# include <endian.h>
-
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
-+int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice)
- {
--/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
--#ifdef __NR_fadvise64
- INTERNAL_SYSCALL_DECL(err);
--# if _MIPS_SIM == _MIPS_SIM_ABI32
-+# if _MIPS_SIM == _ABIO32
- int ret = INTERNAL_SYSCALL(fadvise64, err, 7, fd, 0,
-- __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
-- __LONG_LONG_PAIR ((long) (len >> 32), (long) len),
-- advice);
-+ __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
-+ __LONG_LONG_PAIR ((long) (len >> 32), (long) len),
-+ advice);
- # else /* N32 || N64 */
- int ret = INTERNAL_SYSCALL(fadvise64, err, 4, fd, offset, len, advice);
- # endif
- if (INTERNAL_SYSCALL_ERROR_P (ret, err))
- return INTERNAL_SYSCALL_ERRNO (ret, err);
- return 0;
--#else
-- return ENOSYS;
--#endif
- }
--
--#endif /* __UCLIBC_HAS_LFS__ */
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise.c uClibc-git/libc/sysdeps/linux/mips/posix_fadvise.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/posix_fadvise.c 2014-07-25 20:36:07.313337341 +0200
-@@ -8,19 +8,16 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
- #include <sys/syscall.h>
--#include <fcntl.h>
-
--int posix_fadvise(int fd, off_t offset, off_t len, int advice)
--{
- /* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
- #ifdef __NR_fadvise64
-+# include <fcntl.h>
-+# include <endian.h>
-+# include <bits/wordsize.h>
-+
-+int posix_fadvise(int fd, off_t offset, off_t len, int advice)
-+{
- INTERNAL_SYSCALL_DECL(err);
- # if _MIPS_SIM == _ABIO32
- int ret = INTERNAL_SYSCALL(fadvise64, err, 7, fd, 0,
-@@ -33,7 +30,9 @@
- if (INTERNAL_SYSCALL_ERROR_P (ret, err))
- return INTERNAL_SYSCALL_ERRNO (ret, err);
- return 0;
--#else
-- return ENOSYS;
--#endif
- }
-+# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias(posix_fadvise,posix_fadvise64)
-+# endif
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/pread_write.c uClibc-git/libc/sysdeps/linux/mips/pread_write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/pread_write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/pread_write.c 2014-07-25 20:36:07.313337341 +0200
-@@ -4,112 +4,28 @@
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
--/*
-- * Based in part on the files
-- * ./sysdeps/unix/sysv/linux/pwrite.c,
-- * ./sysdeps/unix/sysv/linux/pread.c,
-- * sysdeps/posix/pread.c
-- * sysdeps/posix/pwrite.c
-- * from GNU libc 2.2.5, but reworked considerably...
-- */
-
- #include <sys/syscall.h>
- #include <unistd.h>
--#include <stdint.h>
- #include <endian.h>
- #include <sgidefs.h>
-
--#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
--# ifdef __NR_pread
--# error "__NR_pread and __NR_pread64 both defined???"
--# endif
--# define __NR_pread __NR_pread64
--#endif
--
--extern __typeof(pread) __libc_pread;
--extern __typeof(pwrite) __libc_pwrite;
--#ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pread64) __libc_pread64;
--extern __typeof(pwrite64) __libc_pwrite64;
--#endif
--
--#include <bits/kernel_types.h>
--
--
--#ifdef __NR_pread
--
--# if _MIPS_SIM == _MIPS_SIM_ABI64
--# define __NR___libc_pread __NR_pread
--_syscall4(ssize_t, __libc_pread, int, fd, void *, buf, size_t, count, off_t, offset)
--weak_alias (__libc_pread, pread)
--# ifdef __UCLIBC_HAS_LFS__
--# define __NR___libc_pread64 __NR_pread
--_syscall4(ssize_t, __libc_pread64, int, fd, void *, buf, size_t, count, off64_t, offset)
--weak_alias (__libc_pread64, pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--# else /* O32 || N32 */
--# define __NR___syscall_pread __NR_pread
--static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
-- size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return(__syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset>>31,offset)));
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low)));
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--# endif /* O32 || N32 */
--
--#endif /* __NR_pread */
--
--/**********************************************************************/
--
--#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
--# ifdef __NR_pwrite
--# error "__NR_pwrite and __NR_pwrite64 both defined???"
--# endif
--# define __NR_pwrite __NR_pwrite64
-+/* We should generalize this for 32bit userlands w/64bit regs. This applies
-+ * to the x86_64 x32 and the mips n32 ABIs. */
-+#if _MIPS_SIM == _MIPS_SIM_NABI32
-+# define __NR___syscall_pread __NR_pread64
-+static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset)
-+# define MY_PREAD(fd, buf, count, offset) \
-+ __syscall_pread(fd, buf, count, offset)
-+# define MY_PREAD64(fd, buf, count, offset) \
-+ __syscall_pread(fd, buf, count, offset)
-+
-+# define __NR___syscall_pwrite __NR_pwrite64
-+static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
-+# define MY_PWRITE(fd, buf, count, offset) \
-+ __syscall_pwrite(fd, buf, count, offset)
-+# define MY_PWRITE64(fd, buf, count, offset) \
-+ __syscall_pwrite(fd, buf, count, offset)
- #endif
-
--#ifdef __NR_pwrite
--
--# if _MIPS_SIM == _MIPS_SIM_ABI64
--# define __NR___libc_pwrite __NR_pwrite
--_syscall4(ssize_t, __libc_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
--weak_alias (__libc_pwrite, pwrite)
--# ifdef __UCLIBC_HAS_LFS__
--# define __NR___libc_pwrite64 __NR_pwrite
--_syscall4(ssize_t, __libc_pwrite64, int, fd, const void *, buf, size_t, count, off64_t, offset)
--weak_alias (__libc_pwrite64, pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--# else /* O32 || N32 */
--# define __NR___syscall_pwrite __NR_pwrite
--static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-- size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- return(__syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset>>31,offset)));
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low)));
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--# endif /* O32 || N32 */
--#endif /* __NR_pwrite */
-+#include "../common/pread_write.c"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/readahead.c uClibc-git/libc/sysdeps/linux/mips/readahead.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/readahead.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/readahead.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,41 +0,0 @@
--/* Provide kernel hint to read ahead.
-- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <errno.h>
--#include <fcntl.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--
--#ifdef __UCLIBC_HAS_LFS__
--#include <_lfs_64.h>
--# ifdef __NR_readahead
--
--ssize_t readahead(int fd, off64_t offset, size_t count)
--{
--# if _MIPS_SIM == _ABIO32
-- return INLINE_SYSCALL (readahead, 5, fd, 0,
-- __LONG_LONG_PAIR ((off_t) (offset >> 32), (off_t) offset),
-- count);
--# else /* N32 || N64 */
-- return INLINE_SYSCALL (readahead, 3, fd, offset, count);
--# endif
--}
--
--# endif
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setcontext.S uClibc-git/libc/sysdeps/linux/mips/setcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/setcontext.S 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,191 @@
-+/* Set current context.
-+ Copyright (C) 2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int setcontext (const ucontext_t *ucp) */
-+
-+ .text
-+LOCALSZ = 0
-+ARGSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1 /* save gp */
-+#endif
-+#if _MIPS_SIM != _ABIO32
-+ARGSZ = 1 /* save a0 */
-+# ifdef __PIC__
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-+#if _MIPS_SIM != _ABIO32
-+A0OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
-+#else
-+A0OFF = FRAMESZ + (0 * SZREG) /* caller-allocated */
-+#endif
-+
-+NESTED (__setcontext, FRAMESZ, ra)
-+ .mask MASK, -(ARGSZ * SZREG)
-+ .fmask 0x00000000, 0
-+
-+#ifdef __PIC__
-+ SETUP_GP
-+#endif
-+
-+ PTR_ADDIU sp, -FRAMESZ
-+
-+#ifdef __PIC__
-+ SETUP_GP64 (GPOFF, __setcontext)
-+ SAVE_GP (GPOFF)
-+#endif
-+
-+#ifdef PROF
-+ .set noat
-+ move AT, ra
-+ jal _mcount
-+ .set at
-+#endif
-+
-+ /* Check for the magic flag. */
-+ li v0, 1
-+ REG_L v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
-+ bne v0, v1, 98f
-+
-+ REG_S a0, A0OFF(sp)
-+
-+/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
-+ li a3, _NSIG8
-+ move a2, zero
-+ PTR_ADDU a1, a0, UCONTEXT_SIGMASK
-+ li a0, SIG_SETMASK
-+
-+ li v0, SYS_ify (rt_sigprocmask)
-+ syscall
-+ bnez a3, 99f
-+
-+ REG_L v0, A0OFF(sp)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+ l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# else /* _MIPS_SIM != _ABI64 */
-+ l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+ lw v1, MCONTEXT_FPC_CSR(v0)
-+ ctc1 v1, fcr31
-+#endif /* __mips_hard_float */
-+
-+ /* Note the contents of argument registers will be random
-+ unless makecontext() has been called. */
-+ REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
-+#if _MIPS_SIM != _ABIO32
-+ REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+
-+ REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+ REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+ REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L t9, MCONTEXT_PC(v0)
-+
-+ move v0, zero
-+ jr t9
-+
-+98:
-+ /* This is a context obtained from a signal handler.
-+ Perform a full restore by pushing the context
-+ passed onto a simulated signal frame on the stack
-+ and call the signal return syscall as if a signal
-+ handler exited normally. */
-+ PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-+
-+ /* Only ucontext is referred to from rt_sigreturn,
-+ copy it. */
-+ PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
-+ li t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
-+0:
-+ REG_L t2, (a0)
-+ PTR_ADDIU a0, SZREG
-+ REG_S t2, (t1)
-+ PTR_ADDIU t1, SZREG
-+ .set noreorder
-+ bgtz t3, 0b
-+ addiu t3, -1
-+ .set reorder
-+
-+/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */
-+ li v0, SYS_ify (rt_sigreturn)
-+ syscall
-+
-+ /* Restore the stack and fall through to the error
-+ path. Successful rt_sigreturn never returns to
-+ its calling place. */
-+ PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-+99:
-+#ifdef __PIC__
-+ PTR_LA t9, JUMPTARGET (__syscall_error)
-+ RESTORE_GP64
-+ PTR_ADDIU sp, FRAMESZ
-+ jr t9
-+
-+#else /* ! __PIC__ */
-+
-+ j JUMPTARGET (__syscall_error)
-+#endif /* ! __PIC__ */
-+PSEUDO_END (__setcontext)
-+
-+weak_alias (__setcontext, setcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp_aux.c uClibc-git/libc/sysdeps/linux/mips/setjmp_aux.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp_aux.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/setjmp_aux.c 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <setjmp.h>
-@@ -27,11 +26,9 @@
- pointer. We do things this way because it's difficult to reliably
- access them in C. */
-
--extern int __sigjmp_save (sigjmp_buf, int);
--
- int
- #if _MIPS_SIM == _MIPS_SIM_ABI64
--__sigsetjmp_aux (jmp_buf env, int savemask, long sp, long fp)
-+__sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, long long gp)
- #else /* O32 || N32 */
- __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
- #endif /* O32 || N32 */
-@@ -65,14 +62,14 @@
- #endif
-
- /* .. and the stack pointer; */
-- env[0].__jmpbuf[0].__sp = (void *) sp;
-+ env[0].__jmpbuf[0].__sp = (ptrsize) sp;
-
- /* .. and the FP; it'll be in s8. */
-- env[0].__jmpbuf[0].__fp = (void *) fp;
-+ env[0].__jmpbuf[0].__fp = (ptrsize) fp;
-
- /* .. and the GP; */
- #if _MIPS_SIM == _MIPS_SIM_ABI64
-- __asm__ __volatile__ ("sd $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
-+ env[0].__jmpbuf[0].__gp = (ptrsize) gp;
- #else
- __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp.S uClibc-git/libc/sysdeps/linux/mips/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/setjmp.S 2014-07-25 20:36:07.313337341 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/regdef.h>
- #include <sys/asm.h>
-@@ -53,6 +52,7 @@
- PTR_LA t9, __sigsetjmp_aux
- #if _MIPS_SIM != _MIPS_SIM_ABI32
- .cpreturn
-+ move a4, gp
- #endif
- jr t9
- #else
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sgidefs.h uClibc-git/libc/sysdeps/linux/mips/sgidefs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sgidefs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sgidefs.h 2014-07-25 20:36:07.313337341 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SGIDEFS_H
- #define _SGIDEFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sigaction.c uClibc-git/libc/sysdeps/linux/mips/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sigaction.c 2014-07-25 20:36:07.313337341 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA.
-+ see <http://www.gnu.org/licenses/>.
-
- Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
- */
-@@ -27,9 +26,6 @@
-
- #define SA_RESTORER 0x04000000
-
--extern __typeof(sigaction) __libc_sigaction;
--
--
- #ifdef __NR_rt_sigaction
-
- # if _MIPS_SIM != _ABIO32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/swapcontext.S uClibc-git/libc/sysdeps/linux/mips/swapcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/swapcontext.S 2014-07-25 20:36:07.313337341 +0200
-@@ -0,0 +1,211 @@
-+/* Save and set current context.
-+ Copyright (C) 2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-+
-+ .text
-+LOCALSZ = 0
-+ARGSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1 /* save gp */
-+#endif
-+#if _MIPS_SIM != _ABIO32
-+ARGSZ = 1 /* save a1 */
-+# ifdef __PIC__
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-+#if _MIPS_SIM != _ABIO32
-+A1OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
-+#else
-+A1OFF = FRAMESZ + (1 * SZREG) /* caller-allocated */
-+#endif
-+
-+NESTED (__swapcontext, FRAMESZ, ra)
-+ .mask MASK, -(ARGSZ * SZREG)
-+ .fmask 0x00000000, 0
-+
-+#ifdef __PIC__
-+ SETUP_GP
-+
-+ move a2, sp
-+# define _SP a2
-+
-+# if _MIPS_SIM != _ABIO32
-+ move a3, gp
-+# define _GP a3
-+# endif
-+
-+ PTR_ADDIU sp, -FRAMESZ
-+ SETUP_GP64 (GPOFF, __swapcontext)
-+ SAVE_GP (GPOFF)
-+
-+#else /* ! __PIC__ */
-+# define _SP sp
-+# define _GP gp
-+
-+#endif /* ! __PIC__ */
-+
-+#ifdef PROF
-+ .set noat
-+ move AT, ra
-+ jal _mcount
-+ .set at
-+#endif
-+
-+ /* Store a magic flag. */
-+ li v1, 1
-+ REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
-+
-+ REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+ REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
-+#endif
-+ REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
-+ REG_S ra, MCONTEXT_PC(a0)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+ s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# else /* _MIPS_SIM != _ABI64 */
-+ s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+ s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+ cfc1 v1, fcr31
-+ sw v1, MCONTEXT_FPC_CSR(a0)
-+#endif /* __mips_hard_float */
-+
-+ REG_S a1, A1OFF(sp)
-+
-+/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
-+ li a3, _NSIG8
-+ PTR_ADDU a2, a0, UCONTEXT_SIGMASK
-+ PTR_ADDU a1, a1, UCONTEXT_SIGMASK
-+ li a0, SIG_SETMASK
-+
-+ li v0, SYS_ify (rt_sigprocmask)
-+ syscall
-+ bnez a3, 99f
-+
-+ REG_L v0, A1OFF(sp)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+ l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# else /* _MIPS_SIM != _ABI64 */
-+ l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+ l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+ lw v1, MCONTEXT_FPC_CSR(v0)
-+ ctc1 v1, fcr31
-+#endif /* __mips_hard_float */
-+
-+ /* Note the contents of argument registers will be random
-+ unless makecontext() has been called. */
-+ REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
-+#if _MIPS_SIM != _ABIO32
-+ REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+
-+ REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+ REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+ REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
-+ REG_L t9, MCONTEXT_PC(v0)
-+
-+ move v0, zero
-+ jr t9
-+
-+99:
-+#ifdef __PIC__
-+ PTR_LA t9, JUMPTARGET (__syscall_error)
-+ RESTORE_GP64
-+ PTR_ADDIU sp, FRAMESZ
-+ jr t9
-+
-+#else /* ! __PIC__ */
-+
-+ j JUMPTARGET (__syscall_error)
-+#endif /* ! __PIC__ */
-+PSEUDO_END (__swapcontext)
-+
-+weak_alias (__swapcontext, swapcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/asm.h uClibc-git/libc/sysdeps/linux/mips/sys/asm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/asm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/asm.h 2014-07-25 20:36:07.333337446 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_ASM_H
- #define _SYS_ASM_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/cachectl.h uClibc-git/libc/sysdeps/linux/mips/sys/cachectl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/cachectl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/cachectl.h 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_CACHECTL_H
- #define _SYS_CACHECTL_H 1
-@@ -29,13 +28,15 @@
- __BEGIN_DECLS
-
- #ifdef __USE_MISC
--extern int cachectl (void *addr, __const int nbytes, __const int op) __THROW;
-+extern int cachectl (void *addr, const int nbytes, const int op) __THROW;
-+#endif
-+#if 0
-+extern int __cachectl (void *addr, const int nbytes, const int op) __THROW;
- #endif
--extern int __cachectl (void *addr, __const int nbytes, __const int op) __THROW;
- #ifdef __USE_MISC
--extern int cacheflush (void *addr, __const int nbytes, __const int op) __THROW;
-+extern int cacheflush (void *addr, const int nbytes, const int op) __THROW;
- #endif
--extern int _flush_cache (char *addr, __const int nbytes, __const int op) __THROW;
-+extern int _flush_cache (char *addr, const int nbytes, const int op) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/fpregdef.h uClibc-git/libc/sysdeps/linux/mips/sys/fpregdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/fpregdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/fpregdef.h 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_FPREGDEF_H
- #define _SYS_FPREGDEF_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/procfs.h uClibc-git/libc/sysdeps/linux/mips/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/procfs.h 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/regdef.h uClibc-git/libc/sysdeps/linux/mips/sys/regdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/regdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/regdef.h 2014-07-25 20:36:07.333337446 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_REGDEF_H
- #define _SYS_REGDEF_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/sysmips.h uClibc-git/libc/sysdeps/linux/mips/sys/sysmips.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/sysmips.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/sysmips.h 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SYSMIPS_H
- #define _SYS_SYSMIPS_H 1
-@@ -36,8 +35,8 @@
-
- __BEGIN_DECLS
-
--extern int sysmips (__const int cmd, __const long arg1,
-- __const int arg2, __const int arg3) __THROW;
-+extern int sysmips (const int cmd, const long arg1,
-+ const int arg2, const int arg3) __THROW;
-
- __END_DECLS
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/tas.h uClibc-git/libc/sysdeps/linux/mips/sys/tas.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/tas.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/tas.h 2014-07-25 20:36:07.333337446 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_TAS_H
- #define _SYS_TAS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/ucontext.h uClibc-git/libc/sysdeps/linux/mips/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/ucontext.h 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Don't rely on this, the interface is currently messed up and may need to
- be broken to be fixed. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/user.h uClibc-git/libc/sysdeps/linux/mips/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sys/user.h 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall_error.S uClibc-git/libc/sysdeps/linux/mips/syscall_error.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall_error.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/syscall_error.S 2014-07-25 20:36:07.333337446 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/asm.h>
- #include <sysdep.h>
-@@ -43,7 +42,7 @@
- #ifdef __PIC__
- SAVE_GP(GPOFF)
- #endif
-- REG_S v0, V0OFF(sp)
-+ REG_S a0, V0OFF(sp)
- REG_S ra, RAOFF(sp)
-
- /* Find our per-thread errno address */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall.S uClibc-git/libc/sysdeps/linux/mips/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/syscall.S 2014-07-25 20:36:07.333337446 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/asm.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sysdep.h uClibc-git/libc/sysdeps/linux/mips/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/sysdep.h 2014-07-25 20:36:07.333337446 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINUX_MIPS_SYSDEP_H
- #define _LINUX_MIPS_SYSDEP_H 1
-@@ -78,8 +77,6 @@
- #undef PSEUDO_END_ERRVAL
- #define PSEUDO_END_ERRVAL(sym) .end sym; .size sym,.-sym
-
--#define ret_ERRVAL ret
--
- #define r0 v0
- #define r1 v1
- /* The mips move insn is d,s. */
-@@ -133,258 +130,6 @@
-
- #else /* ! __ASSEMBLER__ */
-
--/* Define a macro which expands into the inline wrapper code for a system
-- call. */
--#undef INLINE_SYSCALL
--#define INLINE_SYSCALL(name, nr, args...) \
-- ({ INTERNAL_SYSCALL_DECL(err); \
-- long result_var = INTERNAL_SYSCALL (name, err, nr, args); \
-- if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
-- { \
-- __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
-- result_var = -1L; \
-- } \
-- result_var; })
--
--#undef INTERNAL_SYSCALL_DECL
--#define INTERNAL_SYSCALL_DECL(err) long err
--
--#undef INTERNAL_SYSCALL_ERROR_P
--#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
--
--#undef INTERNAL_SYSCALL_ERRNO
--#define INTERNAL_SYSCALL_ERRNO(val, err) (val)
--
--#undef INTERNAL_SYSCALL
--#define INTERNAL_SYSCALL(name, err, nr, args...) \
-- internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t", \
-- "i" (SYS_ify (name)), err, args)
--
--#undef INTERNAL_SYSCALL_NCS
--#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
-- internal_syscall##nr (= number, , "r" (__v0), err, args)
--#undef internal_syscall0
--#define internal_syscall0(ncs_init, cs_init, input, err, dummy...) \
--({ \
-- long _sys_result; \
-- \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a3 __asm__("$7"); \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- ".set reorder" \
-- : "=r" (__v0), "=r" (__a3) \
-- : input \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef internal_syscall1
--#define internal_syscall1(ncs_init, cs_init, input, err, arg1) \
--({ \
-- long _sys_result; \
-- \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a3 __asm__("$7"); \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- ".set reorder" \
-- : "=r" (__v0), "=r" (__a3) \
-- : input, "r" (__a0) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef internal_syscall2
--#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2) \
--({ \
-- long _sys_result; \
-- \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a1 __asm__("$5") = (long) arg2; \
-- register long __a3 __asm__("$7"); \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- ".set\treorder" \
-- : "=r" (__v0), "=r" (__a3) \
-- : input, "r" (__a0), "r" (__a1) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef internal_syscall3
--#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\
--({ \
-- long _sys_result; \
-- \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a1 __asm__("$5") = (long) arg2; \
-- register long __a2 __asm__("$6") = (long) arg3; \
-- register long __a3 __asm__("$7"); \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- ".set\treorder" \
-- : "=r" (__v0), "=r" (__a3) \
-- : input, "r" (__a0), "r" (__a1), "r" (__a2) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef internal_syscall4
--#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\
--({ \
-- long _sys_result; \
-- \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a1 __asm__("$5") = (long) arg2; \
-- register long __a2 __asm__("$6") = (long) arg3; \
-- register long __a3 __asm__("$7") = (long) arg4; \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- ".set\treorder" \
-- : "=r" (__v0), "+r" (__a3) \
-- : input, "r" (__a0), "r" (__a1), "r" (__a2) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--/* We need to use a frame pointer for the functions in which we
-- adjust $sp around the syscall, or debug information and unwind
-- information will be $sp relative and thus wrong during the syscall. As
-- of GCC 3.4.3, this is sufficient. */
--#define FORCE_FRAME_POINTER alloca (4)
--
--#undef internal_syscall5
--#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\
--({ \
-- long _sys_result; \
-- \
-- FORCE_FRAME_POINTER; \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a1 __asm__("$5") = (long) arg2; \
-- register long __a2 __asm__("$6") = (long) arg3; \
-- register long __a3 __asm__("$7") = (long) arg4; \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- "subu\t$29, 32\n\t" \
-- "sw\t%6, 16($29)\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- "addiu\t$29, 32\n\t" \
-- ".set\treorder" \
-- : "=r" (__v0), "+r" (__a3) \
-- : input, "r" (__a0), "r" (__a1), "r" (__a2), \
-- "r" ((long)arg5) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef internal_syscall6
--#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\
--({ \
-- long _sys_result; \
-- \
-- FORCE_FRAME_POINTER; \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a1 __asm__("$5") = (long) arg2; \
-- register long __a2 __asm__("$6") = (long) arg3; \
-- register long __a3 __asm__("$7") = (long) arg4; \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- "subu\t$29, 32\n\t" \
-- "sw\t%6, 16($29)\n\t" \
-- "sw\t%7, 20($29)\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- "addiu\t$29, 32\n\t" \
-- ".set\treorder" \
-- : "=r" (__v0), "+r" (__a3) \
-- : input, "r" (__a0), "r" (__a1), "r" (__a2), \
-- "r" ((long)arg5), "r" ((long)arg6) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef internal_syscall7
--#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
--({ \
-- long _sys_result; \
-- \
-- FORCE_FRAME_POINTER; \
-- { \
-- register long __v0 __asm__("$2") ncs_init; \
-- register long __a0 __asm__("$4") = (long) arg1; \
-- register long __a1 __asm__("$5") = (long) arg2; \
-- register long __a2 __asm__("$6") = (long) arg3; \
-- register long __a3 __asm__("$7") = (long) arg4; \
-- __asm__ __volatile__ ( \
-- ".set\tnoreorder\n\t" \
-- "subu\t$29, 32\n\t" \
-- "sw\t%6, 16($29)\n\t" \
-- "sw\t%7, 20($29)\n\t" \
-- "sw\t%8, 24($29)\n\t" \
-- cs_init \
-- "syscall\n\t" \
-- "addiu\t$29, 32\n\t" \
-- ".set\treorder" \
-- : "=r" (__v0), "+r" (__a3) \
-- : input, "r" (__a0), "r" (__a1), "r" (__a2), \
-- "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \
-- : __SYSCALL_CLOBBERS); \
-- err = __a3; \
-- _sys_result = __v0; \
-- } \
-- _sys_result; \
--})
--
--#undef __SYSCALL_CLOBBERS
--#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
-- "$14", "$15", "$24", "$25", "memory"
--
- /* Pointer mangling is not yet supported for MIPS. */
- #define PTR_MANGLE(var) (void) (var)
- #define PTR_DEMANGLE(var) (void) (var)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/_test_and_set.c uClibc-git/libc/sysdeps/linux/mips/_test_and_set.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/_test_and_set.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/_test_and_set.c 2014-07-25 20:36:07.297337257 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the real-function versions of all inline functions
- defined in sys/tas.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/ucontext_i.sym uClibc-git/libc/sysdeps/linux/mips/ucontext_i.sym
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/mips/ucontext_i.sym 2014-07-25 20:36:07.333337446 +0200
-@@ -0,0 +1,52 @@
-+#include <inttypes.h>
-+#include <signal.h>
-+#include <stddef.h>
-+#include <sys/ucontext.h>
-+
-+#include <kernel_rt_sigframe.h>
-+
-+-- Constants used by the rt_sigprocmask call.
-+
-+SIG_BLOCK
-+SIG_SETMASK
-+
-+_NSIG8 (_NSIG / 8)
-+
-+-- Offsets of the fields in the kernel rt_sigframe_t structure.
-+#define rt_sigframe(member) offsetof (kernel_rt_sigframe_t, member)
-+
-+RT_SIGFRAME_UCONTEXT rt_sigframe (rs_uc)
-+
-+RT_SIGFRAME_SIZE sizeof (kernel_rt_sigframe_t)
-+
-+-- Offsets of the fields in the ucontext_t structure.
-+#define ucontext(member) offsetof (ucontext_t, member)
-+#define stack(member) ucontext (uc_stack.member)
-+#define mcontext(member) ucontext (uc_mcontext.member)
-+
-+UCONTEXT_FLAGS ucontext (uc_flags)
-+UCONTEXT_LINK ucontext (uc_link)
-+UCONTEXT_STACK ucontext (uc_stack)
-+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
-+UCONTEXT_SIGMASK ucontext (uc_sigmask)
-+
-+STACK_SP stack (ss_sp)
-+STACK_SIZE stack (ss_size)
-+STACK_FLAGS stack (ss_flags)
-+
-+MCONTEXT_GREGS mcontext (gregs)
-+MCONTEXT_FPREGS mcontext (fpregs)
-+MCONTEXT_MDHI mcontext (mdhi)
-+MCONTEXT_HI1 mcontext (hi1)
-+MCONTEXT_HI2 mcontext (hi2)
-+MCONTEXT_HI3 mcontext (hi3)
-+MCONTEXT_MDLO mcontext (mdlo)
-+MCONTEXT_LO1 mcontext (lo1)
-+MCONTEXT_LO2 mcontext (lo2)
-+MCONTEXT_LO3 mcontext (lo3)
-+MCONTEXT_PC mcontext (pc)
-+MCONTEXT_FPC_CSR mcontext (fpc_csr)
-+MCONTEXT_USED_MATH mcontext (used_math)
-+MCONTEXT_DSP mcontext (dsp)
-+
-+UCONTEXT_SIZE sizeof (ucontext_t)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/vfork.S uClibc-git/libc/sysdeps/linux/mips/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/mips/vfork.S 2014-07-25 20:36:07.333337446 +0200
-@@ -12,12 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* vfork() is just a special case of clone(). */
-
-+#include <sys/syscall.h>
- #include <sys/asm.h>
- #include <sysdep.h>
-
-@@ -34,6 +34,7 @@
- /* int vfork() */
-
- .text
-+ .hidden __vfork
- LOCALSZ= 1
- FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
- GPOFF= FRAMESZ-(1*SZREG)
-@@ -84,6 +85,7 @@
-
- /* Something bad happened -- no child created. */
- L(error):
-+ move a0, v0
- #ifdef __PIC__
- PTR_LA t9, __syscall_error
- RESTORE_GP64
-@@ -95,6 +97,6 @@
- END(__vfork)
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/fcntl.h uClibc-git/libc/sysdeps/linux/nios/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/fcntl.h 2014-07-25 20:36:07.369337634 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/mathdef.h uClibc-git/libc/sysdeps/linux/nios/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/mathdef.h 2014-07-25 20:36:07.369337634 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/setjmp.h uClibc-git/libc/sysdeps/linux/nios/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/setjmp.h 2014-07-25 20:36:07.369337634 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. Nios version. */
- #ifndef _BITS_SETJMP_H
-@@ -24,8 +23,6 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
--
- #include <signal.h>
-
- typedef struct
-@@ -44,33 +41,4 @@
-
- } __jmp_buf[1];
-
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)->__sp)
--
--#else /* _ASM */
--
--#define jmpbuf_l0 0x00
--#define jmpbuf_l1 0x01
--#define jmpbuf_l2 0x02
--#define jmpbuf_l3 0x03
--#define jmpbuf_l4 0x04
--#define jmpbuf_l5 0x05
--#define jmpbuf_l6 0x06
--#define jmpbuf_l7 0x07
--
--#define jmpbuf_i0 0x08
--#define jmpbuf_i1 0x09
--#define jmpbuf_i2 0x0a
--#define jmpbuf_i3 0x0b
--#define jmpbuf_i4 0x0c
--#define jmpbuf_i5 0x0d
--
--#define jmpbuf_sp 0x0e
--#define jmpbuf_jmpret 0x0f
--#define jmpbuf_callersret 0x10
--
--#endif /* _ASM */
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/nios/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/sigcontextinfo.h 2014-07-25 20:36:07.369337634 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/nios/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/stackinfo.h 2014-07-25 20:36:07.369337634 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stat.h uClibc-git/libc/sysdeps/linux/nios/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/stat.h 2014-07-25 20:36:07.369337634 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h 2014-07-25 20:36:07.369337634 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/wordsize.h uClibc-git/libc/sysdeps/linux/nios/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/bits/wordsize.h 2014-07-25 20:36:07.369337634 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/brk.c uClibc-git/libc/sysdeps/linux/nios/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/brk.c 2014-07-25 20:36:07.369337634 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/clone.S uClibc-git/libc/sysdeps/linux/nios/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/clone.S 2014-07-25 20:36:07.369337634 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/crt1.S uClibc-git/libc/sysdeps/linux/nios/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/crt1.S 2014-07-25 20:36:07.369337634 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
--not, write to the Free Software Foundation, Inc., 675 Mass Ave,
--Cambridge, MA 02139, USA. */
-+not, see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <asm/unistd.h>
-@@ -29,9 +28,6 @@
- .weak _fini
- .type main,@function
- .type __uClibc_main,@function
-- .type __h_errno_location, @function
-- .type _stdio_init, @function
-- .type _stdio_term, @function
-
- .text
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/fpu_control.h uClibc-git/libc/sysdeps/linux/nios/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/fpu_control.h 2014-07-25 20:36:07.369337634 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/nios/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/nios/jmpbuf-offsets.h 2014-07-25 20:36:07.369337634 +0200
-@@ -0,0 +1,25 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define jmpbuf_l0 0x00
-+#define jmpbuf_l1 0x01
-+#define jmpbuf_l2 0x02
-+#define jmpbuf_l3 0x03
-+#define jmpbuf_l4 0x04
-+#define jmpbuf_l5 0x05
-+#define jmpbuf_l6 0x06
-+#define jmpbuf_l7 0x07
-+
-+#define jmpbuf_i0 0x08
-+#define jmpbuf_i1 0x09
-+#define jmpbuf_i2 0x0a
-+#define jmpbuf_i3 0x0b
-+#define jmpbuf_i4 0x0c
-+#define jmpbuf_i5 0x0d
-+
-+#define jmpbuf_sp 0x0e
-+#define jmpbuf_jmpret 0x0f
-+#define jmpbuf_callersret 0x10
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/nios/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/nios/jmpbuf-unwind.h 2014-07-25 20:36:07.369337634 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->__sp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/__longjmp.S uClibc-git/libc/sysdeps/linux/nios/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/__longjmp.S 2014-07-25 20:36:07.353337550 +0200
-@@ -13,14 +13,9 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--#include <features.h>
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+ see <http://www.gnu.org/licenses/>. */
-
-+#include <jmpbuf-offsets.h>
-
- ;----------------------------------------
- ; Name: __longjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/Makefile.arch uClibc-git/libc/sysdeps/linux/nios/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/Makefile.arch 2014-07-25 20:36:07.353337550 +0200
-@@ -5,8 +5,8 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c crtbegin.c crtend.c
-+CSRC-y := brk.c crtbegin.c crtend.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \
- clone.S vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/setjmp.S uClibc-git/libc/sysdeps/linux/nios/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/setjmp.S 2014-07-25 20:36:07.369337634 +0200
-@@ -13,13 +13,9 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
- #include "NM_Macros.S"
-
- ;----------------------------------------
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/procfs.h uClibc-git/libc/sysdeps/linux/nios/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/sys/procfs.h 2014-07-25 20:36:07.385337718 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/ucontext.h uClibc-git/libc/sysdeps/linux/nios/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/sys/ucontext.h 2014-07-25 20:36:07.385337718 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/vfork.S uClibc-git/libc/sysdeps/linux/nios/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios/vfork.S 2014-07-25 20:36:07.385337718 +0200
-@@ -10,9 +10,6 @@
- * Written by Wentao Xu <wentao@microtronix.com>
- */
-
--#include <features.h>
--
--#include <bits/errno.h>
- #include <sys/syscall.h>
- #include "NM_Macros.S"
-
-@@ -51,4 +48,4 @@
-
- .size __vfork,.-__vfork
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/fcntl.h uClibc-git/libc/sysdeps/linux/nios2/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/fcntl.h 2014-07-25 20:36:07.417337886 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/nios2/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/kernel_types.h 2014-07-25 20:36:07.417337886 +0200
-@@ -31,6 +31,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef unsigned short __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- typedef struct {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/mathdef.h uClibc-git/libc/sysdeps/linux/nios2/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/mathdef.h 2014-07-25 20:36:07.417337886 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/setjmp.h uClibc-git/libc/sysdeps/linux/nios2/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/setjmp.h 2014-07-25 20:36:07.417337886 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SETJMP_H
- #define _BITS_SETJMP_H 1
-@@ -24,7 +23,6 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- typedef struct
- {
- /* Callee-saved registers r16 through r23. */
-@@ -43,30 +41,9 @@
- unsigned long __gp;
-
- /* floating point regs, if any */
--#if defined __HAVE_FPU__
-+#ifdef __UCLIBC_HAS_FPU__
- unsigned long __fpregs[64];
- #endif
- } __jmp_buf[1];
-
--#endif
--
--#define JB_REGS 0
--#define JB_PC 32
--#define JB_SP 36
--#define JB_FP 40
--#define JB_GP 44
--#define JB_FPREGS 48
--
--#if defined __HAVE_FPU__
--# define JB_SIZE 304
--#else
--# define JB_SIZE 48
--#endif
--
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void*)(jmpbuf)->__sp)
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h 2014-07-25 20:36:07.417337886 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/nios2/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/stackinfo.h 2014-07-25 20:36:07.417337886 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stat.h uClibc-git/libc/sysdeps/linux/nios2/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/stat.h 2014-07-25 20:36:07.417337886 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h 2014-07-25 20:36:07.417337886 +0200
-@@ -12,8 +12,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,29 +0,0 @@
--/* Copyright (C) 2004 Erik Andersen
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2.1 of the License, or (at your option) any later version.
-- *
-- * The GNU C Library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-- */
--
--/* Supply an architecture specific value for PAGE_SIZE and friends. */
--
--#ifndef _UCLIBC_PAGE_H
--#define _UCLIBC_PAGE_H
--
--/* PAGE_SHIFT determines the page size -- in this case 4096 */
--#define PAGE_SHIFT (12)
--#define PAGE_SIZE (1UL << PAGE_SHIFT)
--#define PAGE_MASK (~(PAGE_SIZE-1))
--
--#endif /* _UCLIBC_PAGE_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/wordsize.h uClibc-git/libc/sysdeps/linux/nios2/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bits/wordsize.h 2014-07-25 20:36:07.417337886 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/brk.c uClibc-git/libc/sysdeps/linux/nios2/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/brk.c 2014-07-25 20:36:07.417337886 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/nios2/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bsd-setjmp.S 2014-07-25 20:36:07.417337886 +0200
-@@ -12,9 +12,8 @@
- */
-
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <features.h>
-+#include <jmpbuf-offsets.h>
-
- .globl setjmp
- .type setjmp,@function
-@@ -35,7 +34,7 @@
- stw fp, JB_FP(r4)
- stw gp, JB_GP(r4)
-
--#if defined(__HAVE_FPU__)
-+#ifdef __UCLIBC_HAS_FPU__
- SAVE_FPU r4 JB_FPREGS
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/nios2/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/bsd-_setjmp.S 2014-07-25 20:36:07.417337886 +0200
-@@ -11,9 +11,8 @@
- *
- */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <features.h>
-+#include <jmpbuf-offsets.h>
-
- .globl _setjmp
- .type _setjmp,@function
-@@ -34,7 +33,7 @@
- stw fp, JB_FP(r4)
- stw gp, JB_GP(r4)
-
--#if defined(__HAVE_FPU__)
-+#ifdef __UCLIBC_HAS_FPU__
- SAVE_FPU r4 JB_FPREGS
- #endif
- stw r0, JB_SIZE(r4) /* signal mask is not saved */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/crt1.S uClibc-git/libc/sysdeps/linux/nios2/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/crt1.S 2014-07-25 20:36:07.417337886 +0200
-@@ -25,9 +25,6 @@
- #endif
- .type main,@function
- .type __uClibc_main,@function
-- .type __h_errno_location, @function
-- .type _stdio_init, @function
-- .type _stdio_term, @function
- .text
- .balign 4
- _start:
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/fpu_control.h uClibc-git/libc/sysdeps/linux/nios2/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/fpu_control.h 2014-07-25 20:36:07.417337886 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-offsets.h 2014-07-25 20:36:07.417337886 +0200
-@@ -0,0 +1,20 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <features.h>
-+
-+#define JB_REGS 0
-+#define JB_PC 32
-+#define JB_SP 36
-+#define JB_FP 40
-+#define JB_GP 44
-+#define JB_FPREGS 48
-+
-+#ifdef __UCLIBC_HAS_FPU__
-+# define JB_SIZE 304
-+#else
-+# define JB_SIZE 48
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-unwind.h 2014-07-25 20:36:07.417337886 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)->__sp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/__longjmp.S uClibc-git/libc/sysdeps/linux/nios2/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/__longjmp.S 2014-07-25 20:36:07.405337823 +0200
-@@ -12,9 +12,7 @@
- */
-
- #include <features.h>
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- .globl __longjmp
- .type __longjmp,@function
-@@ -39,7 +37,7 @@
- ldw gp, JB_GP(r4)
- ldw sp, JB_SP(r4)
-
--#if defined(__HAVE_FPU__)
-+#ifdef __UCLIBC_HAS_FPU__
- RESTORE_FPU r4 JB_FPREGS
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/Makefile.arch uClibc-git/libc/sysdeps/linux/nios2/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/Makefile.arch 2014-07-25 20:36:07.405337823 +0200
-@@ -5,8 +5,8 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c syscall.c
-+CSRC-y := brk.c syscall.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \
- vfork.S clone.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/setjmp.S uClibc-git/libc/sysdeps/linux/nios2/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/setjmp.S 2014-07-25 20:36:07.417337886 +0200
-@@ -12,9 +12,7 @@
- */
-
- #include <features.h>
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- .globl __sigsetjmp
- .type __sigsetjmp,@function
-@@ -35,7 +33,7 @@
- stw fp, JB_FP(r4)
- stw gp, JB_GP(r4)
-
--#if defined(__HAVE_FPU__)
-+#ifdef __UCLIBC_HAS_FPU__
- SAVE_FPU r4 JB_FPREGS
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/procfs.h uClibc-git/libc/sysdeps/linux/nios2/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/sys/procfs.h 2014-07-25 20:36:07.437337991 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/ucontext.h uClibc-git/libc/sysdeps/linux/nios2/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/sys/ucontext.h 2014-07-25 20:36:07.437337991 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/syscall.c uClibc-git/libc/sysdeps/linux/nios2/syscall.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/syscall.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/syscall.c 2014-07-25 20:36:07.437337991 +0200
-@@ -14,8 +14,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/vfork.S uClibc-git/libc/sysdeps/linux/nios2/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/nios2/vfork.S 2014-07-25 20:36:07.437337991 +0200
-@@ -10,11 +10,7 @@
- * Written by Wentao Xu <wentao@microtronix.com>
- */
-
--#include <features.h>
--
--#define _ERRNO_H
--#include <bits/errno.h>
--#include <asm/unistd.h>
-+#include <sys/syscall.h>
-
- #ifndef __NR_vfork
- #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
-@@ -53,4 +49,4 @@
-
- .size __vfork,.-__vfork
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/atomic.h uClibc-git/libc/sysdeps/linux/powerpc/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/atomic.h 2014-07-25 20:36:07.473338180 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <bits/wordsize.h>
-
-@@ -37,9 +36,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The 32-bit exchange_bool is different on powerpc64 because the subf
- does signed 64-bit arthmatic while the lwarx is 32-bit unsigned
-@@ -260,9 +258,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * The 32-bit exchange_bool is different on powerpc64 because the subf
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/endian.h uClibc-git/libc/sysdeps/linux/powerpc/bits/endian.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/endian.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/endian.h 2014-07-25 20:36:07.473338180 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* PowerPC can be little or big endian. Hopefully gcc will know... */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fcntl.h 2014-07-25 20:36:07.473338180 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenv.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fenv.h 2014-07-25 20:36:07.473338180 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenvinline.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fenvinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenvinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fenvinline.h 2014-07-25 20:36:07.473338180 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/ipc.h uClibc-git/libc/sysdeps/linux/powerpc/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/ipc.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/powerpc/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/kernel_types.h 2014-07-25 20:36:07.477338200 +0200
-@@ -36,6 +36,8 @@
- typedef unsigned int __kernel_old_uid_t;
- typedef unsigned int __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- #else
- typedef unsigned int __kernel_dev_t;
- typedef unsigned int __kernel_ino_t;
-@@ -61,6 +63,8 @@
- typedef unsigned int __kernel_old_uid_t;
- typedef unsigned int __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/local_lim.h uClibc-git/libc/sysdeps/linux/powerpc/bits/local_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/local_lim.h 2014-07-25 20:36:07.477338200 +0200
-@@ -0,0 +1,101 @@
-+/* Minimum guaranteed maximum values for system limits. Linux/PPC version.
-+ Copyright (C) 1993-1998,2000,2002-2004,2006,2008
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public License as
-+ published by the Free Software Foundation; either version 2.1 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-+
-+/* The kernel header pollutes the namespace with the NR_OPEN symbol
-+ and defines LINK_MAX although filesystems have different maxima. A
-+ similar thing is true for OPEN_MAX: the limit can be changed at
-+ runtime and therefore the macro must not be defined. Remove this
-+ after including the header if necessary. */
-+#ifndef NR_OPEN
-+# define __undef_NR_OPEN
-+#endif
-+#ifndef LINK_MAX
-+# define __undef_LINK_MAX
-+#endif
-+#ifndef OPEN_MAX
-+# define __undef_OPEN_MAX
-+#endif
-+#ifndef ARG_MAX
-+# define __undef_ARG_MAX
-+#endif
-+
-+/* The kernel sources contain a file with all the needed information. */
-+#include <linux/limits.h>
-+
-+/* Have to remove NR_OPEN? */
-+#ifdef __undef_NR_OPEN
-+# undef NR_OPEN
-+# undef __undef_NR_OPEN
-+#endif
-+/* Have to remove LINK_MAX? */
-+#ifdef __undef_LINK_MAX
-+# undef LINK_MAX
-+# undef __undef_LINK_MAX
-+#endif
-+/* Have to remove OPEN_MAX? */
-+#ifdef __undef_OPEN_MAX
-+# undef OPEN_MAX
-+# undef __undef_OPEN_MAX
-+#endif
-+/* Have to remove ARG_MAX? */
-+#ifdef __undef_ARG_MAX
-+# undef ARG_MAX
-+# undef __undef_ARG_MAX
-+#endif
-+
-+/* The number of data keys per process. */
-+#define _POSIX_THREAD_KEYS_MAX 128
-+/* This is the value this implementation supports. */
-+#define PTHREAD_KEYS_MAX 1024
-+
-+/* Controlling the iterations of destructors for thread-specific data. */
-+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-+/* Number of iterations this implementation does. */
-+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-+
-+/* The number of threads per process. */
-+#define _POSIX_THREAD_THREADS_MAX 64
-+/* We have no predefined limit on the number of threads. */
-+#undef PTHREAD_THREADS_MAX
-+
-+/* Maximum amount by which a process can descrease its asynchronous I/O
-+ priority level. */
-+#define AIO_PRIO_DELTA_MAX 20
-+
-+/* Minimum size for a thread. At least two pages for systems with 64k
-+ pages. */
-+#define PTHREAD_STACK_MIN 131072
-+
-+/* Maximum number of timer expiration overruns. */
-+#define DELAYTIMER_MAX 2147483647
-+
-+/* Maximum tty name length. */
-+#define TTY_NAME_MAX 32
-+
-+/* Maximum login name length. This is arbitrary. */
-+#define LOGIN_NAME_MAX 256
-+
-+/* Maximum host name length. */
-+#define HOST_NAME_MAX 64
-+
-+/* Maximum message queue priority level. */
-+#define MQ_PRIO_MAX 32768
-+
-+/* Maximum value the semaphore can have. */
-+#define SEM_VALUE_MAX (2147483647)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathdef.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mathdef.h 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathinline.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mathinline.h 2014-07-25 20:36:07.477338200 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mman.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mman.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mman.h 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; iclude <sys/mman.h> instead."
-@@ -63,7 +62,7 @@
- # define MAP_NORESERVE 0x00040 /* Don't check for reservations. */
- # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
- # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
--# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/msq.h uClibc-git/libc/sysdeps/linux/powerpc/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/msq.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sem.h uClibc-git/libc/sysdeps/linux/powerpc/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/sem.h 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/powerpc/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/setjmp.h 2014-07-25 20:36:07.477338200 +0200
-@@ -1,4 +1,5 @@
--/* Copyright (C) 1997, 1998, 2000, 2003, 2004 Free Software Foundation, Inc.
-+/* Copyright (C) 1997,1998,2000,2003,2004,2005,2006
-+ Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. PowerPC version. */
- #ifndef _BITS_SETJMP_H
-@@ -31,30 +31,6 @@
-
- #include <bits/wordsize.h>
-
--#if defined __USE_MISC || defined _ASM
--# define JB_GPR1 0 /* Also known as the stack pointer */
--# define JB_GPR2 1
--# define JB_LR 2 /* The address we will return to */
--# if __WORDSIZE == 64
--# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */
--# define JB_CR 21 /* Condition code registers with the VRSAVE at */
-- /* offset 172 (low half of the double word. */
--# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
--# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */
--# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */
-- /* 168 (high half of the double word). */
--# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */
--# else
--# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */
--# define JB_CR 21 /* Condition code registers. */
--# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
--# define JB_SIZE ((64 + (12 * 4)) * 4)
--# define JB_VRSAVE 62
--# define JB_VRS 64
--# endif
--#endif
--
--
- /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI
- the vrsave must be at byte 248 & v20 at byte 256. So we must pad this
- correctly on 32 bit. It also insists that vecregs are only gauranteed
-@@ -62,19 +38,12 @@
- We have to version the code because members like int __mask_was_saved
- in the jmp_buf will move as jmp_buf is now larger than 248 bytes. We
- cannot keep the altivec jmp_buf backward compatible with the jmp_buf. */
--#ifndef _ASM
--# if __WORDSIZE == 64
-+#if __WORDSIZE == 64
- typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16)));
--# else
-+#else
- /* The alignment is not essential, i.e.the buffer can be copied to a 4 byte
- aligned buffer as per the ABI it is just added for performance reasons. */
- typedef long int __jmp_buf[64 + (12 * 4)] __attribute__ ((__aligned__ (16)));
--# endif
- #endif
-
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
--
--#endif /* bits/setjmp.h */
-+#endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/shm.h uClibc-git/libc/sysdeps/linux/powerpc/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/shm.h 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <signal.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/powerpc/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/stackinfo.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stat.h uClibc-git/libc/sysdeps/linux/powerpc/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/stat.h 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/syscalls.h uClibc-git/libc/sysdeps/linux/powerpc/bits/syscalls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/syscalls.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SYSCALLS_H
- #define _BITS_SYSCALLS_H
-@@ -168,7 +167,7 @@
- }) \
- )
- # define INTERNAL_SYSCALL_ERROR_P(val, err) \
-- ((void) (val), __builtin_expect ((err) & (1 << 28), 0))
-+ ((void) (val), unlikely ((err) & (1 << 28)))
-
- # define INTERNAL_SYSCALL_ERRNO(val, err) (val)
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/termios.h uClibc-git/libc/sysdeps/linux/powerpc/bits/termios.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/termios.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TERMIOS_H
- # error "Never include <bits/termios.h> directly; use <termios.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h 2014-07-25 20:36:07.477338200 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#define __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/brk.S uClibc-git/libc/sysdeps/linux/powerpc/brk.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/brk.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/brk.S 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include "ppc_asm.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bsd-setjmp.S 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/bsd-_setjmp.S 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/clone.S uClibc-git/libc/sysdeps/linux/powerpc/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/clone.S 2014-07-25 20:36:07.477338200 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/crt1.S uClibc-git/libc/sysdeps/linux/powerpc/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/crt1.S 2014-07-25 20:36:07.477338200 +0200
-@@ -12,8 +12,8 @@
- * for more details.
- *
- * You should have received a copy of the GNU Library General Public License
-- * along with this program; if not, write to the Free Software Foundation,
-- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * along with this program; see the file COPYING.LIB. If not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fenv.h uClibc-git/libc/sysdeps/linux/powerpc/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/fenv.h 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * ISO C99 7.6: Floating-point environment <fenv.h>
-@@ -73,7 +72,7 @@
-
- /* Set complete status for exceptions indicated by EXCEPTS according to
- the representation in the object pointed to by FLAGP. */
--extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;
-+extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
-
- /* Determine which of subset of the exceptions specified by EXCEPTS are
- currently set. */
-@@ -102,12 +101,12 @@
-
- /* Establish the floating-point environment represented by the object
- pointed to by ENVP. */
--extern int fesetenv (__const fenv_t *__envp) __THROW;
-+extern int fesetenv (const fenv_t *__envp) __THROW;
-
- /* Save current exceptions in temporary storage, install environment
- represented by object pointed to by ENVP and raise exceptions
- according to saved exceptions. */
--extern int feupdateenv (__const fenv_t *__envp) __THROW;
-+extern int feupdateenv (const fenv_t *__envp) __THROW;
-
-
- /* Include optimization. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fpu_control.h uClibc-git/libc/sysdeps/linux/powerpc/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/fpu_control.h 2014-07-25 20:36:07.477338200 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ioctl.c uClibc-git/libc/sysdeps/linux/powerpc/ioctl.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ioctl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/ioctl.c 2014-07-25 20:36:07.477338200 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdarg.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h 2014-07-25 20:36:07.477338200 +0200
-@@ -0,0 +1,40 @@
-+/* Private macros for accessing __jmp_buf contents. PowerPC version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <bits/wordsize.h>
-+
-+#define JB_GPR1 0 /* Also known as the stack pointer */
-+#define JB_GPR2 1
-+#define JB_LR 2 /* The address we will return to */
-+#if __WORDSIZE == 64
-+# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */
-+# define JB_CR 21 /* Condition code registers with the VRSAVE at */
-+ /* offset 172 (low half of the double word. */
-+# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
-+# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */
-+# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */
-+ /* 168 (high half of the double word). */
-+# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */
-+#else
-+# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */
-+# define JB_CR 21 /* Condition code registers. */
-+# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
-+# define JB_SIZE ((64 + (12 * 4)) * 4)
-+# define JB_VRSAVE 62
-+# define JB_VRS 64
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h 2014-07-25 20:36:07.477338200 +0200
-@@ -0,0 +1,23 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_GPR1] - (_adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/__longjmp.S uClibc-git/libc/sysdeps/linux/powerpc/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/__longjmp.S 2014-07-25 20:36:07.457338096 +0200
-@@ -15,15 +15,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include "ppc_asm.h"
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
-
- #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/Makefile.arch uClibc-git/libc/sysdeps/linux/powerpc/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/Makefile.arch 2014-07-25 20:36:07.457338096 +0200
-@@ -5,18 +5,13 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := __syscall_error.c pread_write.c ioctl.c
-+CSRC-y := __syscall_error.c ioctl.c
-
--ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
--CSRC += posix_fadvise.c posix_fadvise64.c
--endif
--
--SSRC := \
-+SSRC-y := \
- __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \
- __uClibc_syscall.S syscall.S
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--SSRC += clone.S vfork.S
--endif
-+
-+SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += clone.S vfork.S
-
- ifeq ($(CONFIG_E500),y)
- ARCH_HEADERS := fenv.h
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,69 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * posix_fadvise64() for uClibc
-- * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <fcntl.h>
--
--#ifdef __UCLIBC_HAS_LFS__
--#ifdef __NR_fadvise64_64
--
--/* 64 bit implementation is cake ... or more like pie ... */
--#if __WORDSIZE == 64
--
--#define __NR_posix_fadvise64 __NR_fadvise64_64
--
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
--{
-- if (len != (off_t) len)
-- return EOVERFLOW;
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (posix_fadvise64, err, 6, fd, 0,
-- __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
-- (off_t) len, advise);
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
--}
--
--/* 32 bit implementation is kind of a pita */
--#elif __WORDSIZE == 32
--
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
--{
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advise,
-- __LONG_LONG_PAIR((long) (offset >> 32), (long) offset ),
-- __LONG_LONG_PAIR((long) (len >> 32), (long) len));
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
--}
--
--#else
--#error your machine is neither 32 bit or 64 bit ... it must be magical
--#endif
--
--#elif !defined __NR_fadvise64
--/* This is declared as a strong alias in posix_fadvise.c if __NR_fadvise64
-- * is defined.
-- */
--int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
--{
--#warning This is not correct as far as SUSv3 is concerned.
-- return ENOSYS;
--}
--#endif /* __NR_fadvise64_64 */
--#endif /* __UCLIBC_HAS_LFS__ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise.c uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,36 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * posix_fadvise() for uClibc
-- * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <sys/syscall.h>
--#include <fcntl.h>
--
--#ifdef __NR_fadvise64
--#define __NR_posix_fadvise __NR_fadvise64
--int posix_fadvise(int fd, off_t offset, off_t len, int advice)
--{
-- INTERNAL_SYSCALL_DECL(err);
-- int ret = (int) (INTERNAL_SYSCALL(posix_fadvise, err, 6, fd, 0,
-- __LONG_LONG_PAIR (offset >> 31, offset), len, advice));
-- if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
-- return 0;
--}
--
--#if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || !defined _syscall6)
--strong_alias(posix_fadvise,posix_fadvise64)
--#endif
--
--#else
--int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
--{
--#warning This is not correct as far as SUSv3 is concerned.
-- return ENOSYS;
--}
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h 2014-07-25 20:36:07.493338284 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
-- 02110-1301 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef __ASSEMBLER__
-
-@@ -133,6 +132,7 @@
-
- #define PSEUDO_RET_ERRVAL \
- blr
-+#undef ret_ERRVAL
- #define ret_ERRVAL PSEUDO_RET_ERRVAL
-
- #undef PSEUDO_END_ERRVAL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h 2014-07-25 20:36:07.505338346 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
-- 02110-1301 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef __ELF__
-
-@@ -228,6 +227,7 @@
- #define PSEUDO_RET_ERRVAL \
- blr
-
-+#undef ret_ERRVAL
- #define ret_ERRVAL PSEUDO_RET_ERRVAL
-
- #undef PSEUDO_END_ERRVAL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ppc_asm.h uClibc-git/libc/sysdeps/linux/powerpc/ppc_asm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ppc_asm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/ppc_asm.h 2014-07-25 20:36:07.505338346 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef __ASSEMBLER__
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/pread_write.c uClibc-git/libc/sysdeps/linux/powerpc/pread_write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/pread_write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/pread_write.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,183 +0,0 @@
--/* vi: set sw=4 ts=4:
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--/* Based in part on the files
-- * ./sysdeps/unix/sysv/linux/pwrite.c,
-- * ./sysdeps/unix/sysv/linux/pread.c,
-- * sysdeps/posix/pread.c
-- * sysdeps/posix/pwrite.c
-- * from GNU libc 2.2.5, but reworked considerably...
-- */
--
--#include <sys/syscall.h>
--#include <unistd.h>
--#include <endian.h>
--
--#ifndef __UCLIBC_HAS_LFS__
--# define off64_t off_t
--#endif
--
--#ifdef __NR_pread
--extern __typeof(pread) __libc_pread;
--# define __NR___syscall_pread __NR_pread
--static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd,
-- void *, buf, size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)));
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pread64) __libc_pread64;
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 32, offset)));
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* __NR_pread */
--
--
--#ifdef __NR_pwrite
--extern __typeof(pwrite) __libc_pwrite;
--# define __NR___syscall_pwrite __NR_pwrite
--static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd,
-- const void *, buf, size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)));
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pwrite64) __libc_pwrite64;
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 32, offset)));
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* __NR_pwrite */
--
--
--
--#if ! defined __NR_pread || ! defined __NR_pwrite
--
--static ssize_t __fake_pread_write(int fd, void *buf,
-- size_t count, off_t offset, int do_pwrite)
--{
-- int save_errno;
-- ssize_t result;
-- off_t old_offset;
--
-- /* Since we must not change the file pointer preserve the
-- * value so that we can restore it later. */
-- if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
-- return -1;
--
-- /* Set to wanted position. */
-- if (lseek (fd, offset, SEEK_SET) == (off_t) -1)
-- return -1;
--
-- if (do_pwrite == 1) {
-- /* Write the data. */
-- result = write(fd, buf, count);
-- } else {
-- /* Read the data. */
-- result = read(fd, buf, count);
-- }
--
-- /* Now we have to restore the position. If this fails we
-- * have to return this as an error. */
-- save_errno = errno;
-- if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
-- {
-- if (result == -1)
-- __set_errno(save_errno);
-- return -1;
-- }
-- __set_errno(save_errno);
-- return(result);
--}
--
--# ifdef __UCLIBC_HAS_LFS__
--
--static ssize_t __fake_pread_write64(int fd, void *buf,
-- size_t count, off64_t offset, int do_pwrite)
--{
-- int save_errno;
-- ssize_t result;
-- off64_t old_offset;
--
-- /* Since we must not change the file pointer preserve the
-- * value so that we can restore it later. */
-- if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
-- return -1;
--
-- /* Set to wanted position. */
-- if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
-- return -1;
--
-- if (do_pwrite == 1) {
-- /* Write the data. */
-- result = write(fd, buf, count);
-- } else {
-- /* Read the data. */
-- result = read(fd, buf, count);
-- }
--
-- /* Now we have to restore the position. */
-- save_errno = errno;
-- if (lseek64 (fd, old_offset, SEEK_SET) == (off64_t) -1) {
-- if (result == -1)
-- __set_errno (save_errno);
-- return -1;
-- }
-- __set_errno (save_errno);
-- return result;
--}
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
--
--#ifndef __NR_pread
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset);
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return(__fake_pread_write(fd, buf, count, offset, 0));
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset);
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- return(__fake_pread_write64(fd, buf, count, offset, 0));
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! __NR_pread */
--
--
--#ifndef __NR_pwrite
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset);
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- return(__fake_pread_write(fd, (void*)buf, count, offset, 1));
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset);
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- return(__fake_pread_write64(fd, (void*)buf, count, offset, 1));
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! __NR_pwrite */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/setjmp.S 2014-07-25 20:36:07.505338346 +0200
-@@ -15,15 +15,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include "ppc_asm.h"
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
- #define FP(x...) x
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/procfs.h uClibc-git/libc/sysdeps/linux/powerpc/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/sys/procfs.h 2014-07-25 20:36:07.521338430 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ptrace.h uClibc-git/libc/sysdeps/linux/powerpc/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/sys/ptrace.h 2014-07-25 20:36:07.521338430 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/powerpc/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/sys/ucontext.h 2014-07-25 20:36:07.521338430 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/user.h uClibc-git/libc/sysdeps/linux/powerpc/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/sys/user.h 2014-07-25 20:36:07.521338430 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/syscall.S uClibc-git/libc/sysdeps/linux/powerpc/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/syscall.S 2014-07-25 20:36:07.521338430 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-@@ -30,6 +29,7 @@
- mr 5,6
- mr 6,7
- mr 7,8
-+ mr 8,9
- sc
- bnslr;
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/sysdep.h 2014-07-25 20:36:07.521338430 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <common/sysdep.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/vfork.S uClibc-git/libc/sysdeps/linux/powerpc/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/powerpc/vfork.S 2014-07-25 20:36:07.521338430 +0200
-@@ -27,4 +27,4 @@
- .size __vfork,.-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/README uClibc-git/libc/sysdeps/linux/README
---- uClibc-0.9.33.2/libc/sysdeps/linux/README 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/README 2014-07-25 20:36:06.477332962 +0200
-@@ -4,4 +4,7 @@
- to add that support.
-
- All stuff that is not at all dependent on a particular Linux architecture
--goes in the 'common' directory.
-+goes in the 'common' directory. However, for new architectures which are
-+using the generic syscalls in the Linux Kernel, the 'common-generic'
-+directory should be used instead as they all use identical interfaces for
-+the system calls.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/atomic.h uClibc-git/libc/sysdeps/linux/sh/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/atomic.h 2014-07-25 20:36:07.549338578 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdint.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sh/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/fcntl.h 2014-07-25 20:36:07.549338578 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fenv.h uClibc-git/libc/sysdeps/linux/sh/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/fenv.h 2014-07-25 20:36:07.549338578 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/huge_val.h uClibc-git/libc/sysdeps/linux/sh/bits/huge_val.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/huge_val.h 2014-07-25 20:36:07.549338578 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/sh/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/kernel_types.h 2014-07-25 20:36:07.549338578 +0200
-@@ -32,6 +32,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- typedef struct {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/mathdef.h uClibc-git/libc/sysdeps/linux/sh/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/mathdef.h 2014-07-25 20:36:07.549338578 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sh/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/setjmp.h 2014-07-25 20:36:07.549338578 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
-+/* Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,19 +12,17 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. SH version. */
- #ifndef _BITS_SETJMP_H
--#define _BITS_SETJMP_H 1
-+#define _BITS_SETJMP_H 1
-
- #if !defined _SETJMP_H && !defined _PTHREAD_H
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- typedef struct
- {
- /* Callee-saved registers r8 through r15. */
-@@ -42,15 +40,5 @@
- /* Callee-saved floating point registers fr12 through fr15. */
- int __fpregs[4];
- } __jmp_buf[1];
--#endif
--
--#if defined __USE_MISC || defined _ASM
--# define JB_SIZE (4 * 15)
--#endif
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
-
--#endif /* bits/setjmp.h */
-+#endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/shm.h uClibc-git/libc/sysdeps/linux/sh/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/shm.h 2014-07-25 20:36:07.549338578 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/sh/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/sigcontextinfo.h 2014-07-25 20:36:07.549338578 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT int _a2, int _a3, int _a4, struct sigcontext
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sh/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/stackinfo.h 2014-07-25 20:36:07.549338578 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h 2014-07-25 20:36:07.549338578 +0200
-@@ -15,8 +15,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/wordsize.h uClibc-git/libc/sysdeps/linux/sh/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/bits/wordsize.h 2014-07-25 20:36:07.549338578 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/cacheflush.c uClibc-git/libc/sysdeps/linux/sh/cacheflush.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/cacheflush.c 2014-07-25 20:36:07.553338598 +0200
-@@ -6,10 +6,9 @@
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
--#include <errno.h>
--#include <unistd.h>
- #include <sys/syscall.h>
-
- #ifdef __NR_cacheflush
--_syscall3(int, cacheflush, char *, addr, int, nbytes, int, op)
-+int cacheflush(void *addr, const int nbytes, int op);
-+_syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/clone.S uClibc-git/libc/sysdeps/linux/sh/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/clone.S 2014-07-25 20:36:07.553338598 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/crt1.S uClibc-git/libc/sysdeps/linux/sh/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/crt1.S 2014-07-25 20:36:07.553338598 +0200
-@@ -14,8 +14,7 @@
- details.
-
- You should have received a copy of the GNU Library General Public License
-- along with this program; if not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/___fpscr_values.S uClibc-git/libc/sysdeps/linux/sh/___fpscr_values.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/___fpscr_values.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/___fpscr_values.S 2014-07-25 20:36:07.537338514 +0200
-@@ -14,8 +14,7 @@
- details.
-
- You should have received a copy of the GNU Library General Public License
-- along with this program; if not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/fpu_control.h uClibc-git/libc/sysdeps/linux/sh/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/fpu_control.h 2014-07-25 20:36:07.553338598 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/sh/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sh/jmpbuf-offsets.h 2014-07-25 20:36:07.553338598 +0200
-@@ -0,0 +1,19 @@
-+/* Private macros for accessing __jmp_buf contents. SH version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define JB_SIZE (4 * 15)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/sh/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sh/jmpbuf-unwind.h 2014-07-25 20:36:07.553338598 +0200
-@@ -0,0 +1,22 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \
-+ ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/__longjmp.S uClibc-git/libc/sysdeps/linux/sh/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/__longjmp.S 2014-07-25 20:36:07.537338514 +0200
-@@ -14,12 +14,8 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
- #include <features.h>
-
- /* __longjmp(jmpbuf, val) */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/Makefile.arch uClibc-git/libc/sysdeps/linux/sh/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/Makefile.arch 2014-07-25 20:36:07.537338514 +0200
-@@ -6,7 +6,10 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := \
-- mmap.c pipe.c __init_brk.c brk.c sbrk.c pread_write.c cacheflush.c
-+CSRC-y := \
-+ pipe.c __init_brk.c brk.c sbrk.c pread_write.c
-
--SSRC := setjmp.S __longjmp.S ___fpscr_values.S vfork.S clone.S
-+SSRC-y := setjmp.S __longjmp.S ___fpscr_values.S
-+
-+CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
-+SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += clone.S vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/mmap.c uClibc-git/libc/sysdeps/linux/sh/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,34 +0,0 @@
--/* Copyright (C) 2001 Hewlett-Packard
--
-- This program is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Library General Public License as published by the Free
-- Software Foundation; either version 2 of the License, or (at your option) any
-- later version.
--
-- This program is distributed in the hope that it will be useful, but WITHOUT
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-- FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
-- details.
--
-- You should have received a copy of the GNU Library General Public License
-- along with this program; if not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- Derived in part from the Linux-8086 C library, the GNU C Library, and several
-- other sundry sources. Files within this library are copyright by their
-- respective copyright holders.
--*/
--
--#include <unistd.h>
--#include <errno.h>
--#include <sys/mman.h>
--
--
--#ifdef HIOS
--# define __SH_SYSCALL6_TRAPA 0x2E
--#endif
--
--#include <sys/syscall.h>
--
--_syscall6(__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot, int, flags, int, fd, __off_t, offset)
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/pread_write.c uClibc-git/libc/sysdeps/linux/sh/pread_write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/pread_write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/pread_write.c 2014-07-25 20:36:07.553338598 +0200
-@@ -4,122 +4,8 @@
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
--/*
-- * Based in part on the files
-- * ./sysdeps/unix/sysv/linux/pwrite.c,
-- * ./sysdeps/unix/sysv/linux/pread.c,
-- * sysdeps/posix/pread.c
-- * sysdeps/posix/pwrite.c
-- * from GNU libc 2.2.5, but reworked considerably...
-- */
--
--#include <sys/syscall.h>
--#include <unistd.h>
--#include <stdint.h>
--#include <endian.h>
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
--#include <sysdep-cancel.h>
--#else
--#define SINGLE_THREAD_P 1
--#endif
--
--
--#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
--# ifdef __NR_pread
--# error "__NR_pread and __NR_pread64 both defined???"
--# endif
--# define __NR_pread __NR_pread64
--#endif
--
--#ifdef __NR_pread
--extern __typeof(pread) __libc_pread;
--# define __NR___syscall_pread __NR_pread
--static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
-- size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- if (SINGLE_THREAD_P)
-- return(__syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset)));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- ssize_t result = __syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pread64) __libc_pread64;
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
--
-- if (SINGLE_THREAD_P)
-- return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- ssize_t result = __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* __NR_pread */
--
--/**********************************************************************/
--
--#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
--# ifdef __NR_pwrite
--# error "__NR_pwrite and __NR_pwrite64 both defined???"
--# endif
--# define __NR_pwrite __NR_pwrite64
--#endif
--
--#ifdef __NR_pwrite
--extern __typeof(pwrite) __libc_pwrite;
--# define __NR___syscall_pwrite __NR_pwrite
--static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-- size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- if (SINGLE_THREAD_P)
-- return __syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
--
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- ssize_t result = __syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pwrite64) __libc_pwrite64;
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
--
-- if (SINGLE_THREAD_P)
-- return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
-
--#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- int oldtype = LIBC_CANCEL_ASYNC ();
-- ssize_t result = __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
-- LIBC_CANCEL_RESET (oldtype);
-- return result;
--#endif
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* __NR_pwrite */
-+/* SuperH doesn't have this alignment issue. It just decided to copy
-+ * the syscall interface from another arch for no good reason. */
-+#define __UCLIBC_SYSCALL_ALIGN_64BIT__
-+#include "../common/pread_write.c"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/setjmp.S uClibc-git/libc/sysdeps/linux/sh/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/setjmp.S 2014-07-25 20:36:07.553338598 +0200
-@@ -14,13 +14,10 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- .text
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/io.h uClibc-git/libc/sysdeps/linux/sh/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/sys/io.h 2014-07-25 20:36:07.553338598 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
-
-@@ -23,17 +22,18 @@
-
- __BEGIN_DECLS
-
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
- /* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
- permission to access any I/O port is granted. This call requires
- root privileges. */
- extern int iopl (int __level) __THROW;
-+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
-
- /* The functions that actually perform reads and writes. */
- extern unsigned char inb (unsigned long int port) __THROW;
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/procfs.h uClibc-git/libc/sysdeps/linux/sh/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/sys/procfs.h 2014-07-25 20:36:07.553338598 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sh/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/sys/ucontext.h 2014-07-25 20:36:07.553338598 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Where is System V/SH ABI? */
-
-@@ -32,10 +31,10 @@
- typedef int greg_t;
-
- /* Number of general registers. */
--#define NFPREG 16
-+#define NGREG 16
-
- /* Container for all general registers. */
--typedef greg_t gregset_t[NFPREG];
-+typedef greg_t gregset_t[NGREG];
-
- #ifdef __USE_GNU
- /* Number of each register is the `gregset_t' array. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/user.h uClibc-git/libc/sysdeps/linux/sh/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/sys/user.h 2014-07-25 20:36:07.553338598 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sysdep.h uClibc-git/libc/sysdeps/linux/sh/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/sysdep.h 2014-07-25 20:36:07.557338620 +0200
-@@ -13,14 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <common/sysdep.h>
-
- #include <features.h>
--#include <libc-internal.h>
-
- #ifdef __ASSEMBLER__
-
-@@ -143,8 +141,6 @@
- #define PSEUDO_END_ERRVAL(name) \
- END (name)
-
--#define ret_ERRVAL ret
--
- #ifndef __PIC__
- # define SYSCALL_ERROR_HANDLER \
- mov.l 0f,r1; \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/vfork.S uClibc-git/libc/sysdeps/linux/sh/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh/vfork.S 2014-07-25 20:36:07.557338620 +0200
-@@ -12,19 +12,16 @@
- details.
-
- You should have received a copy of the GNU Library General Public License
-- along with this program; if not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- Derived in part from the Linux-8086 C library, the GNU C Library, and several
- other sundry sources. Files within this library are copyright by their
- respective copyright holders.
- */
-
--#include <features.h>
- #include <sys/syscall.h>
- #define _ERRNO_H
- #include <bits/errno.h>
--#include <bits/sysnum.h>
-
- /* Clone the calling process, but without copying the whole address space.
- The calling process is suspended until the new process exits or is
-@@ -109,6 +106,6 @@
-
- .size __vfork, .-__vfork
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-
- #include "syscall_error.S"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sh64/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/bits/fcntl.h 2014-07-25 20:36:07.589338787 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/sh64/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/bits/kernel_types.h 2014-07-25 20:36:07.589338787 +0200
-@@ -43,6 +43,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- typedef struct {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sh64/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/bits/setjmp.h 2014-07-25 20:36:07.589338787 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. SH-5 version. */
- #ifndef _BITS_SETJMP_H
-@@ -33,8 +32,6 @@
- #define __SETJMP_TRG(x) (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+(x))
- #define __SETJMP_LR (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+__SETJMP_NUM_TRG)
-
--
--#ifndef _ASM
- typedef struct
- {
- /* Callee-saved registers. */
-@@ -45,6 +42,5 @@
- unsigned long long __trgs[__SETJMP_NUM_TRG]; /* traget registers */
- unsigned long long __lr; /* linkage register */
- } __jmp_buf[1];
--#endif
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/shm.h uClibc-git/libc/sysdeps/linux/sh64/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/bits/shm.h 2014-07-25 20:36:07.589338787 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sh64/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/bits/stackinfo.h 2014-07-25 20:36:07.589338787 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h 2014-07-25 20:36:07.589338787 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #undef __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/crt1.S uClibc-git/libc/sysdeps/linux/sh64/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/crt1.S 2014-07-25 20:36:07.589338787 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This is the canonical entry point, usually the first thing in the text
- segment.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/__longjmp.S uClibc-git/libc/sysdeps/linux/sh64/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/__longjmp.S 2014-07-25 20:36:07.573338703 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
-
- #define _SETJMP_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/Makefile.arch uClibc-git/libc/sysdeps/linux/sh64/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/Makefile.arch 2014-07-25 20:36:07.573338703 +0200
-@@ -5,6 +5,6 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := __init_brk.c brk.c sbrk.c syscall.c
-+CSRC-y := __init_brk.c brk.c sbrk.c syscall.c
-
--SSRC := setjmp.S __longjmp.S
-+SSRC-y := setjmp.S __longjmp.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/setjmp.S uClibc-git/libc/sysdeps/linux/sh64/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/setjmp.S 2014-07-25 20:36:07.589338787 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
-
- #define _SETJMP_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/procfs.h uClibc-git/libc/sysdeps/linux/sh64/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/sys/procfs.h 2014-07-25 20:36:07.589338787 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sh64/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sh64/sys/ucontext.h 2014-07-25 20:36:07.589338787 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* Where is System V/SH ABI? */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/atomic.h uClibc-git/libc/sysdeps/linux/sparc/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/atomic.h 2014-07-25 20:36:07.625338976 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_ATOMIC_H
- #define _BITS_ATOMIC_H 1
-@@ -290,11 +289,11 @@
- __typeof (*(mem)) __acev_wval = (newval); \
- do \
- __acev_wret = *__acev_wmemp; \
-- while (__builtin_expect \
-+ while (unlikely \
- (__v9_compare_and_exchange_val_32_acq (__acev_wmemp,\
- __acev_wval, \
- __acev_wret) \
-- != __acev_wret, 0)); \
-+ != __acev_wret)); \
- } \
- else \
- __acev_wret = __v7_exchange_acq (mem, newval); \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/eventfd.h uClibc-git/libc/sysdeps/linux/sparc/bits/eventfd.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/eventfd.h 2014-07-25 20:36:07.625338976 +0200
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd. */
-+enum
-+ {
-+ EFD_SEMAPHORE = 1,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+ EFD_CLOEXEC = 0x400000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+ EFD_NONBLOCK = 0x004000
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+ };
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sparc/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/fcntl.h 2014-07-25 20:36:07.625338976 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fenv.h uClibc-git/libc/sysdeps/linux/sparc/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/fenv.h 2014-07-25 20:36:07.625338976 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -68,11 +67,11 @@
- typedef unsigned long int fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) -1)
-+#define FE_DFL_ENV ((const fenv_t *) -1)
-
- #ifdef __USE_GNU
- /* Floating-point environment where none of the exception is masked. */
--# define FE_NOMASK_ENV ((__const fenv_t *) -2)
-+# define FE_NOMASK_ENV ((const fenv_t *) -2)
- #endif
-
- /* For internal use only: access the fp state register. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/sparc/bits/huge_vall.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/huge_vall.h 2014-07-25 20:36:07.625338976 +0200
-@@ -0,0 +1,48 @@
-+/* `HUGE_VALL' constant for IEEE 754 machines (where it is infinity).
-+ Used by <stdlib.h> and <math.h> functions for overflow.
-+ Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _MATH_H
-+# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
-+#endif
-+
-+#if __GNUC_PREREQ(3,3)
-+# define HUGE_VALL (__builtin_huge_vall())
-+#else
-+# include <bits/wordsize.h>
-+# if __WORDSIZE == 32
-+# define HUGE_VALL ((long double) HUGE_VAL)
-+# elif __GNUC_PREREQ(2,96)
-+# define HUGE_VALL (__extension__ 0x1.0p32767L)
-+# elif defined __GNUC__
-+
-+# define HUGE_VALL \
-+ (__extension__ \
-+ ((union { struct { unsigned long __h, __l; } __i; long double __d; }) \
-+ { __i: { __h: 0x7fff000000000000UL, __l: 0 } }).__d)
-+
-+# else /* not GCC */
-+
-+typedef union { unsigned char __c[16]; long double __d; } __huge_vall_t;
-+# define __HUGE_VALL_bytes { 0x7f, 0xff, 0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
-+static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
-+# define HUGE_VALL (__huge_vall.__d)
-+
-+# endif /* GCC. */
-+#endif /* GCC 3.3. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ioctls.h uClibc-git/libc/sysdeps/linux/sparc/bits/ioctls.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/ioctls.h 2014-07-25 20:36:07.625338976 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IOCTL_H
- # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ipc.h uClibc-git/libc/sysdeps/linux/sparc/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/ipc.h 2014-07-25 20:36:07.625338976 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/sparc/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/kernel_types.h 2014-07-25 20:36:07.625338976 +0200
-@@ -32,6 +32,8 @@
- typedef __kernel_uid_t __kernel_old_uid_t;
- typedef __kernel_gid_t __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef __kernel_uid_t __kernel_uid32_t;
- typedef __kernel_gid_t __kernel_gid32_t;
- typedef int __kernel_suseconds_t;
-@@ -62,6 +64,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/local_lim.h uClibc-git/libc/sysdeps/linux/sparc/bits/local_lim.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/local_lim.h 2014-07-25 20:36:07.625338976 +0200
-@@ -0,0 +1,99 @@
-+/* Minimum guaranteed maximum values for system limits. Linux/SPARC version.
-+ Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If not,
-+ see <http://www.gnu.org/licenses/>. */
-+
-+/* The kernel header pollutes the namespace with the NR_OPEN symbol
-+ and defines LINK_MAX although filesystems have different maxima. A
-+ similar thing is true for OPEN_MAX: the limit can be changed at
-+ runtime and therefore the macro must not be defined. Remove this
-+ after including the header if necessary. */
-+#ifndef NR_OPEN
-+# define __undef_NR_OPEN
-+#endif
-+#ifndef LINK_MAX
-+# define __undef_LINK_MAX
-+#endif
-+#ifndef OPEN_MAX
-+# define __undef_OPEN_MAX
-+#endif
-+#ifndef ARG_MAX
-+# define __undef_ARG_MAX
-+#endif
-+
-+/* The kernel sources contain a file with all the needed information. */
-+#include <linux/limits.h>
-+
-+/* Have to remove NR_OPEN? */
-+#ifdef __undef_NR_OPEN
-+# undef NR_OPEN
-+# undef __undef_NR_OPEN
-+#endif
-+/* Have to remove LINK_MAX? */
-+#ifdef __undef_LINK_MAX
-+# undef LINK_MAX
-+# undef __undef_LINK_MAX
-+#endif
-+/* Have to remove OPEN_MAX? */
-+#ifdef __undef_OPEN_MAX
-+# undef OPEN_MAX
-+# undef __undef_OPEN_MAX
-+#endif
-+/* Have to remove ARG_MAX? */
-+#ifdef __undef_ARG_MAX
-+# undef ARG_MAX
-+# undef __undef_ARG_MAX
-+#endif
-+
-+/* The number of data keys per process. */
-+#define _POSIX_THREAD_KEYS_MAX 128
-+/* This is the value this implementation supports. */
-+#define PTHREAD_KEYS_MAX 1024
-+
-+/* Controlling the iterations of destructors for thread-specific data. */
-+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
-+/* Number of iterations this implementation does. */
-+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-+
-+/* The number of threads per process. */
-+#define _POSIX_THREAD_THREADS_MAX 64
-+/* We have no predefined limit on the number of threads. */
-+#undef PTHREAD_THREADS_MAX
-+
-+/* Maximum amount by which a process can descrease its asynchronous I/O
-+ priority level. */
-+#define AIO_PRIO_DELTA_MAX 20
-+
-+/* Minimum size for a thread. We are free to choose a reasonable value. */
-+#define PTHREAD_STACK_MIN 24576
-+
-+/* Maximum number of timer expiration overruns. */
-+#define DELAYTIMER_MAX 2147483647
-+
-+/* Maximum tty name length. */
-+#define TTY_NAME_MAX 32
-+
-+/* Maximum login name length. This is arbitrary. */
-+#define LOGIN_NAME_MAX 256
-+
-+/* Maximum host name length. */
-+#define HOST_NAME_MAX 64
-+
-+/* Maximum message queue priority level. */
-+#define MQ_PRIO_MAX 32768
-+
-+/* Maximum value the semaphore can have. */
-+#define SEM_VALUE_MAX (2147483647)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathdef.h uClibc-git/libc/sysdeps/linux/sparc/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/mathdef.h 2014-07-25 20:36:07.625338976 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathinline.h uClibc-git/libc/sysdeps/linux/sparc/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/mathinline.h 2014-07-25 20:36:07.633339018 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mman.h uClibc-git/libc/sysdeps/linux/sparc/bits/mman.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/mman.h 2014-07-25 20:36:07.633339018 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-@@ -65,7 +64,7 @@
- # define _MAP_NEW 0x80000000 /* Binary compatibility with SunOS. */
- # define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */
- # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
--# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/msq.h uClibc-git/libc/sysdeps/linux/sparc/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/msq.h 2014-07-25 20:36:07.633339018 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/poll.h uClibc-git/libc/sysdeps/linux/sparc/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/poll.h 2014-07-25 20:36:07.633339018 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/resource.h uClibc-git/libc/sysdeps/linux/sparc/bits/resource.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/resource.h 2014-07-25 20:36:07.637339038 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_RESOURCE_H
- # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sem.h uClibc-git/libc/sysdeps/linux/sparc/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/sem.h 2014-07-25 20:36:07.637339038 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sparc/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/setjmp.h 2014-07-25 20:36:07.637339038 +0200
-@@ -1,4 +1,5 @@
--/* Copyright (C) 1997,1999,2000,2003 Free Software Foundation, Inc.
-+/* Copyright (C) 1997, 1999, 2000, 2003, 2005, 2006
-+ Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SETJMP_H
- #define _BITS_SETJMP_H 1
-@@ -27,7 +27,6 @@
-
- #if 0 /*__WORDSIZE == 64*/
-
--#ifndef _ASM
- typedef struct __sparc64_jmp_buf
- {
- struct __sparc64_jmp_buf *uc_link;
-@@ -55,30 +54,8 @@
- } mc_fpregs;
- } uc_mcontext;
- } __jmp_buf[1];
--#endif
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
--
- #else
--
--#if defined __USE_MISC || defined _ASM
--# define JB_SP 0
--# define JB_FP 1
--# define JB_PC 2
--#endif
--
--#ifndef _ASM
- typedef int __jmp_buf[3];
- #endif
-
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((int) (address) < (jmpbuf)[JB_SP])
--
--#endif
--
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/shm.h uClibc-git/libc/sysdeps/linux/sparc/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/shm.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigaction.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigaction.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigaction.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontext.h 2014-07-25 20:36:07.637339038 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
- # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT struct sigcontext *
- #define SIGCONTEXT_EXTRA_ARGS
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/siginfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/siginfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/siginfo.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined __need_siginfo_t \
- && !defined __need_sigevent_t
-@@ -289,6 +288,10 @@
- {
- int _pad[__SIGEV_PAD_SIZE];
-
-+ /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
-+ thread to receive the signal. */
-+ __pid_t _tid;
-+
- struct
- {
- void (*_function) (sigval_t); /* Function to start. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/signum.h uClibc-git/libc/sysdeps/linux/sparc/bits/signum.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/signum.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef _SIGNAL_H
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigstack.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigstack.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigstack.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SIGNAL_H
- # error "Never include this file directly. Use <signal.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket.h uClibc-git/libc/sysdeps/linux/sparc/bits/socket.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,376 +0,0 @@
--/* System-specific socket constants and types. Linux version.
-- Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#ifndef __BITS_SOCKET_H
--#define __BITS_SOCKET_H
--
--#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
--# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
--#endif
--
--#define __need_size_t
--#define __need_NULL
--#include <stddef.h>
--
--#include <limits.h>
--#include <sys/types.h>
--
--/* Type for length arguments in socket calls. */
--#ifndef __socklen_t_defined
--typedef __socklen_t socklen_t;
--# define __socklen_t_defined
--#endif
--
--/* Types of sockets. */
--enum __socket_type
--{
-- SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
-- byte streams. */
--#define SOCK_STREAM SOCK_STREAM
-- SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
-- of fixed maximum length. */
--#define SOCK_DGRAM SOCK_DGRAM
-- SOCK_RAW = 3, /* Raw protocol interface. */
--#define SOCK_RAW SOCK_RAW
-- SOCK_RDM = 4, /* Reliably-delivered messages. */
--#define SOCK_RDM SOCK_RDM
-- SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-- datagrams of fixed maximum length. */
--#define SOCK_SEQPACKET SOCK_SEQPACKET
-- SOCK_PACKET = 10 /* Linux specific way of getting packets
-- at the dev level. For writing rarp and
-- other similar things on the user level. */
--#define SOCK_PACKET SOCK_PACKET
--};
--
--/* Protocol families. */
--#define PF_UNSPEC 0 /* Unspecified. */
--#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
--#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
--#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
--#define PF_INET 2 /* IP protocol family. */
--#define PF_AX25 3 /* Amateur Radio AX.25. */
--#define PF_IPX 4 /* Novell Internet Protocol. */
--#define PF_APPLETALK 5 /* Appletalk DDP. */
--#define PF_NETROM 6 /* Amateur radio NetROM. */
--#define PF_BRIDGE 7 /* Multiprotocol bridge. */
--#define PF_ATMPVC 8 /* ATM PVCs. */
--#define PF_X25 9 /* Reserved for X.25 project. */
--#define PF_INET6 10 /* IP version 6. */
--#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
--#define PF_DECnet 12 /* Reserved for DECnet project. */
--#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
--#define PF_SECURITY 14 /* Security callback pseudo AF. */
--#define PF_KEY 15 /* PF_KEY key management API. */
--#define PF_NETLINK 16
--#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
--#define PF_PACKET 17 /* Packet family. */
--#define PF_ASH 18 /* Ash. */
--#define PF_ECONET 19 /* Acorn Econet. */
--#define PF_ATMSVC 20 /* ATM SVCs. */
--#define PF_SNA 22 /* Linux SNA Project */
--#define PF_IRDA 23 /* IRDA sockets. */
--#define PF_PPPOX 24 /* PPPoX sockets. */
--#define PF_WANPIPE 25 /* Wanpipe API sockets. */
--#define PF_LLC 26 /* Linux LLC. */
--#define PF_CAN 29 /* Controller Area Network. */
--#define PF_TIPC 30 /* TIPC sockets. */
--#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
--#define PF_IUCV 32 /* IUCV sockets. */
--#define PF_RXRPC 33 /* RxRPC sockets. */
--#define PF_ISDN 34 /* mISDN sockets. */
--#define PF_PHONET 35 /* Phonet sockets. */
--#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
--#define PF_CAIF 37 /* CAIF sockets. */
--#define PF_ALG 38 /* Algorithm sockets. */
--#define PF_MAX 39 /* For now.. */
--
--/* Address families. */
--#define AF_UNSPEC PF_UNSPEC
--#define AF_LOCAL PF_LOCAL
--#define AF_UNIX PF_UNIX
--#define AF_FILE PF_FILE
--#define AF_INET PF_INET
--#define AF_AX25 PF_AX25
--#define AF_IPX PF_IPX
--#define AF_APPLETALK PF_APPLETALK
--#define AF_NETROM PF_NETROM
--#define AF_BRIDGE PF_BRIDGE
--#define AF_ATMPVC PF_ATMPVC
--#define AF_X25 PF_X25
--#define AF_INET6 PF_INET6
--#define AF_ROSE PF_ROSE
--#define AF_DECnet PF_DECnet
--#define AF_NETBEUI PF_NETBEUI
--#define AF_SECURITY PF_SECURITY
--#define AF_KEY PF_KEY
--#define AF_NETLINK PF_NETLINK
--#define AF_ROUTE PF_ROUTE
--#define AF_PACKET PF_PACKET
--#define AF_ASH PF_ASH
--#define AF_ECONET PF_ECONET
--#define AF_ATMSVC PF_ATMSVC
--#define AF_SNA PF_SNA
--#define AF_IRDA PF_IRDA
--#define AF_PPPOX PF_PPPOX
--#define AF_WANPIPE PF_WANPIPE
--#define AF_LLC PF_LLC
--#define AF_CAN PF_CAN
--#define AF_TIPC PF_TIPC
--#define AF_BLUETOOTH PF_BLUETOOTH
--#define AF_IUCV PF_IUCV
--#define AF_RXRPC PF_RXRPC
--#define AF_ISDN PF_ISDN
--#define AF_PHONET PF_PHONET
--#define AF_IEEE802154 PF_IEEE802154
--#define AF_CAIF PF_CAIF
--#define AF_ALG PF_ALG
--#define AF_MAX PF_MAX
--
--/* Socket level values. Others are defined in the appropriate headers.
--
-- XXX These definitions also should go into the appropriate headers as
-- far as they are available. */
--#define SOL_RAW 255
--#define SOL_DECNET 261
--#define SOL_X25 262
--#define SOL_PACKET 263
--#define SOL_ATM 264 /* ATM layer (cell level). */
--#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
--#define SOL_IRDA 266
--
--/* Maximum queue length specifiable by listen. */
--#define SOMAXCONN 128
--
--/* Get the definition of the macro to define the common sockaddr members. */
--#include <bits/sockaddr.h>
--
--/* Structure describing a generic socket address. */
--struct sockaddr
-- {
-- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
-- char sa_data[14]; /* Address data. */
-- };
--
--
--/* Structure large enough to hold any socket address (with the historical
-- exception of AF_UNIX). We reserve 128 bytes. */
--#if ULONG_MAX > 0xffffffff
--# define __ss_aligntype __uint64_t
--#else
--# define __ss_aligntype __uint32_t
--#endif
--#define _SS_SIZE 128
--#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
--
--struct sockaddr_storage
-- {
-- __SOCKADDR_COMMON (ss_); /* Address family, etc. */
-- __ss_aligntype __ss_align; /* Force desired alignment. */
-- char __ss_padding[_SS_PADSIZE];
-- };
--
--
--/* Bits in the FLAGS argument to `send', `recv', et al. */
--enum
-- {
-- MSG_OOB = 0x01, /* Process out-of-band data. */
--#define MSG_OOB MSG_OOB
-- MSG_PEEK = 0x02, /* Peek at incoming messages. */
--#define MSG_PEEK MSG_PEEK
-- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
--#define MSG_DONTROUTE MSG_DONTROUTE
--#ifdef __USE_GNU
-- /* DECnet uses a different name. */
-- MSG_TRYHARD = MSG_DONTROUTE,
--# define MSG_TRYHARD MSG_DONTROUTE
--#endif
-- MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
--#define MSG_CTRUNC MSG_CTRUNC
-- MSG_PROXY = 0x10, /* Supply or ask second address. */
--#define MSG_PROXY MSG_PROXY
-- MSG_TRUNC = 0x20,
--#define MSG_TRUNC MSG_TRUNC
-- MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
--#define MSG_DONTWAIT MSG_DONTWAIT
-- MSG_EOR = 0x80, /* End of record. */
--#define MSG_EOR MSG_EOR
-- MSG_WAITALL = 0x100, /* Wait for a full request. */
--#define MSG_WAITALL MSG_WAITALL
-- MSG_FIN = 0x200,
--#define MSG_FIN MSG_FIN
-- MSG_SYN = 0x400,
--#define MSG_SYN MSG_SYN
-- MSG_CONFIRM = 0x800, /* Confirm path validity. */
--#define MSG_CONFIRM MSG_CONFIRM
-- MSG_RST = 0x1000,
--#define MSG_RST MSG_RST
-- MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
--#define MSG_ERRQUEUE MSG_ERRQUEUE
-- MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
--#define MSG_NOSIGNAL MSG_NOSIGNAL
-- MSG_MORE = 0x8000 /* Sender will send more. */
--#define MSG_MORE MSG_MORE
-- };
--
--
--/* Structure describing messages sent by
-- `sendmsg' and received by `recvmsg'. */
--/* Note: do not change these members to match glibc; these match the
-- SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
-- http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
--/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
-- platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
--struct msghdr
-- {
-- void *msg_name; /* Address to send to/receive from. */
-- socklen_t msg_namelen; /* Length of address data. */
--
-- struct iovec *msg_iov; /* Vector of data to send/receive into. */
--#if __WORDSIZE == 32
-- int msg_iovlen; /* Number of elements in the vector. */
--#else
-- size_t msg_iovlen; /* Number of elements in the vector. */
--#endif
--
-- void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
--#if __WORDSIZE == 32
-- socklen_t msg_controllen; /* Ancillary data buffer length. */
--#else
-- size_t msg_controllen; /* Ancillary data buffer length. */
--#endif
--
-- int msg_flags; /* Flags on received message. */
-- };
--
--/* Structure used for storage of ancillary data object information. */
--struct cmsghdr
-- {
-- size_t cmsg_len; /* Length of data in cmsg_data plus length
-- of cmsghdr structure. */
-- int cmsg_level; /* Originating protocol. */
-- int cmsg_type; /* Protocol specific type. */
--#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-- __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
--#endif
-- };
--
--/* Ancillary data object manipulation macros. */
--#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
--# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
--#else
--# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
--#endif
--#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
--#define CMSG_FIRSTHDR(mhdr) \
-- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
-- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
--#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
-- & (size_t) ~(sizeof (size_t) - 1))
--#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
-- + CMSG_ALIGN (sizeof (struct cmsghdr)))
--#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
--
--extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
-- struct cmsghdr *__cmsg) __THROW;
--libc_hidden_proto(__cmsg_nxthdr)
--#ifdef __USE_EXTERN_INLINES
--# ifndef _EXTERN_INLINE
--# define _EXTERN_INLINE extern __inline
--# endif
--_EXTERN_INLINE struct cmsghdr *
--__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
--{
-- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
-- /* The kernel header does this so there may be a reason. */
-- return 0;
--
-- __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
-- + CMSG_ALIGN (__cmsg->cmsg_len));
-- if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
-- + __mhdr->msg_controllen)
-- || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
-- > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
-- /* No more entries. */
-- return 0;
-- return __cmsg;
--}
--#endif /* Use `extern inline'. */
--
--/* Socket level message types. This must match the definitions in
-- <linux/socket.h>. */
--enum
-- {
-- SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
--#define SCM_RIGHTS SCM_RIGHTS
--#ifdef __USE_BSD
-- , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
--# define SCM_CREDENTIALS SCM_CREDENTIALS
--#endif
-- };
--
--/* User visible structure for SCM_CREDENTIALS message */
--
--struct ucred
--{
-- pid_t pid; /* PID of sending process. */
-- uid_t uid; /* UID of sending process. */
-- gid_t gid; /* GID of sending process. */
--};
--
--/* Get socket manipulation related informations from kernel headers. */
--#ifndef __GLIBC__
--#define __GLIBC__ 2
--#include <asm/socket.h>
--#undef __GLIBC__
--#else
--#include <asm/socket.h>
--#endif
--
--
--/* Structure used to manipulate the SO_LINGER option. */
--struct linger
-- {
-- int l_onoff; /* Nonzero to linger on close. */
-- int l_linger; /* Time to linger. */
-- };
--
--/* Prefer socketcall over all these for sparc32,
-- since it only has socketcall */
--#ifndef __arch64__
-- #undef __NR_accept
-- #undef __NR_bind
-- #undef __NR_connect
-- #undef __NR_getpeername
-- #undef __NR_getsockname
-- #undef __NR_getsockopt
-- #undef __NR_listen
-- #undef __NR_recv
-- #undef __NR_recvfrom
-- #undef __NR_recvmsg
-- #undef __NR_send
-- #undef __NR_sendmsg
-- #undef __NR_sendto
-- #undef __NR_setsockopt
-- #undef __NR_shutdown
-- #undef __NR_socket
-- #undef __NR_socketpair
--#endif
--
--#endif /* bits/socket.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket_type.h uClibc-git/libc/sysdeps/linux/sparc/bits/socket_type.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/socket_type.h 2014-07-25 20:36:07.637339038 +0200
-@@ -0,0 +1,54 @@
-+/* System-specific socket constants and types. Linux version.
-+ Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _SYS_SOCKET_H
-+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
-+#endif
-+
-+/* Types of sockets. */
-+enum __socket_type
-+{
-+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
-+ byte streams. */
-+#define SOCK_STREAM SOCK_STREAM
-+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
-+ of fixed maximum length. */
-+#define SOCK_DGRAM SOCK_DGRAM
-+ SOCK_RAW = 3, /* Raw protocol interface. */
-+#define SOCK_RAW SOCK_RAW
-+ SOCK_RDM = 4, /* Reliably-delivered messages. */
-+#define SOCK_RDM SOCK_RDM
-+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
-+ datagrams of fixed maximum length. */
-+#define SOCK_SEQPACKET SOCK_SEQPACKET
-+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
-+#define SOCK_DCCP SOCK_DCCP
-+ SOCK_PACKET = 10, /* Linux specific way of getting packets
-+ at the dev level. For writing rarp and
-+ other similar things on the user level. */
-+#define SOCK_PACKET SOCK_PACKET
-+
-+ /* Flags to be ORed into the type parameter of socket and socketpair. */
-+
-+ SOCK_CLOEXEC = 0x400000, /* Atomically set close-on-exec flag for the
-+ new descriptor(s). */
-+#define SOCK_CLOEXEC SOCK_CLOEXEC
-+ SOCK_NONBLOCK = 0x004000 /* Atomically mark descriptor(s) as
-+ non-blocking. */
-+#define SOCK_NONBLOCK SOCK_NONBLOCK
-+};
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/stackinfo.h 2014-07-25 20:36:07.637339038 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stat.h uClibc-git/libc/sysdeps/linux/sparc/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/stat.h 2014-07-25 20:36:07.637339038 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/termios.h uClibc-git/libc/sysdeps/linux/sparc/bits/termios.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/termios.h 2014-07-25 20:36:07.637339038 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TERMIOS_H
- # error "Never include <bits/termios.h> directly; use <termios.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/typesizes.h uClibc-git/libc/sysdeps/linux/sparc/bits/typesizes.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/typesizes.h 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h 2014-07-25 20:36:07.637339038 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/brk.c uClibc-git/libc/sysdeps/linux/sparc/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/brk.c 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/clone.S uClibc-git/libc/sysdeps/linux/sparc/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/clone.S 2014-07-25 20:36:07.637339038 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/crt1.S uClibc-git/libc/sysdeps/linux/sparc/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/crt1.S 2014-07-25 20:36:07.637339038 +0200
-@@ -31,9 +31,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Originally based on glibc's sysdeps/sparc/sparc{32,64}/elf/start.S */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fork.S uClibc-git/libc/sysdeps/linux/sparc/fork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/fork.S 2014-07-25 20:36:07.637339038 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
-
-@@ -23,11 +22,14 @@
- #include <sys/syscall.h>
-
- .text
--.global __libc_fork
--.type __libc_fork,%function
-+.global fork
-+#ifdef __UCLIBC_HAS_THREADS__
-+.weak fork
-+#endif
-+.type fork,%function
- .align 4
-
--__libc_fork:
-+fork:
- mov __NR_fork, %g1
- ta 0x10
- bcc,a 9000f
-@@ -44,6 +46,8 @@
- retl
- and %o0, %o1, %o0
-
--.size __libc_fork,.-__libc_fork
--weak_alias(__libc_fork,fork)
--libc_hidden_weak(fork)
-+.size fork,.-fork
-+#ifdef __UCLIBC_HAS_THREADS__
-+strong_alias(fork,__libc_fork)
-+#endif
-+libc_hidden_def(fork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fpu_control.h uClibc-git/libc/sysdeps/linux/sparc/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/fpu_control.h 2014-07-25 20:36:07.637339038 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-offsets.h 2014-07-25 20:36:07.637339038 +0200
-@@ -0,0 +1,29 @@
-+/* Private macros for accessing __jmp_buf contents. SPARC version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <bits/wordsize.h>
-+
-+#if __WORDSIZE == 64
-+#define O_mask_was_saved 512
-+#define O_gregs 32
-+#define O_g1 (O_gregs + 4*8)
-+#else
-+#define JB_SP 0
-+#define JB_FP 1
-+#define JB_PC 2
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-unwind.h 2014-07-25 20:36:07.637339038 +0200
-@@ -0,0 +1,31 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+#if __WORDSIZE == 64
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
-+
-+#else
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((int) (address) < (jmpbuf)[JB_SP])
-+
-+#endif
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#if defined(__arch64__)
-+#include "sparc64/jmpbuf-unwind.h"
-+#else
-+#include "sparc32/jmpbuf-unwind.h"
-+#endif
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/__longjmp.S uClibc-git/libc/sysdeps/linux/sparc/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/__longjmp.S 2014-07-25 20:36:07.625338976 +0200
-@@ -12,16 +12,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#include <sys/syscall.h>
-+#include <jmpbuf-offsets.h>
-
--#define _ASM 1
--#define _SETJMP_H
--#include <bits/setjmp.h>
- #define ENV(base,reg) [%base + (reg * 4)]
- #define ST_FLUSH_WINDOWS 3
- #define RW_FP [%fp + 0x48]
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/Makefile.arch uClibc-git/libc/sysdeps/linux/sparc/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/Makefile.arch 2014-07-25 20:36:07.621338955 +0200
-@@ -5,25 +5,23 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c sigaction.c
-+CSRC-y := brk.c __syscall_error.c sigaction.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
- syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S
-
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--SSRC += fork.S vfork.S clone.S
--endif
-+SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += fork.S vfork.S clone.S
-
- # check weather __LONG_DOUBLE_128__ is defined (long double support)
- UCLIBC_SPARC_HAS_LONG_DOUBLE=$(shell if [ "x`$(CC) -E -dM -xc /dev/null 2>&1 | grep __LONG_DOUBLE_128__`" != "x" ]; then echo "y"; fi)
- ifeq ($(UCLIBC_SPARC_HAS_LONG_DOUBLE),y)
--CSRC += $(foreach f, \
-+CSRC-y += $(addprefix soft-fp/, \
- q_div.c q_fle.c q_mul.c q_qtoll.c q_stoq.c \
- mp_clz_tab.c q_dtoq.c q_flt.c q_neg.c q_qtos.c q_sub.c \
- q_add.c q_feq.c q_fne.c q_qtod.c q_qtou.c q_ulltoq.c \
- q_cmp.c q_fge.c q_itoq.c q_qtoull.c q_util.c \
-- q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c, soft-fp/$(f))
-+ q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c)
- else
--CSRC += qp_ops.c
-+CSRC-y += qp_ops.c
- endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/pipe.S uClibc-git/libc/sysdeps/linux/sparc/pipe.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/pipe.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/pipe.S 2014-07-25 20:36:07.637339038 +0200
-@@ -13,10 +13,9 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
--
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-+
- Ported to uClibc by:
- Austin Foxley, Ceton Corporation <austinf@cetoncorp.com>
- */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/setjmp.S uClibc-git/libc/sysdeps/linux/sparc/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/setjmp.S 2014-07-25 20:36:07.637339038 +0200
-@@ -12,15 +12,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <sys/syscall.h>
-+#include <jmpbuf-offsets.h>
-
--#define _ASM 1
--#define _SETJMP_H
--#include <bits/setjmp.h>
- #define ST_FLUSH_WINDOWS 3
-
- .global _setjmp
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sigaction.c uClibc-git/libc/sysdeps/linux/sparc/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/sigaction.c 2014-07-25 20:36:07.637339038 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>.
-
- Ported to uClibc from glibc: 090520:
- Jan Buchholz, KIP, Uni Heidelberg <jan.buchholz@kip.uni-heidelberg.de>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/double.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/double.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/double.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/double.h 2014-07-25 20:36:07.653339122 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if _FP_W_TYPE_SIZE < 32
- #error "Here's a nickel kid. Go buy yourself a real computer."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/extended.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/extended.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/extended.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/extended.h 2014-07-25 20:36:07.653339122 +0200
-@@ -24,9 +24,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if _FP_W_TYPE_SIZE < 32
- #error "Here's a nickel, kid. Go buy yourself a real computer."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/longlong.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/longlong.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/longlong.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/longlong.h 2014-07-25 20:36:07.653339122 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* You have to define the following before including this file:
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c 2014-07-25 20:36:07.653339122 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if 0
- #include <gmp.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-1.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-1.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-1.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-1.h 2014-07-25 20:36:07.653339122 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _FP_FRAC_DECL_1(X) _FP_W_TYPE X##_f
- #define _FP_FRAC_COPY_1(D,S) (D##_f = S##_f)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-2.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-2.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-2.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-2.h 2014-07-25 20:36:07.653339122 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0, X##_f1
- #define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-4.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-4.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-4.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-4.h 2014-07-25 20:36:07.653339122 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _FP_FRAC_DECL_4(X) _FP_W_TYPE X##_f[4]
- #define _FP_FRAC_COPY_4(D,S) \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-8.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-8.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-8.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-8.h 2014-07-25 20:36:07.653339122 +0200
-@@ -26,9 +26,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* We need just a few things from here for op-4, if we ever need some
- other macros, they can be added. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-common.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-common.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-common.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-common.h 2014-07-25 20:36:07.653339122 +0200
-@@ -26,9 +26,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _FP_DECL(wc, X) \
- _FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e; \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_add.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_add.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_add.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_add.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c 2014-07-25 20:36:07.653339122 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_div.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_div.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_div.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_div.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "double.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_feq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_feq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_feq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_feq.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fge.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fge.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fge.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fge.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fle.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fle.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fle.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fle.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_flt.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_flt.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_flt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_flt.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fne.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fne.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fne.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fne.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_mul.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_mul.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_mul.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_mul.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_neg.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_neg.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_neg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_neg.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "double.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FP_ROUNDMODE FP_RND_ZERO
- #include "soft-fp.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FP_ROUNDMODE FP_RND_ZERO
- #include "soft-fp.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "single.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FP_ROUNDMODE FP_RND_ZERO
- #include "soft-fp.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FP_ROUNDMODE FP_RND_ZERO
- #include "soft-fp.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "single.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sub.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sub.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sub.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sub.c 2014-07-25 20:36:07.653339122 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/quad.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/quad.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/quad.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/quad.h 2014-07-25 20:36:07.657339142 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if _FP_W_TYPE_SIZE < 32
- #error "Here's a nickel, kid. Go buy yourself a real computer."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c 2014-07-25 20:36:07.657339142 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_util.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_util.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_util.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_util.c 2014-07-25 20:36:07.657339142 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c 2014-07-25 20:36:07.657339142 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "soft-fp.h"
- #include "quad.h"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h 2014-07-25 20:36:07.657339142 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fpu_control.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/single.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/single.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/single.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/single.h 2014-07-25 20:36:07.657339142 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if _FP_W_TYPE_SIZE < 32
- #error "Here's a nickel kid. Go buy yourself a real computer."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h 2014-07-25 20:36:07.657339142 +0200
-@@ -27,9 +27,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef SOFT_FP_H
- #define SOFT_FP_H
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sparcv9/clone.S uClibc-git/libc/sysdeps/linux/sparc/sparcv9/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sparcv9/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/sparcv9/clone.S 2014-07-25 20:36:07.689339310 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/procfs.h uClibc-git/libc/sysdeps/linux/sparc/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/sys/procfs.h 2014-07-25 20:36:07.705339394 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ptrace.h uClibc-git/libc/sysdeps/linux/sparc/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/sys/ptrace.h 2014-07-25 20:36:07.705339394 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sparc/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/sys/ucontext.h 2014-07-25 20:36:07.705339394 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/user.h uClibc-git/libc/sysdeps/linux/sparc/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/sys/user.h 2014-07-25 20:36:07.705339394 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/syscall.S uClibc-git/libc/sysdeps/linux/sparc/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/syscall.S 2014-07-25 20:36:07.705339394 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/vfork.S uClibc-git/libc/sysdeps/linux/sparc/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/sparc/vfork.S 2014-07-25 20:36:07.705339394 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
-
-@@ -52,4 +51,4 @@
- .size __vfork,.-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/fcntl.h uClibc-git/libc/sysdeps/linux/v850/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/bits/fcntl.h 2014-07-25 20:36:07.733339541 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/v850/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/bits/kernel_types.h 2014-07-25 20:36:07.733339541 +0200
-@@ -41,6 +41,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
-
- typedef struct {
- #ifdef __USE_ALL
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/poll.h uClibc-git/libc/sysdeps/linux/v850/bits/poll.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/bits/poll.h 2014-07-25 20:36:07.733339541 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_POLL_H
- # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/setjmp.h uClibc-git/libc/sysdeps/linux/v850/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/bits/setjmp.h 2014-07-25 20:36:07.733339541 +0200
-@@ -18,7 +18,6 @@
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
- #endif
-
--#ifndef _ASM
- typedef struct
- {
- /* Stack pointer. */
-@@ -30,13 +29,5 @@
- /* Callee-saved registers r2 and r20-r29. */
- int __regs[11];
- } __jmp_buf[1];
--#endif
--
--#define JB_SIZE (4 * 13)
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[0].__sp)
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h 2014-07-25 20:36:07.733339541 +0200
-@@ -10,10 +10,10 @@
- #undef __UCLIBC_ABORT_INSTRUCTION__
-
- /* can your target use syscall6() for mmap ? */
--#undef __UCLIBC_MMAP_HAS_6_ARGS__
-+#define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/wordsize.h uClibc-git/libc/sysdeps/linux/v850/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/bits/wordsize.h 2014-07-25 20:36:07.733339541 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/v850/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/v850/jmpbuf-offsets.h 2014-07-25 20:36:07.733339541 +0200
-@@ -0,0 +1,6 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#define JB_SIZE (4 * 13)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/v850/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/v850/jmpbuf-unwind.h 2014-07-25 20:36:07.733339541 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[0].__sp)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/__longjmp.S uClibc-git/libc/sysdeps/linux/v850/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/__longjmp.S 2014-07-25 20:36:07.717339457 +0200
-@@ -11,11 +11,6 @@
- * Written by Miles Bader <miles@gnu.org>
- */
-
--#include <features.h>
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
--
- #include <clinkage.h>
-
- .text
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/Makefile uClibc-git/libc/sysdeps/linux/v850/Makefile
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/Makefile 2014-07-25 20:36:07.717339457 +0200
-@@ -20,7 +20,7 @@
- SSRC := setjmp.S __longjmp.S vfork.S
- SOBJ := $(patsubst %.S,%.o, $(SSRC))
-
--CSRC := mmap.c syscall.c clone.c
-+CSRC := syscall.c clone.c
- COBJ := $(patsubst %.c,%.o, $(CSRC))
-
- OBJS := $(SOBJ) $(COBJ)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/mmap.c uClibc-git/libc/sysdeps/linux/v850/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,16 +0,0 @@
--/* Use new style mmap for v850 */
--/*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <unistd.h>
--#include <errno.h>
--#include <sys/mman.h>
--#include <sys/syscall.h>
--
--
--_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
-- int, flags, int, fd, __off_t, offset)
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/setjmp.S uClibc-git/libc/sysdeps/linux/v850/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/setjmp.S 2014-07-25 20:36:07.733339541 +0200
-@@ -11,10 +11,6 @@
- * Written by Miles Bader <miles@gnu.org>
- */
-
--#define _SETJMP_H
--#define _ASM
--#include <bits/setjmp.h>
--
- #include <clinkage.h>
-
- .text
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/procfs.h uClibc-git/libc/sysdeps/linux/v850/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/sys/procfs.h 2014-07-25 20:36:07.745339604 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ptrace.h uClibc-git/libc/sysdeps/linux/v850/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/sys/ptrace.h 2014-07-25 20:36:07.745339604 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ucontext.h uClibc-git/libc/sysdeps/linux/v850/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/sys/ucontext.h 2014-07-25 20:36:07.745339604 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/vfork.S uClibc-git/libc/sysdeps/linux/v850/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/v850/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/v850/vfork.S 2014-07-25 20:36:07.745339604 +0200
-@@ -11,12 +11,7 @@
- * Written by Miles Bader <miles@gnu.org>
- */
-
--#include <features.h>
--#define _ERRNO_H 1
--#include <bits/errno.h>
--#define _SYSCALL_H
--#include <bits/sysnum.h>
--
-+#include <sys/syscall.h>
- #include <clinkage.h>
-
- /* Clone the calling process, but without copying the whole address space.
-@@ -24,8 +19,7 @@
- replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
- and the process ID of the new process to the old process. */
-
--.global C_SYMBOL_NAME(errno)
--
-+/* this should be made hidden */
- C_ENTRY (__vfork):
- addi SYS_vfork, r0, r12
- trap 0
-@@ -39,4 +33,4 @@
- jmp [lp] /* error return */
- C_END(__vfork)
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/fcntl.h uClibc-git/libc/sysdeps/linux/vax/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/fcntl.h 2014-07-25 20:36:07.773339751 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/huge_val.h uClibc-git/libc/sysdeps/linux/vax/bits/huge_val.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/huge_val.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/huge_val.h 2014-07-25 20:36:07.773339751 +0200
-@@ -0,0 +1,25 @@
-+/* `HUGE_VAL' constant for Vaxen.
-+ Used by <stdlib.h> and <math.h> functions for overflow.
-+ Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _MATH_H
-+# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-+#endif
-+
-+
-+#define HUGE_VAL 1.70141182460469227e38
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/ipc.h uClibc-git/libc/sysdeps/linux/vax/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/ipc.h 2014-07-25 20:36:07.773339751 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/machine-gmon.h uClibc-git/libc/sysdeps/linux/vax/bits/machine-gmon.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/machine-gmon.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/machine-gmon.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,41 +0,0 @@
--/* i386-specific implementation of profiling support.
-- Copyright (C) 1997, 2002 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
-- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#include <sysdep.h>
--
--/* We need a special version of the `mcount' function since for ix86 it
-- must not clobber any register. This has several reasons:
-- - there is a bug in gcc as of version 2.7.2.2 which prohibits the
-- use of profiling together with nested functions
-- - the ELF `fixup' function uses GCC's regparm feature
-- - some (future) systems might want to pass parameters in registers. */
--
--/* We must not pollute the global namespace. */
--#define mcount_internal __mcount_internal
--
--extern void mcount_internal (u_long frompc, u_long selfpc);
--
--#define _MCOUNT_DECL(frompc, selfpc) \
--void __attribute__ (( regparm (2) )) mcount_internal (u_long frompc, u_long selfpc)
--
--
--/* Define MCOUNT as empty since we have the implementation in another
-- file. */
--#define MCOUNT
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sem.h uClibc-git/libc/sysdeps/linux/vax/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/sem.h 2014-07-25 20:36:07.773339751 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/setjmp.h uClibc-git/libc/sysdeps/linux/vax/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/setjmp.h 2014-07-25 20:36:07.773339751 +0200
-@@ -6,14 +6,8 @@
-
- /* we want to save enough that we can use this to fool RET,
- * So we basically save all of the CALLS stack frame. Plus regs. */
--#ifndef _ASM
- typedef int __jmp_buf[16];
--#endif
-
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf[4]))
- /*
- jmp_buf layout. jmp_buf[0]
- void *__cond; The condition handler
-@@ -34,4 +28,3 @@
- void *__rA; regs, r0->r11.
- void *__rB; regs, r0->r11.
- */
--
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/shm.h uClibc-git/libc/sysdeps/linux/vax/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/shm.h 2014-07-25 20:36:07.773339751 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/vax/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/sigcontext.h 2014-07-25 20:36:07.773339751 +0200
-@@ -13,8 +13,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
- # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/statfs.h uClibc-git/libc/sysdeps/linux/vax/bits/statfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,61 +0,0 @@
--/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public License as
-- published by the Free Software Foundation; either version 2 of the
-- License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
--
--#ifndef _SYS_STATFS_H
--# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
--#endif
--
--#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/
--
--struct statfs
-- {
-- int f_type;
-- int f_bsize;
--#ifndef __USE_FILE_OFFSET64
-- __fsblkcnt_t f_blocks;
-- __fsblkcnt_t f_bfree;
-- __fsblkcnt_t f_bavail;
-- __fsfilcnt_t f_files;
-- __fsfilcnt_t f_ffree;
--#else
-- __fsblkcnt64_t f_blocks;
-- __fsblkcnt64_t f_bfree;
-- __fsblkcnt64_t f_bavail;
-- __fsfilcnt64_t f_files;
-- __fsfilcnt64_t f_ffree;
--#endif
-- __fsid_t f_fsid;
-- int f_namelen;
-- int f_spare[6];
-- };
--
--#ifdef __USE_LARGEFILE64
--struct statfs64
-- {
-- int f_type;
-- int f_bsize;
-- __fsblkcnt64_t f_blocks;
-- __fsblkcnt64_t f_bfree;
-- __fsblkcnt64_t f_bavail;
-- __fsfilcnt64_t f_files;
-- __fsfilcnt64_t f_ffree;
-- __fsid_t f_fsid;
-- int f_namelen;
-- int f_spare[6];
-- };
--#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h 2014-07-25 20:36:07.773339751 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/wordsize.h uClibc-git/libc/sysdeps/linux/vax/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/bits/wordsize.h 2014-07-25 20:36:07.773339751 +0200
-@@ -13,7 +13,6 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/brk.c uClibc-git/libc/sysdeps/linux/vax/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/brk.c 2014-07-25 20:36:07.773339751 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/clone.S uClibc-git/libc/sysdeps/linux/vax/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/clone.S 2014-07-25 20:36:07.773339751 +0200
-@@ -12,8 +12,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/vax/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/vax/jmpbuf-unwind.h 2014-07-25 20:36:07.781339792 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf[4]))
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/Makefile.arch uClibc-git/libc/sysdeps/linux/vax/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/Makefile.arch 2014-07-25 20:36:07.757339667 +0200
-@@ -6,5 +6,5 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c mmap.c
--SSRC := __longjmp.S setjmp.S _setjmp.S clone.S
-+CSRC-y := brk.c
-+SSRC-y := __longjmp.S setjmp.S _setjmp.S clone.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/mmap.c uClibc-git/libc/sysdeps/linux/vax/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,10 +0,0 @@
--
--#include <unistd.h>
--#include <sys/mman.h>
--#include <errno.h>
--#include <sys/syscall.h>
--
--_syscall6 (void *, mmap, void *, start, size_t, length, int, prot, int, flags,
-- int, fd, off_t, offset)
--libc_hidden_def(mmap)
--
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/procfs.h uClibc-git/libc/sysdeps/linux/vax/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/sys/procfs.h 2014-07-25 20:36:07.793339855 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/ucontext.h uClibc-git/libc/sysdeps/linux/vax/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/vax/sys/ucontext.h 2014-07-25 20:36:07.793339855 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Don't rely on this, the interface is currently messed up and may need to
- be broken to be fixed. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/atomic.h uClibc-git/libc/sysdeps/linux/x86_64/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/atomic.h 2014-07-25 20:36:07.813339960 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdint.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/byteswap.h uClibc-git/libc/sysdeps/linux/x86_64/bits/byteswap.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/byteswap.h 2014-07-25 20:36:07.813339960 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _ASM_BITS_BYTESWAP_H
- #define _ASM_BITS_BYTESWAP_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/environments.h uClibc-git/libc/sysdeps/linux/x86_64/bits/environments.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/environments.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/environments.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _UNISTD_H
- # error "Never include this file directly. Use <unistd.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/x86_64/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/fcntl.h 2014-07-25 20:36:07.813339960 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fenv.h uClibc-git/libc/sysdeps/linux/x86_64/bits/fenv.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/fenv.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_H
- # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-@@ -89,9 +88,9 @@
- fenv_t;
-
- /* If the default argument is used we use this value. */
--#define FE_DFL_ENV ((__const fenv_t *) -1)
-+#define FE_DFL_ENV ((const fenv_t *) -1)
-
- #ifdef __USE_GNU
- /* Floating-point environment where none of the exception is masked. */
--# define FE_NOMASK_ENV ((__const fenv_t *) -2)
-+# define FE_NOMASK_ENV ((const fenv_t *) -2)
- #endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/x86_64/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/kernel_types.h 2014-07-25 20:36:07.813339960 +0200
-@@ -40,6 +40,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- typedef struct {
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathdef.h uClibc-git/libc/sysdeps/linux/x86_64/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/mathdef.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathinline.h uClibc-git/libc/sysdeps/linux/x86_64/bits/mathinline.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/mathinline.h 2014-07-25 20:36:07.813339960 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MATH_H
- # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/msq.h uClibc-git/libc/sysdeps/linux/x86_64/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/msq.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sem.h uClibc-git/libc/sysdeps/linux/x86_64/bits/sem.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sem.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SEM_H
- # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/x86_64/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/setjmp.h 2014-07-25 20:36:07.813339960 +0200
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Copyright (C) 2001,2002,2003,2005,2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -12,13 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. x86-64 version. */
- #ifndef _BITS_SETJMP_H
--#define _BITS_SETJMP_H 1
-+#define _BITS_SETJMP_H 1
-
- #if !defined _SETJMP_H && !defined _PTHREAD_H
- # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-@@ -27,52 +26,9 @@
- #include <bits/wordsize.h>
-
- #if __WORDSIZE == 64
--
--/* We only need to save callee-saved registers plus stackpointer and
-- program counter. */
--# if defined __USE_MISC || defined _ASM
--# define JB_RBX 0
--# define JB_RBP 1
--# define JB_R12 2
--# define JB_R13 3
--# define JB_R14 4
--# define JB_R15 5
--# define JB_RSP 6
--# define JB_PC 7
--# define JB_SIZE (8*8)
--# endif
--
--#else
--
--# if defined __USE_MISC || defined _ASM
--# define JB_BX 0
--# define JB_SI 1
--# define JB_DI 2
--# define JB_BP 3
--# define JB_SP 4
--# define JB_PC 5
--# define JB_SIZE 24
--# endif
--
--#endif
--
--#ifndef _ASM
--
--# if __WORDSIZE == 64
- typedef long int __jmp_buf[8];
--# else
-+#else
- typedef int __jmp_buf[6];
--# endif
--
--/* Test if longjmp to JMPBUF would unwind the frame
-- containing a local variable at ADDRESS. */
--# if __WORDSIZE == 64
--# define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[JB_RSP])
--# else
--# define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[JB_SP])
--# endif
- #endif
-
--#endif /* bits/setjmp.h */
-+#endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/shm.h uClibc-git/libc/sysdeps/linux/x86_64/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/shm.h 2014-07-25 20:36:07.813339960 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontext.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_SIGCONTEXT_H
- #define _BITS_SIGCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define SIGCONTEXT siginfo_t *_si, struct ucontext *
- #define SIGCONTEXT_EXTRA_ARGS _si,
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/x86_64/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/stackinfo.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stat.h uClibc-git/libc/sysdeps/linux/x86_64/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/stat.h 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h 2014-07-25 20:36:07.813339960 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/brk.c uClibc-git/libc/sysdeps/linux/x86_64/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/brk.c 2014-07-25 20:36:07.813339960 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/bsd-setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bsd-setjmp.S 2014-07-25 20:36:07.813339960 +0200
-@@ -13,14 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
--#include <sysdep.h>
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .global setjmp
- .type setjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/bsd-_setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/bsd-_setjmp.S 2014-07-25 20:36:07.813339960 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/clone.S uClibc-git/libc/sysdeps/linux/x86_64/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/clone.S 2014-07-25 20:36:07.813339960 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/crt1.S uClibc-git/libc/sysdeps/linux/x86_64/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/crt1.S 2014-07-25 20:36:07.813339960 +0200
-@@ -31,9 +31,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Originally based on glibc's sysdeps/x86_64/elf/start.S */
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/fpu_control.h uClibc-git/libc/sysdeps/linux/x86_64/fpu_control.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/fpu_control.h 2014-07-25 20:36:07.817339982 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FPU_CONTROL_H
- #define _FPU_CONTROL_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/getcontext.S uClibc-git/libc/sysdeps/linux/x86_64/getcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/getcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/getcontext.S 2014-07-25 20:36:07.817339982 +0200
-@@ -0,0 +1,88 @@
-+/* Save current context.
-+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int __getcontext (ucontext_t *ucp)
-+
-+ Saves the machine context in UCP such that when it is activated,
-+ it appears as if __getcontext() returned again.
-+
-+ This implementation is intended to be used for *synchronous* context
-+ switches only. Therefore, it does not have to save anything
-+ other than the PRESERVED state. */
-+
-+
-+ENTRY(__getcontext)
-+ /* Save the preserved registers, the registers used for passing
-+ args, and the return address. */
-+ movq %rbx, oRBX(%rdi)
-+ movq %rbp, oRBP(%rdi)
-+ movq %r12, oR12(%rdi)
-+ movq %r13, oR13(%rdi)
-+ movq %r14, oR14(%rdi)
-+ movq %r15, oR15(%rdi)
-+
-+ movq %rdi, oRDI(%rdi)
-+ movq %rsi, oRSI(%rdi)
-+ movq %rdx, oRDX(%rdi)
-+ movq %rcx, oRCX(%rdi)
-+ movq %r8, oR8(%rdi)
-+ movq %r9, oR9(%rdi)
-+
-+ movq (%rsp), %rcx
-+ movq %rcx, oRIP(%rdi)
-+ leaq 8(%rsp), %rcx /* Exclude the return address. */
-+ movq %rcx, oRSP(%rdi)
-+
-+ /* We have separate floating-point register content memory on the
-+ stack. We use the __fpregs_mem block in the context. Set the
-+ links up correctly. */
-+
-+ leaq oFPREGSMEM(%rdi), %rcx
-+ movq %rcx, oFPREGS(%rdi)
-+ /* Save the floating-point environment. */
-+ fnstenv (%rcx)
-+ fldenv (%rcx)
-+ stmxcsr oMXCSR(%rdi)
-+
-+ /* Save the current signal mask with
-+ rt_sigprocmask (SIG_BLOCK, NULL, set,_NSIG/8). */
-+ leaq oSIGMASK(%rdi), %rdx
-+ xorl %esi,%esi
-+#if SIG_BLOCK == 0
-+ xorl %edi, %edi
-+#else
-+ movl $SIG_BLOCK, %edi
-+#endif
-+ movl $_NSIG8,%r10d
-+ movl $__NR_rt_sigprocmask, %eax
-+ syscall
-+ cmpq $-4095, %rax /* Check %rax for error. */
-+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
-+
-+ /* All done, return 0 for success. */
-+ xorl %eax, %eax
-+L(pseudo_end):
-+ ret
-+PSEUDO_END(__getcontext)
-+
-+weak_alias (__getcontext, getcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h 2014-07-25 20:36:07.817339982 +0200
-@@ -0,0 +1,45 @@
-+/* Private macros for accessing __jmp_buf contents. x86-64 version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <bits/wordsize.h>
-+
-+#if __WORDSIZE == 64
-+
-+/* We only need to save callee-saved registers plus stackpointer and
-+ program counter. */
-+# define JB_RBX 0
-+# define JB_RBP 1
-+# define JB_R12 2
-+# define JB_R13 3
-+# define JB_R14 4
-+# define JB_R15 5
-+# define JB_RSP 6
-+# define JB_PC 7
-+# define JB_SIZE (8*8)
-+
-+#else
-+
-+# define JB_BX 0
-+# define JB_SI 1
-+# define JB_DI 2
-+# define JB_BP 3
-+# define JB_SP 4
-+# define JB_PC 5
-+# define JB_SIZE 24
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h 2014-07-25 20:36:07.817339982 +0200
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#if __WORDSIZE == 64
-+# define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[JB_RSP])
-+#else
-+# define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-+#endif
-+
-+#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_RSP] - (_adj))
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__longjmp.S uClibc-git/libc/sysdeps/linux/x86_64/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/__longjmp.S 2014-07-25 20:36:07.797339876 +0200
-@@ -12,14 +12,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
-+#include <jmpbuf-offsets.h>
-
- /* Jump to the position specified by ENV, causing the
- setjmp call there to return VAL, or 1 if VAL is 0.
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/makecontext.c uClibc-git/libc/sysdeps/linux/x86_64/makecontext.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/makecontext.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/makecontext.c 2014-07-25 20:36:07.817339982 +0200
-@@ -0,0 +1,121 @@
-+/* Create new context.
-+ Copyright (C) 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+#include <stdarg.h>
-+#include <stdint.h>
-+#include <ucontext.h>
-+
-+#include "ucontext_i.h"
-+
-+/* This implementation can handle any ARGC value but only
-+ normal integer parameters.
-+ makecontext sets up a stack and the registers for the
-+ user context. The stack looks like this:
-+ +-----------------------+
-+ | next context |
-+ +-----------------------+
-+ | parameter 7-n |
-+ +-----------------------+
-+ | trampoline address |
-+ %rsp -> +-----------------------+
-+
-+ The registers are set up like this:
-+ %rdi,%rsi,%rdx,%rcx,%r8,%r9: parameter 1 to 6
-+ %rbx : address of next context
-+ %rsp : stack pointer.
-+*/
-+
-+/* XXX: This implementation currently only handles integer arguments.
-+ To handle long int and pointer arguments the va_arg arguments needs
-+ to be changed to long and also the stdlib/tst-setcontext.c file needs
-+ to be changed to pass long arguments to makecontext. */
-+
-+
-+void
-+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-+{
-+ extern void __start_context (void);
-+ greg_t *sp;
-+ unsigned int idx_uc_link;
-+ va_list ap;
-+ int i;
-+
-+ /* Generate room on stack for parameter if needed and uc_link. */
-+ sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp
-+ + ucp->uc_stack.ss_size);
-+ sp -= (argc > 6 ? argc - 6 : 0) + 1;
-+ /* Align stack and make space for trampoline address. */
-+ sp = (greg_t *) ((((uintptr_t) sp) & -16L) - 8);
-+
-+ idx_uc_link = (argc > 6 ? argc - 6 : 0) + 1;
-+
-+ /* Setup context ucp. */
-+ /* Address to jump to. */
-+ ucp->uc_mcontext.gregs[REG_RIP] = (uintptr_t) func;
-+ /* Setup rbx.*/
-+ ucp->uc_mcontext.gregs[REG_RBX] = (uintptr_t) &sp[idx_uc_link];
-+ ucp->uc_mcontext.gregs[REG_RSP] = (uintptr_t) sp;
-+
-+ /* Setup stack. */
-+ sp[0] = (uintptr_t) &__start_context;
-+ sp[idx_uc_link] = (uintptr_t) ucp->uc_link;
-+
-+ va_start (ap, argc);
-+ /* Handle arguments.
-+
-+ The standard says the parameters must all be int values. This is
-+ an historic accident and would be done differently today. For
-+ x86-64 all integer values are passed as 64-bit values and
-+ therefore extending the API to copy 64-bit values instead of
-+ 32-bit ints makes sense. It does not break existing
-+ functionality and it does not violate the standard which says
-+ that passing non-int values means undefined behavior. */
-+ for (i = 0; i < argc; ++i)
-+ switch (i)
-+ {
-+ case 0:
-+ ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, greg_t);
-+ break;
-+ case 1:
-+ ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, greg_t);
-+ break;
-+ case 2:
-+ ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, greg_t);
-+ break;
-+ case 3:
-+ ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, greg_t);
-+ break;
-+ case 4:
-+ ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, greg_t);
-+ break;
-+ case 5:
-+ ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, greg_t);
-+ break;
-+ default:
-+ /* Put value on stack. */
-+ sp[i - 5] = va_arg (ap, greg_t);
-+ break;
-+ }
-+ va_end (ap);
-+
-+}
-+
-+
-+weak_alias (__makecontext, makecontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/Makefile.arch uClibc-git/libc/sysdeps/linux/x86_64/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/Makefile.arch 2014-07-25 20:36:07.797339876 +0200
-@@ -5,18 +5,15 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c sigaction.c mmap.c
-+CSRC-y := brk.c __syscall_error.c sigaction.c
-
--SSRC := \
-+SSRC-y := \
- __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S
-
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--SSRC += vfork.S clone.S
--endif
--
-+SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
-+ARCH_OBJ_FILTEROUT-$(UCLIBC_LINUX_SPECIFIC) := sched_getcpu.c
- ifeq ($(UCLIBC_LINUX_SPECIFIC),y)
--ARCH_OBJ_FILTEROUT = sched_getcpu.c
--ifeq ($(UCLIBC_HAS_TLS),y)
--SSRC += sched_getcpu.S
--endif
-+SSRC-$(UCLIBC_HAS_TLS) += sched_getcpu.S
- endif
-+CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
-+SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += setcontext.S getcontext.S swapcontext.S __start_context.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/mmap.c uClibc-git/libc/sysdeps/linux/x86_64/mmap.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/mmap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/mmap.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,19 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * mmap() for uClibc/x86_64
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <errno.h>
--#include <unistd.h>
--#include <sys/mman.h>
--#include <sys/syscall.h>
--
--
--_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
-- int, flags, int, fd, off_t, offset)
--libc_hidden_def(mmap)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sched_getcpu.S uClibc-git/libc/sysdeps/linux/x86_64/sched_getcpu.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sched_getcpu.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sched_getcpu.S 2014-07-25 20:36:07.817339982 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setcontext.S uClibc-git/libc/sysdeps/linux/x86_64/setcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/setcontext.S 2014-07-25 20:36:07.817339982 +0200
-@@ -0,0 +1,103 @@
-+/* Install given context.
-+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+
-+/* int __setcontext (const ucontext_t *ucp)
-+
-+ Restores the machine context in UCP and thereby resumes execution
-+ in that context.
-+
-+ This implementation is intended to be used for *synchronous* context
-+ switches only. Therefore, it does not have to restore anything
-+ other than the PRESERVED state. */
-+
-+ENTRY(__setcontext)
-+ /* Save argument since syscall will destroy it. */
-+ pushq %rdi
-+ cfi_adjust_cfa_offset(8)
-+
-+ /* Set the signal mask with
-+ rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */
-+ leaq oSIGMASK(%rdi), %rsi
-+ xorl %edx, %edx
-+ movl $SIG_SETMASK, %edi
-+ movl $_NSIG8,%r10d
-+ movl $__NR_rt_sigprocmask, %eax
-+ syscall
-+ popq %rdi /* Reload %rdi, adjust stack. */
-+ cfi_adjust_cfa_offset(-8)
-+ cmpq $-4095, %rax /* Check %rax for error. */
-+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
-+
-+ /* Restore the floating-point context. Not the registers, only the
-+ rest. */
-+ movq oFPREGS(%rdi), %rcx
-+ fldenv (%rcx)
-+ ldmxcsr oMXCSR(%rdi)
-+
-+
-+ /* Load the new stack pointer, the preserved registers and
-+ registers used for passing args. */
-+ cfi_def_cfa(%rdi, 0)
-+ cfi_offset(%rbx,oRBX)
-+ cfi_offset(%rbp,oRBP)
-+ cfi_offset(%r12,oR12)
-+ cfi_offset(%r13,oR13)
-+ cfi_offset(%r14,oR14)
-+ cfi_offset(%r15,oR15)
-+ cfi_offset(%rsp,oRSP)
-+ cfi_offset(%rip,oRIP)
-+
-+ movq oRSP(%rdi), %rsp
-+ movq oRBX(%rdi), %rbx
-+ movq oRBP(%rdi), %rbp
-+ movq oR12(%rdi), %r12
-+ movq oR13(%rdi), %r13
-+ movq oR14(%rdi), %r14
-+ movq oR15(%rdi), %r15
-+
-+ /* The following ret should return to the address set with
-+ getcontext. Therefore push the address on the stack. */
-+ movq oRIP(%rdi), %rcx
-+ pushq %rcx
-+
-+ movq oRSI(%rdi), %rsi
-+ movq oRDX(%rdi), %rdx
-+ movq oRCX(%rdi), %rcx
-+ movq oR8(%rdi), %r8
-+ movq oR9(%rdi), %r9
-+
-+ /* Setup finally %rdi. */
-+ movq oRDI(%rdi), %rdi
-+
-+ /* End FDE here, we fall into another context. */
-+ cfi_endproc
-+ cfi_startproc
-+
-+ /* Clear rax to indicate success. */
-+ xorl %eax, %eax
-+L(pseudo_end):
-+ ret
-+PSEUDO_END(__setcontext)
-+
-+weak_alias (__setcontext, setcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/setjmp.S 2014-07-25 20:36:07.817339982 +0200
-@@ -13,14 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#define _ASM
--#define _SETJMP_H
--#include <bits/setjmp.h>
--#include <sysdep.h>
-+#include <jmpbuf-offsets.h>
-
- .global __sigsetjmp
- .type __sigsetjmp,%function
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sigaction.c uClibc-git/libc/sysdeps/linux/x86_64/sigaction.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sigaction.c 2014-07-25 20:36:07.817339982 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include <errno.h>
-@@ -30,9 +29,6 @@
- /* We do not globally define the SA_RESTORER flag so do it here. */
- #define SA_RESTORER 0x04000000
-
--extern __typeof(sigaction) __libc_sigaction;
--
--
- #ifdef __NR_rt_sigaction
-
- /* Using the hidden attribute here does not change the code but it
-@@ -115,11 +111,19 @@
- signal handlers work right. Important are both the names
- (__restore_rt) and the exact instruction sequence.
- If you ever feel the need to make any changes, please notify the
-- appropriate GDB maintainer. */
-+ appropriate GDB maintainer.
-+
-+ The unwind information starts a byte before __restore_rt, so that
-+ it is found when unwinding, to get an address the unwinder assumes
-+ will be in the middle of a call instruction. See the Linux kernel
-+ (the i386 vsyscall, in particular) for an explanation of the complex
-+ unwind information used here in order to get the traditional CFA.
-+ */
-
- #define RESTORE(name, syscall) RESTORE2(name, syscall)
- #define RESTORE2(name, syscall) \
- __asm__ ( \
-+ "nop\n" \
- ".text\n" \
- "__" #name ":\n" \
- " movq $" #syscall ", %rax\n" \
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__start_context.S uClibc-git/libc/sysdeps/linux/x86_64/__start_context.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__start_context.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/__start_context.S 2014-07-25 20:36:07.797339876 +0200
-@@ -0,0 +1,49 @@
-+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+/* This is the helper code which gets called if a function which is
-+ registered with 'makecontext' returns. In this case we have to
-+ install the context listed in the uc_link element of the context
-+ 'makecontext' manipulated at the time of the 'makecontext' call.
-+ If the pointer is NULL the process must terminate. */
-+
-+
-+ENTRY(__start_context)
-+ /* This removes the parameters passed to the function given to
-+ 'makecontext' from the stack. RBX contains the address
-+ on the stack pointer for the next context. */
-+ movq %rbx, %rsp
-+
-+ popq %rdi /* This is the next context. */
-+ cfi_adjust_cfa_offset(-8)
-+ testq %rdi, %rdi
-+ je 2f /* If it is zero exit. */
-+
-+ call JUMPTARGET(__setcontext)
-+ /* If this returns (which can happen if the syscall fails) we'll
-+ exit the program with the return error value (-1). */
-+ movq %rax,%rdi
-+
-+2:
-+ call HIDDEN_JUMPTARGET(exit)
-+ /* The 'exit' call should never return. In case it does cause
-+ the process to terminate. */
-+ hlt
-+END(__start_context)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/swapcontext.S uClibc-git/libc/sysdeps/linux/x86_64/swapcontext.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/swapcontext.S 2014-07-25 20:36:07.817339982 +0200
-@@ -0,0 +1,121 @@
-+/* Save current context and install the given one.
-+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sysdep.h>
-+
-+#include "ucontext_i.h"
-+
-+
-+/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp);
-+
-+ Saves the machine context in oucp such that when it is activated,
-+ it appears as if __swapcontextt() returned again, restores the
-+ machine context in ucp and thereby resumes execution in that
-+ context.
-+
-+ This implementation is intended to be used for *synchronous* context
-+ switches only. Therefore, it does not have to save anything
-+ other than the PRESERVED state. */
-+
-+ENTRY(__swapcontext)
-+ /* Save the preserved registers, the registers used for passing args,
-+ and the return address. */
-+ movq %rbx, oRBX(%rdi)
-+ movq %rbp, oRBP(%rdi)
-+ movq %r12, oR12(%rdi)
-+ movq %r13, oR13(%rdi)
-+ movq %r14, oR14(%rdi)
-+ movq %r15, oR15(%rdi)
-+
-+ movq %rdi, oRDI(%rdi)
-+ movq %rsi, oRSI(%rdi)
-+ movq %rdx, oRDX(%rdi)
-+ movq %rcx, oRCX(%rdi)
-+ movq %r8, oR8(%rdi)
-+ movq %r9, oR9(%rdi)
-+
-+ movq (%rsp), %rcx
-+ movq %rcx, oRIP(%rdi)
-+ leaq 8(%rsp), %rcx /* Exclude the return address. */
-+ movq %rcx, oRSP(%rdi)
-+
-+ /* We have separate floating-point register content memory on the
-+ stack. We use the __fpregs_mem block in the context. Set the
-+ links up correctly. */
-+ leaq oFPREGSMEM(%rdi), %rcx
-+ movq %rcx, oFPREGS(%rdi)
-+ /* Save the floating-point environment. */
-+ fnstenv (%rcx)
-+ stmxcsr oMXCSR(%rdi)
-+
-+
-+ /* The syscall destroys some registers, save them. */
-+ movq %rsi, %r12
-+
-+ /* Save the current signal mask and install the new one with
-+ rt_sigprocmask (SIG_BLOCK, newset, oldset,_NSIG/8). */
-+ leaq oSIGMASK(%rdi), %rdx
-+ leaq oSIGMASK(%rsi), %rsi
-+ movl $SIG_SETMASK, %edi
-+ movl $_NSIG8,%r10d
-+ movl $__NR_rt_sigprocmask, %eax
-+ syscall
-+ cmpq $-4095, %rax /* Check %rax for error. */
-+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
-+
-+ /* Restore destroyed registers. */
-+ movq %r12, %rsi
-+
-+ /* Restore the floating-point context. Not the registers, only the
-+ rest. */
-+ movq oFPREGS(%rsi), %rcx
-+ fldenv (%rcx)
-+ ldmxcsr oMXCSR(%rsi)
-+
-+ /* Load the new stack pointer and the preserved registers. */
-+ movq oRSP(%rsi), %rsp
-+ movq oRBX(%rsi), %rbx
-+ movq oRBP(%rsi), %rbp
-+ movq oR12(%rsi), %r12
-+ movq oR13(%rsi), %r13
-+ movq oR14(%rsi), %r14
-+ movq oR15(%rsi), %r15
-+
-+ /* The following ret should return to the address set with
-+ getcontext. Therefore push the address on the stack. */
-+ movq oRIP(%rsi), %rcx
-+ pushq %rcx
-+
-+ /* Setup registers used for passing args. */
-+ movq oRDI(%rsi), %rdi
-+ movq oRDX(%rsi), %rdx
-+ movq oRCX(%rsi), %rcx
-+ movq oR8(%rsi), %r8
-+ movq oR9(%rsi), %r9
-+
-+ /* Setup finally %rsi. */
-+ movq oRSI(%rsi), %rsi
-+
-+ /* Clear rax to indicate success. */
-+ xorl %eax, %eax
-+L(pseudo_end):
-+ ret
-+PSEUDO_END(__swapcontext)
-+
-+weak_alias (__swapcontext, swapcontext)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/debugreg.h uClibc-git/libc/sysdeps/linux/x86_64/sys/debugreg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/debugreg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/debugreg.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_DEBUGREG_H
- #define _SYS_DEBUGREG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/io.h uClibc-git/libc/sysdeps/linux/x86_64/sys/io.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/io.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/io.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IO_H
- #define _SYS_IO_H 1
-@@ -23,6 +22,7 @@
-
- __BEGIN_DECLS
-
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges.
-@@ -32,12 +32,12 @@
- E.g., Linux/Alpha for Alpha PCs supports this. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
- /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
- access any I/O port is granted. This call requires root
- privileges. */
- extern int iopl (int __level) __THROW;
-+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
-
- #if defined __GNUC__ && __GNUC__ >= 2
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/perm.h uClibc-git/libc/sysdeps/linux/x86_64/sys/perm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/perm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/perm.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PERM_H
-
-@@ -26,7 +25,6 @@
- /* Set port input/output permissions. */
- extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
--libc_hidden_proto(ioperm)
-
-
- /* Change I/O privilege level. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/procfs.h uClibc-git/libc/sysdeps/linux/x86_64/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/procfs.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/reg.h uClibc-git/libc/sysdeps/linux/x86_64/sys/reg.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/reg.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_REG_H
- #define _SYS_REG_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/x86_64/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/ucontext.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/user.h uClibc-git/libc/sysdeps/linux/x86_64/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/user.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sys/user.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_USER_H
- #define _SYS_USER_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/syscall.S uClibc-git/libc/sysdeps/linux/x86_64/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/syscall.S 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Please consult the file sysdeps/unix/sysv/linux/x86-64/sysdep.h for
- more information about the value -4095 used below. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sysdep.h uClibc-git/libc/sysdeps/linux/x86_64/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/sysdep.h 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINUX_X86_64_SYSDEP_H
- #define _LINUX_X86_64_SYSDEP_H 1
-@@ -183,8 +182,6 @@
- # define PSEUDO_END_ERRVAL(name) \
- END (name)
-
--# define ret_ERRVAL ret
--
- # ifndef __PIC__
- # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
- # elif defined(RTLD_PRIVATE_ERRNO)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/ucontext_i.sym uClibc-git/libc/sysdeps/linux/x86_64/ucontext_i.sym
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/x86_64/ucontext_i.sym 2014-07-25 20:36:07.825340023 +0200
-@@ -0,0 +1,37 @@
-+#include <stddef.h>
-+#include <signal.h>
-+#include <sys/ucontext.h>
-+
-+--
-+
-+SIG_BLOCK
-+SIG_SETMASK
-+
-+_NSIG8 (_NSIG / 8)
-+
-+#define ucontext(member) offsetof (ucontext_t, member)
-+#define mcontext(member) ucontext (uc_mcontext.member)
-+#define mreg(reg) mcontext (gregs[REG_##reg])
-+
-+oRBP mreg (RBP)
-+oRSP mreg (RSP)
-+oRBX mreg (RBX)
-+oR8 mreg (R8)
-+oR9 mreg (R9)
-+oR10 mreg (R10)
-+oR11 mreg (R11)
-+oR12 mreg (R12)
-+oR13 mreg (R13)
-+oR14 mreg (R14)
-+oR15 mreg (R15)
-+oRDI mreg (RDI)
-+oRSI mreg (RSI)
-+oRDX mreg (RDX)
-+oRAX mreg (RAX)
-+oRCX mreg (RCX)
-+oRIP mreg (RIP)
-+oEFL mreg (EFL)
-+oFPREGS mcontext (fpregs)
-+oSIGMASK ucontext (uc_sigmask)
-+oFPREGSMEM ucontext (__fpregs_mem)
-+oMXCSR ucontext (__fpregs_mem.mxcsr)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/vfork.S uClibc-git/libc/sysdeps/linux/x86_64/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/x86_64/vfork.S 2014-07-25 20:36:07.825340023 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/syscall.h>
-
-@@ -63,4 +62,4 @@
- .size __vfork,.-__vfork
-
- weak_alias(__vfork,vfork)
--libc_hidden_weak(vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/atomic.h uClibc-git/libc/sysdeps/linux/xtensa/bits/atomic.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/atomic.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/atomic.h 2014-07-25 20:36:07.853340170 +0200
-@@ -0,0 +1,232 @@
-+/* Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifndef _BITS_ATOMIC_H
-+#define _BITS_ATOMIC_H 1
-+
-+#include <inttypes.h>
-+
-+typedef int32_t atomic32_t;
-+typedef uint32_t uatomic32_t;
-+typedef int_fast32_t atomic_fast32_t;
-+typedef uint_fast32_t uatomic_fast32_t;
-+
-+typedef int64_t atomic64_t;
-+typedef uint64_t uatomic64_t;
-+typedef int_fast64_t atomic_fast64_t;
-+typedef uint_fast64_t uatomic_fast64_t;
-+
-+typedef intptr_t atomicptr_t;
-+typedef uintptr_t uatomicptr_t;
-+typedef intmax_t atomic_max_t;
-+typedef uintmax_t uatomic_max_t;
-+
-+
-+/* Xtensa has only a 32-bit form of a store-conditional instruction. */
-+
-+#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+#define __arch_compare_and_exchange_bool_8_rel(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+#define __arch_compare_and_exchange_bool_16_rel(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
-+ Return the old *MEM value. */
-+
-+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-+ ({__typeof__(*(mem)) __tmp, __value; \
-+ __asm__ __volatile__( \
-+ "1: l32i %1, %2, 0 \n" \
-+ " bne %1, %4, 2f \n" \
-+ " wsr %1, SCOMPARE1 \n" \
-+ " mov %0, %1 \n" \
-+ " mov %1, %3 \n" \
-+ " s32c1i %1, %2, 0 \n" \
-+ " bne %0, %1, 1b \n" \
-+ "2: \n" \
-+ : "=&a" (__value), "=&a" (__tmp) \
-+ : "a" (mem), "a" (newval), "a" (oldval) \
-+ : "memory" ); \
-+ __tmp; \
-+ })
-+
-+/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
-+ Return zero if *MEM was changed or non-zero if no exchange happened. */
-+
-+#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
-+ ({__typeof__(*(mem)) __tmp, __value; \
-+ __asm__ __volatile__( \
-+ "1: l32i %0, %2, 0 \n" \
-+ " sub %1, %4, %0 \n" \
-+ " bnez %1, 2f \n" \
-+ " wsr %0, SCOMPARE1 \n" \
-+ " mov %1, %3 \n" \
-+ " s32c1i %1, %2, 0 \n" \
-+ " bne %0, %1, 1b \n" \
-+ " movi %1, 0 \n" \
-+ "2: \n" \
-+ : "=&a" (__value), "=&a" (__tmp) \
-+ : "a" (mem), "a" (newval), "a" (oldval) \
-+ : "memory" ); \
-+ __tmp != 0; \
-+ })
-+
-+/* Store NEWVALUE in *MEM and return the old value. */
-+
-+#define __arch_exchange_32_acq(mem, newval) \
-+ ({__typeof__(*(mem)) __tmp, __value; \
-+ __asm__ __volatile__( \
-+ "1: l32i %0, %2, 0 \n" \
-+ " wsr %0, SCOMPARE1 \n" \
-+ " mov %1, %3 \n" \
-+ " s32c1i %1, %2, 0 \n" \
-+ " bne %0, %1, 1b \n" \
-+ : "=&a" (__value), "=&a" (__tmp) \
-+ : "a" (mem), "a" (newval) \
-+ : "memory" ); \
-+ __tmp; \
-+ })
-+
-+/* Add VALUE to *MEM and return the old value of *MEM. */
-+
-+#define __arch_atomic_exchange_and_add_32(mem, value) \
-+ ({__typeof__(*(mem)) __tmp, __value; \
-+ __asm__ __volatile__( \
-+ "1: l32i %0, %2, 0 \n" \
-+ " wsr %0, SCOMPARE1 \n" \
-+ " add %1, %0, %3 \n" \
-+ " s32c1i %1, %2, 0 \n" \
-+ " bne %0, %1, 1b \n" \
-+ : "=&a" (__value), "=&a" (__tmp) \
-+ : "a" (mem), "a" (value) \
-+ : "memory" ); \
-+ __tmp; \
-+ })
-+
-+/* Subtract VALUE from *MEM and return the old value of *MEM. */
-+
-+#define __arch_atomic_exchange_and_sub_32(mem, value) \
-+ ({__typeof__(*(mem)) __tmp, __value; \
-+ __asm__ __volatile__( \
-+ "1: l32i %0, %2, 0 \n" \
-+ " wsr %0, SCOMPARE1 \n" \
-+ " sub %1, %0, %3 \n" \
-+ " s32c1i %1, %2, 0 \n" \
-+ " bne %0, %1, 1b \n" \
-+ : "=&a" (__value), "=&a" (__tmp) \
-+ : "a" (mem), "a" (value) \
-+ : "memory" ); \
-+ __tmp; \
-+ })
-+
-+/* Decrement *MEM if it is > 0, and return the old value. */
-+
-+#define __arch_atomic_decrement_if_positive_32(mem) \
-+ ({__typeof__(*(mem)) __tmp, __value; \
-+ __asm__ __volatile__( \
-+ "1: l32i %0, %2, 0 \n" \
-+ " blti %0, 1, 2f \n" \
-+ " wsr %0, SCOMPARE1 \n" \
-+ " addi %1, %0, -1 \n" \
-+ " s32c1i %1, %2, 0 \n" \
-+ " bne %0, %1, 1b \n" \
-+ "2: \n" \
-+ : "=&a" (__value), "=&a" (__tmp) \
-+ : "a" (mem) \
-+ : "memory" ); \
-+ __value; \
-+ })
-+
-+
-+/* These are the preferred public interfaces: */
-+
-+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
-+ ({ \
-+ if (sizeof (*mem) != 4) \
-+ abort(); \
-+ __arch_compare_and_exchange_val_32_acq(mem, newval, oldval); \
-+ })
-+
-+#define atomic_exchange_acq(mem, newval) \
-+ ({ \
-+ if (sizeof(*(mem)) != 4) \
-+ abort(); \
-+ __arch_exchange_32_acq(mem, newval); \
-+ })
-+
-+#define atomic_exchange_and_add(mem, newval) \
-+ ({ \
-+ if (sizeof(*(mem)) != 4) \
-+ abort(); \
-+ __arch_atomic_exchange_and_add_32(mem, newval); \
-+ })
-+
-+#define atomic_exchange_and_sub(mem, newval) \
-+ ({ \
-+ if (sizeof(*(mem)) != 4) \
-+ abort(); \
-+ __arch_atomic_exchange_and_sub_32(mem, newval); \
-+ })
-+
-+#define atomic_decrement_if_positive(mem) \
-+ ({ \
-+ if (sizeof(*(mem)) != 4) \
-+ abort(); \
-+ __arch_atomic_decrement_if_positive_32(mem); \
-+ })
-+
-+
-+# define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
-+ (abort (), (__typeof (*mem)) 0)
-+
-+# define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
-+ (abort (), 0)
-+
-+# define __arch_compare_and_exchange_val_64_rel(mem, newval, oldval) \
-+ (abort (), (__typeof (*mem)) 0)
-+
-+# define __arch_atomic_exchange_64_acq(mem, value) \
-+ ({ abort (); (*mem) = (value); })
-+
-+# define __arch_atomic_exchange_64_rel(mem, value) \
-+ ({ abort (); (*mem) = (value); })
-+
-+# define __arch_atomic_exchange_and_add_64(mem, value) \
-+ ({ abort (); (*mem) = (value); })
-+
-+# define __arch_atomic_increment_val_64(mem) \
-+ ({ abort (); (*mem)++; })
-+
-+# define __arch_atomic_decrement_val_64(mem) \
-+ ({ abort (); (*mem)--; })
-+
-+# define __arch_atomic_decrement_if_positive_64(mem) \
-+ ({ abort (); (*mem)--; })
-+
-+
-+
-+#endif /* _BITS_ATOMIC_H */
-+
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/fcntl.h uClibc-git/libc/sysdeps/linux/xtensa/bits/fcntl.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/fcntl.h 2014-07-25 20:36:07.853340170 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FCNTL_H
- # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/ipc.h uClibc-git/libc/sysdeps/linux/xtensa/bits/ipc.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/ipc.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_IPC_H
- # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/xtensa/bits/kernel_types.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/kernel_types.h 2014-07-25 20:36:07.853340170 +0200
-@@ -33,6 +33,8 @@
- typedef unsigned short __kernel_old_uid_t;
- typedef unsigned short __kernel_old_gid_t;
- typedef unsigned short __kernel_old_dev_t;
-+typedef long __kernel_long_t;
-+typedef unsigned long __kernel_ulong_t;
- typedef long long __kernel_loff_t;
-
- /* Beginning in 2.6 kernels, which is the first version that includes the
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mathdef.h uClibc-git/libc/sysdeps/linux/xtensa/bits/mathdef.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/mathdef.h 2014-07-25 20:36:07.853340170 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if !defined _MATH_H && !defined _COMPLEX_H
- # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mman.h uClibc-git/libc/sysdeps/linux/xtensa/bits/mman.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/mman.h 2014-07-25 20:36:07.853340170 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MMAN_H
- # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-@@ -64,7 +63,7 @@
- # define MAP_NORESERVE 0x0400 /* Don't check for reservations. */
- # define MAP_POPULATE 0x10000 /* Populate (prefault) pagetables. */
- # define MAP_NONBLOCK 0x20000 /* Do not block on IO. */
--# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
-+# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
- be uninitialized. */
- #endif
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/msq.h uClibc-git/libc/sysdeps/linux/xtensa/bits/msq.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/msq.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_MSG_H
- # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/setjmp.h uClibc-git/libc/sysdeps/linux/xtensa/bits/setjmp.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/setjmp.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Define the machine-dependent type `jmp_buf'. Xtensa version. */
- #ifndef _BITS_SETJMP_H
-@@ -30,17 +29,6 @@
- subsequent alloca in proc moves $sp), and the return address within
- proc. Everything else is saved on the stack in the normal save areas. */
-
--#ifndef _ASM
- typedef int __jmp_buf[17];
--#endif
--
--#define JB_SP 1
--#define JB_PC 16
--
--/* Test if longjmp to JMPBUF would unwind the frame containing a local
-- variable at ADDRESS. */
--
--#define _JMPBUF_UNWINDS(jmpbuf, address) \
-- ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-
- #endif /* bits/setjmp.h */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/shm.h uClibc-git/libc/sysdeps/linux/xtensa/bits/shm.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/shm.h 2014-07-25 20:36:07.853340170 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_SHM_H
- # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontext.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontext.h 2014-07-25 20:36:07.853340170 +0200
-@@ -0,0 +1,40 @@
-+/* Copyright (C) 2012 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
-+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
-+#endif
-+
-+#ifndef _BITS_SIGCONTEXT_H
-+#define _BITS_SIGCONTEXT_H 1
-+
-+struct sigcontext
-+{
-+ unsigned long sc_pc;
-+ unsigned long sc_ps;
-+ unsigned long sc_lbeg;
-+ unsigned long sc_lend;
-+ unsigned long sc_lcount;
-+ unsigned long sc_sar;
-+ unsigned long sc_acclo;
-+ unsigned long sc_acchi;
-+ unsigned long sc_a[16];
-+ void *sc_xtregs;
-+};
-+
-+#endif /* _BITS_SIGCONTEXT_H */
-+
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Also see register-dump.h, where we spill live registers to the
- stack so that we can trace the stack backward. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/xtensa/bits/stackinfo.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/stackinfo.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file contains a bit of information about the stack allocation
- of the processor. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stat.h uClibc-git/libc/sysdeps/linux/xtensa/bits/stat.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/stat.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_STAT_H
- # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h 2014-07-25 20:36:07.853340170 +0200
-@@ -11,8 +11,8 @@
- /* can your target use syscall6() for mmap ? */
- #define __UCLIBC_MMAP_HAS_6_ARGS__
-
--/* does your target use syscall4() for truncate64 ? (32bit arches only) */
--#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+/* does your target align 64bit values in register pairs ? (32bit arches only) */
-+#define __UCLIBC_SYSCALL_ALIGN_64BIT__
-
- /* does your target have a broken create_module() ? */
- #undef __UCLIBC_BROKEN_CREATE_MODULE__
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_page.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,31 +0,0 @@
--/* Copyright (C) 2004 Erik Andersen
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2.1 of the License, or (at your option) any later version.
-- *
-- * The GNU C Library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with the GNU C Library; if not, write to the Free
-- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- * 02111-1307 USA.
-- */
--
--/* Supply an architecture specific value for PAGE_SIZE and friends. */
--
--#ifndef _UCLIBC_PAGE_H
--#define _UCLIBC_PAGE_H
--
--#include <bits/xtensa-config.h>
--
--/* PAGE_SHIFT determines the page size -- in this case 4096 */
--#define PAGE_SHIFT XCHAL_MMU_MIN_PTE_PAGE_SIZE
--#define PAGE_SIZE (1UL << PAGE_SHIFT)
--#define PAGE_MASK (~(PAGE_SIZE-1))
--
--#endif /* _UCLIBC_PAGE_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/wordsize.h uClibc-git/libc/sysdeps/linux/xtensa/bits/wordsize.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/wordsize.h 2014-07-25 20:36:07.853340170 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __WORDSIZE 32
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/xtensa-config.h uClibc-git/libc/sysdeps/linux/xtensa/bits/xtensa-config.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/xtensa-config.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/bits/xtensa-config.h 2014-07-25 20:36:07.853340170 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef XTENSA_CONFIG_H
- #define XTENSA_CONFIG_H
-@@ -44,10 +43,4 @@
- #undef XCHAL_NUM_AREGS
- #define XCHAL_NUM_AREGS 64
-
--/* Set a default page size. This is currently needed when bootstrapping
-- the runtime linker. See comments in dl-machine.h where this is used. */
--
--#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE
--#define XCHAL_MMU_MIN_PTE_PAGE_SIZE 12
--
- #endif /* !XTENSA_CONFIG_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/brk.c uClibc-git/libc/sysdeps/linux/xtensa/brk.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/brk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/brk.c 2014-07-25 20:36:07.853340170 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/clone.S uClibc-git/libc/sysdeps/linux/xtensa/clone.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/clone.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/clone.S 2014-07-25 20:36:07.857340190 +0200
-@@ -11,9 +11,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* clone is even more special than fork as it mucks with stacks
- and invokes a function in the right context after it's all over. */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/crt1.S uClibc-git/libc/sysdeps/linux/xtensa/crt1.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/crt1.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/crt1.S 2014-07-25 20:36:07.857340190 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/fork.c uClibc-git/libc/sysdeps/linux/xtensa/fork.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/fork.c 2014-07-25 20:36:07.857340190 +0200
-@@ -7,19 +7,19 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <unistd.h>
--#include <sys/syscall.h>
--#define _SIGNAL_H
--#include <bits/signum.h>
-
- /* Xtensa doesn't provide a 'fork' system call, so we use 'clone'. */
-+#include <sys/syscall.h>
-
--extern __typeof(fork) __libc_fork;
-+#if defined __NR_clone && defined __ARCH_USE_MMU__
-+# include <unistd.h>
-+# include <signal.h>
-+# include <cancel.h>
-
--libc_hidden_proto(fork)
--pid_t __libc_fork(void)
-+pid_t fork(void)
- {
- return (pid_t) INLINE_SYSCALL(clone, 2, SIGCHLD, 0);
- }
--weak_alias(__libc_fork, fork)
--libc_hidden_weak(fork)
-+lt_strong_alias(fork)
-+lt_libc_hidden(fork)
-+#endif
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h 2014-07-25 20:36:07.857340190 +0200
-@@ -0,0 +1,20 @@
-+/* Private macros for accessing __jmp_buf contents. Xtensa version.
-+ Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define JB_SP 1
-+#define JB_PC 16
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h 2014-07-25 20:36:07.857340190 +0200
-@@ -0,0 +1,25 @@
-+/* Copyright (C) 1997, 1998, 2007 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+/* Test if longjmp to JMPBUF would unwind the frame containing a local
-+ variable at ADDRESS. */
-+
-+#include <setjmp.h>
-+#include <jmpbuf-offsets.h>
-+
-+#define _JMPBUF_UNWINDS(jmpbuf, address) \
-+ ((void *) (address) < (void *) (jmpbuf)[JB_SP])
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/__longjmp.S uClibc-git/libc/sysdeps/linux/xtensa/__longjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/__longjmp.S 2014-07-25 20:36:07.841340106 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This implementation relies heavily on the Xtensa register window
- mechanism. Setjmp flushes all the windows except its own to the
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/Makefile.arch uClibc-git/libc/sysdeps/linux/xtensa/Makefile.arch
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/Makefile.arch 2014-07-25 20:36:07.841340106 +0200
-@@ -5,11 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c fork.c pread_write.c sigaction.c __syscall_error.c
-+CSRC-y := brk.c fork.c sigaction.c __syscall_error.c
-
--ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
-- CSRC += posix_fadvise.c posix_fadvise64.c
--endif
--
--SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \
-+SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \
- sigrestorer.S syscall.S mmap.S windowspill.S __longjmp.S vfork.S
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/mmap.S uClibc-git/libc/sysdeps/linux/xtensa/mmap.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/mmap.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/mmap.S 2014-07-25 20:36:07.857340190 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
- #include <sys/syscall.h>
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise64.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,39 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * posix_fadvise64() for Xtensa uClibc
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- * Copyright (C) 2007 Tensilica Inc.
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <features.h>
--#include <unistd.h>
--#include <errno.h>
--#include <endian.h>
--#include <stdint.h>
--#include <sys/types.h>
--#include <sys/syscall.h>
--#include <fcntl.h>
--
--#ifdef __UCLIBC_HAS_LFS__
--
--int posix_fadvise64 (int fd, __off64_t offset, __off64_t len, int advice)
--{
--#ifdef __NR_fadvise64_64
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
-- __LONG_LONG_PAIR ((long) (offset >> 32),
-- (long) offset),
-- __LONG_LONG_PAIR ((long) (len >> 32),
-- (long) len));
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
--#else
-- return ENOSYS;
--#endif
--}
--
--#endif /* __UCLIBC_HAS_LFS__ */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise.c uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,29 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * posix_fadvise() for Xtensa uClibc
-- *
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- * Copyright (C) 2007 Tensilica Inc.
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--
--#include <sys/syscall.h>
--#include <fcntl.h>
--
--int posix_fadvise (int fd, off_t offset, off_t len, int advice)
--{
--#ifdef __NR_fadvise64_64
-- INTERNAL_SYSCALL_DECL (err);
-- int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
-- __LONG_LONG_PAIR ((long) (offset >> 31),
-- (long) offset),
-- __LONG_LONG_PAIR ((long) (len >> 31),
-- (long) len));
-- if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
-- return 0;
-- return INTERNAL_SYSCALL_ERRNO (ret, err);
--#else
-- return ENOSYS;
--#endif
--}
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/pread_write.c uClibc-git/libc/sysdeps/linux/xtensa/pread_write.c
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/pread_write.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/pread_write.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,189 +0,0 @@
--/* vi: set sw=4 ts=4: */
--/*
-- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-- *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-- */
--/*
-- * Based in part on the files
-- * ./sysdeps/unix/sysv/linux/pwrite.c,
-- * ./sysdeps/unix/sysv/linux/pread.c,
-- * sysdeps/posix/pread.c
-- * sysdeps/posix/pwrite.c
-- * from GNU libc 2.2.5, but reworked considerably...
-- */
--
--#include <sys/syscall.h>
--#include <unistd.h>
--#include <stdint.h>
--#include <endian.h>
--
--extern __typeof(pread) __libc_pread;
--extern __typeof(pwrite) __libc_pwrite;
--#ifdef __UCLIBC_HAS_LFS__
--extern __typeof(pread64) __libc_pread64;
--extern __typeof(pwrite64) __libc_pwrite64;
--#endif
--
--#include <bits/kernel_types.h>
--
--#ifdef __NR_pread
--
--# define __NR___syscall_pread __NR_pread
--/* On Xtensa, 64-bit values are aligned in even/odd register pairs. */
--static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
-- size_t, count, int, pad, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset));
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(high, low));
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--
--#endif /* __NR_pread */
--
--#ifdef __NR_pwrite
--
--# define __NR___syscall_pwrite __NR_pwrite
--/* On Xtensa, 64-bit values are aligned in even/odd register pairs. */
--static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
-- size_t, count, int, pad, off_t, offset_hi, off_t, offset_lo)
--
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset));
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- uint32_t low = offset & 0xffffffff;
-- uint32_t high = offset >> 32;
-- return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(high, low));
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* __NR_pwrite */
--
--#if ! defined __NR_pread || ! defined __NR_pwrite
--
--static ssize_t __fake_pread_write(int fd, void *buf,
-- size_t count, off_t offset, int do_pwrite)
--{
-- int save_errno;
-- ssize_t result;
-- off_t old_offset;
--
-- /* Since we must not change the file pointer preserve the
-- * value so that we can restore it later. */
-- if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
-- return -1;
--
-- /* Set to wanted position. */
-- if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
-- return -1;
--
-- if (do_pwrite == 1) {
-- /* Write the data. */
-- result = write(fd, buf, count);
-- } else {
-- /* Read the data. */
-- result = read(fd, buf, count);
-- }
--
-- /* Now we have to restore the position. If this fails we
-- * have to return this as an error. */
-- save_errno = errno;
-- if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
-- {
-- if (result == -1)
-- __set_errno(save_errno);
-- return -1;
-- }
-- __set_errno(save_errno);
-- return(result);
--}
--
--# ifdef __UCLIBC_HAS_LFS__
--
--static ssize_t __fake_pread_write64(int fd, void *buf,
-- size_t count, off64_t offset, int do_pwrite)
--{
-- int save_errno;
-- ssize_t result;
-- off64_t old_offset;
--
-- /* Since we must not change the file pointer preserve the
-- * value so that we can restore it later. */
-- if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
-- return -1;
--
-- /* Set to wanted position. */
-- if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
-- return -1;
--
-- if (do_pwrite == 1) {
-- /* Write the data. */
-- result = write(fd, buf, count);
-- } else {
-- /* Read the data. */
-- result = read(fd, buf, count);
-- }
--
-- /* Now we have to restore the position. */
-- save_errno = errno;
-- if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) {
-- if (result == -1)
-- __set_errno (save_errno);
-- return -1;
-- }
-- __set_errno (save_errno);
-- return result;
--}
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
--
--#ifndef __NR_pread
--ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
--{
-- return __fake_pread_write(fd, buf, count, offset, 0);
--}
--weak_alias(__libc_pread,pread)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
--{
-- return __fake_pread_write64(fd, buf, count, offset, 0);
--}
--weak_alias(__libc_pread64,pread64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! __NR_pread */
--
--#ifndef __NR_pwrite
--ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
--{
-- /* we won't actually be modifying the buffer,
-- *just cast it to get rid of warnings */
-- return __fake_pread_write(fd, (void*)buf, count, offset, 1);
--}
--weak_alias(__libc_pwrite,pwrite)
--
--# ifdef __UCLIBC_HAS_LFS__
--ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
--{
-- return __fake_pread_write64(fd, (void*)buf, count, offset, 1);
--}
--weak_alias(__libc_pwrite64,pwrite64)
--# endif /* __UCLIBC_HAS_LFS__ */
--#endif /* ! __NR_pwrite */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/setjmp.S uClibc-git/libc/sysdeps/linux/xtensa/setjmp.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/setjmp.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/setjmp.S 2014-07-25 20:36:07.857340190 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This implementation relies heavily on the Xtensa register window
- mechanism. Setjmp flushes all the windows except its own to the
-@@ -25,24 +24,52 @@
- then sets things up so that it will return to the right place,
- using a window underflow to automatically restore the registers.
-
-- Note that it would probably be sufficient to only copy the
-- registers from setjmp's caller into jmp_buf. However, we also copy
-- the save area located at the stack pointer of setjmp's caller.
-- This save area will typically remain intact until the longjmp call.
-- The one exception is when there is an intervening alloca in
-- setjmp's caller. This is certainly an unusual situation and is
-- likely to cause problems in any case (the storage allocated on the
-- stack cannot be safely accessed following the longjmp). As bad as
-- it is, on most systems this situation would not necessarily lead to
-- a catastrophic failure. If we did not preserve the extra save area
-- on Xtensa, however, it would. When setjmp's caller returns after a
-- longjmp, there will be a window underflow; an invalid return
-- address or stack pointer in the save area will almost certainly
-- lead to a crash. Keeping a copy of the extra save area in the
-- jmp_buf avoids this with only a small additional cost. If setjmp
-- and longjmp are ever time-critical, this could be removed. */
-+ Note that we also save the area located just below the stack pointer
-+ of the caller. This save area could get overwritten by alloca
-+ following the call to setjmp. The alloca moves the stack pointer
-+ to allocate memory on the stack. This newly allocated memory
-+ includes(!) the original save area (alloca copies the save area
-+ before it moves that stack pointer).
-+
-+
-+ previous caller SP -> |------------------------------| <-----+
-+ | caller-2 registers a0-a3 | | p
-+ |------------------------------| | o
-+ | caller registers a4-a8/a12 | | i
-+ |------------------------------| | n
-+ | caller local stack | | t
-+ caller SP -> |------------------------------| <-+ | s
-+ | caller-1 registers a0-a3 | -:---+
-+ callee (setjmp) SP -> |==============================| |
-+ | caller registers a0-a3 | --+
-+ |------------------------------|
-+
-+ In case of an alloca, registers a0-a3 of the previous caller (caller-1)
-+ are copied (*), and the original location get likely overwritten.
-+
-+ previous caller SP -> |------------------------------| <-----+
-+ | caller-2 registers a0-a3 | | p
-+ |------------------------------| | o
-+ | caller registers a4-a8/a12 | | i
-+ |------------------------------| | n
-+ | caller local stack | | t
-+ caller SP before alloca-> |------------------------------| | s
-+ | alloca area (overwrites old | |
-+ | copy of caller-1 registers) | |
-+ caller SP after alloca -> |------------------------------| <-+ |
-+ | caller-1 registers a0-a3 (*) | -:---+
-+ callee (setjmp) SP -> |==============================| |
-+ | caller registers a0-a3 | --+
-+ |------------------------------|
-+
-+ So, when longcall returns to the original caller SP, it also needs
-+ to restore the save area below the SP.
-+
-+ */
-
- #include "sysdep.h"
-+
-+/* NOTE: The ENTRY macro must allocate exactly 16 bytes (entry a1, 16) */
-
- /* int setjmp (a2 = jmp_buf env) */
-
-@@ -57,8 +84,7 @@
- j 1f
- END (setjmp)
-
--/* int __sigsetjmp (a2 = jmp_buf env,
-- a3 = int savemask) */
-+/* int __sigsetjmp (a2 = jmp_buf env, a3 = int savemask) */
-
- ENTRY (__sigsetjmp)
- 1:
-@@ -66,61 +92,56 @@
- movi a4, __window_spill
- callx4 a4
-
-- /* Preserve the second argument (savemask) in a15. The selection
-- of a15 is arbitrary, except it's otherwise unused. There is no
-- risk of triggering a window overflow since we just returned
-- from __window_spill(). */
-- mov a15, a3
--
-- /* Copy the register save area at (sp - 16). */
-- addi a5, a1, -16
-- l32i a3, a5, 0
-- l32i a4, a5, 4
-- s32i a3, a2, 0
-- s32i a4, a2, 4
-- l32i a3, a5, 8
-- l32i a4, a5, 12
-- s32i a3, a2, 8
-- s32i a4, a2, 12
--
-- /* Copy 0-8 words from the register overflow area. */
-- extui a3, a0, 30, 2
-- blti a3, 2, .Lendsj
-- l32i a7, a1, 4
-- slli a4, a3, 4
-- sub a5, a7, a4
-- addi a6, a2, 16
-- addi a7, a7, -16 /* a7 = end of register overflow area */
-+ /* Copy the caller register a0-a3 at (sp - 16) to jmpbuf. */
-+ addi a7, a1, -16
-+ l32i a4, a7, 0
-+ l32i a5, a7, 4
-+ s32i a4, a2, 0
-+ s32i a5, a2, 4
-+ l32i a4, a7, 8
-+ l32i a5, a7, 12
-+ s32i a4, a2, 8
-+ s32i a5, a2, 12
-+
-+ /* Copy the caller registers a4-a8/a12 from the overflow area. */
-+ /* Note that entry moved the SP by 16B, so SP of caller-1 is at 4(sp) */
-+ extui a7, a0, 30, 2
-+ blti a7, 2, .Lendsj
-+ l32i a8, a1, 4 /* a8: SP of 'caller-1' */
-+ slli a4, a7, 4
-+ sub a6, a8, a4
-+ addi a5, a2, 16
-+ addi a8, a8, -16 /* a8: end of register overflow area */
- .Lsjloop:
-- l32i a3, a5, 0
-- l32i a4, a5, 4
-- s32i a3, a6, 0
-- s32i a4, a6, 4
-- l32i a3, a5, 8
-- l32i a4, a5, 12
-- s32i a3, a6, 8
-- s32i a4, a6, 12
-- addi a5, a5, 16
-+ l32i a7, a6, 0
-+ l32i a4, a6, 4
-+ s32i a7, a5, 0
-+ s32i a4, a5, 4
-+ l32i a7, a6, 8
-+ l32i a4, a6, 12
-+ s32i a7, a5, 8
-+ s32i a4, a5, 12
-+ addi a5, a6, 16
- addi a6, a6, 16
-- blt a5, a7, .Lsjloop
-+ blt a6, a8, .Lsjloop
- .Lendsj:
-
-- /* Copy the register save area at sp. */
-- l32i a3, a1, 0
-- l32i a4, a1, 4
-- s32i a3, a2, 48
-- s32i a4, a2, 52
-- l32i a3, a1, 8
-- l32i a4, a1, 12
-- s32i a3, a2, 56
-- s32i a4, a2, 60
-+ /* Copy previous caller registers (this is assuming 'entry a1,16') */
-+ l32i a4, a1, 0
-+ l32i a5, a1, 4
-+ s32i a4, a2, 48
-+ s32i a5, a2, 52
-+ l32i a4, a1, 8
-+ l32i a5, a1, 12
-+ s32i a4, a2, 56
-+ s32i a5, a2, 60
-
- /* Save the return address, including the window size bits. */
- s32i a0, a2, 64
-
-- /* a2 still addresses jmp_buf. a15 contains savemask. */
-+ /* a2 still points to jmp_buf. a3 contains savemask. */
- mov a6, a2
-- mov a7, a15
-+ mov a7, a3
- movi a3, __sigjmp_save
- callx4 a3
- mov a2, a6
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/procfs.h uClibc-git/libc/sysdeps/linux/xtensa/sys/procfs.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/sys/procfs.h 2014-07-25 20:36:07.873340274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_PROCFS_H
- #define _SYS_PROCFS_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ptrace.h uClibc-git/libc/sysdeps/linux/xtensa/sys/ptrace.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/sys/ptrace.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,156 +0,0 @@
--/* `ptrace' debugger support interface. Linux version.
-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007
-- Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
--
--#ifndef _SYS_PTRACE_H
--#define _SYS_PTRACE_H 1
--
--#include <features.h>
--
--/* Kludge away careless namespace pollution from the kernel. */
--
--#undef PTRACE_GETREGS
--#undef PTRACE_SETREGS
--#undef PTRACE_GETFPREGS
--#undef PTRACE_SETFPREGS
--#undef PTRACE_GETFPREGSIZE
--
--
--__BEGIN_DECLS
--
--/* Type of the REQUEST argument to `ptrace.' */
--enum __ptrace_request
--{
-- /* Indicate that the process making this request should be traced.
-- All signals received by this process can be intercepted by its
-- parent, and its parent can use the other `ptrace' requests. */
-- PTRACE_TRACEME = 0,
--#define PT_TRACE_ME PTRACE_TRACEME
--
-- /* Return the word in the process's text space at address ADDR. */
-- PTRACE_PEEKTEXT = 1,
--#define PT_READ_I PTRACE_PEEKTEXT
--
-- /* Return the word in the process's data space at address ADDR. */
-- PTRACE_PEEKDATA = 2,
--#define PT_READ_D PTRACE_PEEKDATA
--
-- /* Return the word in the process's user area at offset ADDR. */
-- PTRACE_PEEKUSER = 3,
--#define PT_READ_U PTRACE_PEEKUSER
--
-- /* Write the word DATA into the process's text space at address ADDR. */
-- PTRACE_POKETEXT = 4,
--#define PT_WRITE_I PTRACE_POKETEXT
--
-- /* Write the word DATA into the process's data space at address ADDR. */
-- PTRACE_POKEDATA = 5,
--#define PT_WRITE_D PTRACE_POKEDATA
--
-- /* Write the word DATA into the process's user area at offset ADDR. */
-- PTRACE_POKEUSER = 6,
--#define PT_WRITE_U PTRACE_POKEUSER
--
-- /* Continue the process. */
-- PTRACE_CONT = 7,
--#define PT_CONTINUE PTRACE_CONT
--
-- /* Kill the process. */
-- PTRACE_KILL = 8,
--#define PT_KILL PTRACE_KILL
--
-- /* Single step the process.
-- This is not supported on all machines. */
-- PTRACE_SINGLESTEP = 9,
--#define PT_STEP PTRACE_SINGLESTEP
--
-- /* Get all general purpose registers used by a processes.
-- This is not supported on all machines. */
-- PTRACE_GETREGS = 12,
--#define PT_GETREGS PTRACE_GETREGS
--
-- /* Set all general purpose registers used by a processes.
-- This is not supported on all machines. */
-- PTRACE_SETREGS = 13,
--#define PT_SETREGS PTRACE_SETREGS
--
-- /* Get all floating point registers used by a processes.
-- This is not supported on all machines. */
-- PTRACE_GETFPREGS = 14,
--#define PT_GETFPREGS PTRACE_GETFPREGS
--
-- /* Set all floating point registers used by a processes.
-- This is not supported on all machines. */
-- PTRACE_SETFPREGS = 15,
--#define PT_SETFPREGS PTRACE_SETFPREGS
--
-- /* Attach to a process that is already running. */
-- PTRACE_ATTACH = 16,
--#define PT_ATTACH PTRACE_ATTACH
--
-- /* Detach from a process attached to with PTRACE_ATTACH. */
-- PTRACE_DETACH = 17,
--#define PT_DETACH PTRACE_DETACH
--
-- /* Get size required for the buffer holding the floating point registers.
-- This is not supported on all machines. */
-- PTRACE_GETFPREGSIZE = 18,
--#define PT_GETFPREGSIZE PTRACE_GETFPREGSIZE
--
-- /* Continue and stop at the next (return from) syscall. */
-- PTRACE_SYSCALL = 24
--#define PT_SYSCALL PTRACE_SYSCALL
--};
--
--/* Options set using PTRACE_SETOPTIONS. */
--enum __ptrace_setoptions {
-- PTRACE_O_TRACESYSGOOD = 0x00000001,
-- PTRACE_O_TRACEFORK = 0x00000002,
-- PTRACE_O_TRACEVFORK = 0x00000004,
-- PTRACE_O_TRACECLONE = 0x00000008,
-- PTRACE_O_TRACEEXEC = 0x00000010,
-- PTRACE_O_TRACEVFORKDONE = 0x00000020,
-- PTRACE_O_TRACEEXIT = 0x00000040,
-- PTRACE_O_MASK = 0x0000007f
--};
--
--/* Wait extended result codes for the above trace options. */
--enum __ptrace_eventcodes {
-- PTRACE_EVENT_FORK = 1,
-- PTRACE_EVENT_VFORK = 2,
-- PTRACE_EVENT_CLONE = 3,
-- PTRACE_EVENT_EXEC = 4,
-- PTRACE_EVENT_VFORK_DONE = 5,
-- PTRACE_EVENT_EXIT = 6
--};
--
--/* Perform process tracing functions. REQUEST is one of the values
-- above, and determines the action to be taken.
-- For all requests except PTRACE_TRACEME, PID specifies the process to be
-- traced.
--
-- PID and the other arguments described above for the various requests should
-- appear (those that are used for the particular request) as:
-- pid_t PID, void *ADDR, int DATA, void *ADDR2
-- after REQUEST. */
--extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
--
--__END_DECLS
--
--#endif /* _SYS_PTRACE_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ucontext.h uClibc-git/libc/sysdeps/linux/xtensa/sys/ucontext.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/sys/ucontext.h 2014-07-25 20:36:07.873340274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SYS_UCONTEXT_H
- #define _SYS_UCONTEXT_H 1
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/user.h uClibc-git/libc/sysdeps/linux/xtensa/sys/user.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/user.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/sysdeps/linux/xtensa/sys/user.h 2014-07-25 20:36:07.873340274 +0200
-@@ -0,0 +1,20 @@
-+/*
-+ * include/asm-xtensa/user.h
-+ *
-+ * Xtensa Processor version.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 2001 - 2005 Tensilica Inc.
-+ */
-+
-+#ifndef _XTENSA_USER_H
-+#define _XTENSA_USER_H
-+
-+/* This file usually defines a 'struct user' structure. However, it it only
-+ * used for a.out file, which are not supported on Xtensa.
-+ */
-+
-+#endif /* _XTENSA_USER_H */
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/syscall.S uClibc-git/libc/sysdeps/linux/xtensa/syscall.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/syscall.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/syscall.S 2014-07-25 20:36:07.873340274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
-
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sysdep.h uClibc-git/libc/sysdeps/linux/xtensa/sysdep.h
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/sysdep.h 2014-07-25 20:36:07.873340274 +0200
-@@ -13,9 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <sys/syscall.h>
-
- #ifdef __ASSEMBLER__
-
-@@ -38,6 +39,16 @@
- entry sp, FRAMESIZE; \
- CALL_MCOUNT
-
-+#define HIDDEN_ENTRY(name) \
-+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
-+ .hidden C_SYMBOL_NAME(name); \
-+ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name), @function); \
-+ .align ALIGNARG(2); \
-+ LITERAL_POSITION; \
-+ C_LABEL(name) \
-+ entry sp, FRAMESIZE; \
-+ CALL_MCOUNT
-+
- #undef END
- #define END(name) ASM_SIZE_DIRECTIVE(name)
-
-@@ -112,6 +123,7 @@
- #define PSEUDO_END_ERRVAL(name) \
- END (name)
-
-+#undef ret_ERRVAL
- #define ret_ERRVAL retw
-
- #if defined RTLD_PRIVATE_ERRNO
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/vfork.S uClibc-git/libc/sysdeps/linux/xtensa/vfork.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/vfork.S 2014-07-25 20:36:07.873340274 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "sysdep.h"
- #include <sys/syscall.h>
-@@ -49,7 +48,7 @@
- /* pid_t vfork(void);
- Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
-
--ENTRY (__vfork)
-+HIDDEN_ENTRY (__vfork)
-
- movi a6, .Ljumptable
- extui a2, a0, 30, 2 /* call-size: call4/8/12 = 1/2/3 */
-@@ -165,6 +164,5 @@
- .Lpseudo_end:
- retw
-
--libc_hidden_def (__vfork)
--
- weak_alias (__vfork, vfork)
-+libc_hidden_def(vfork)
-diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/windowspill.S uClibc-git/libc/sysdeps/linux/xtensa/windowspill.S
---- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/windowspill.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/sysdeps/linux/xtensa/windowspill.S 2014-07-25 20:36:07.873340274 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <bits/xtensa-config.h>
-
-diff -Nur uClibc-0.9.33.2/libc/termios/cfmakeraw.c uClibc-git/libc/termios/cfmakeraw.c
---- uClibc-0.9.33.2/libc/termios/cfmakeraw.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/cfmakeraw.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <termios.h>
-
-diff -Nur uClibc-0.9.33.2/libc/termios/cfsetspeed.c uClibc-git/libc/termios/cfsetspeed.c
---- uClibc-0.9.33.2/libc/termios/cfsetspeed.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/cfsetspeed.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <termios.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/isatty.c uClibc-git/libc/termios/isatty.c
---- uClibc-0.9.33.2/libc/termios/isatty.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/isatty.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/kernel_termios.h uClibc-git/libc/termios/kernel_termios.h
---- uClibc-0.9.33.2/libc/termios/kernel_termios.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/kernel_termios.h 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _KERNEL_TERMIOS_H
- #define _KERNEL_TERMIOS_H 1
-diff -Nur uClibc-0.9.33.2/libc/termios/speed.c uClibc-git/libc/termios/speed.c
---- uClibc-0.9.33.2/libc/termios/speed.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/speed.c 2014-07-25 20:36:07.881340316 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcdrain.c uClibc-git/libc/termios/tcdrain.c
---- uClibc-0.9.33.2/libc/termios/tcdrain.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcdrain.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcflow.c uClibc-git/libc/termios/tcflow.c
---- uClibc-0.9.33.2/libc/termios/tcflow.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcflow.c 2014-07-25 20:36:07.881340316 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcflush.c uClibc-git/libc/termios/tcflush.c
---- uClibc-0.9.33.2/libc/termios/tcflush.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcflush.c 2014-07-25 20:36:07.881340316 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcgetattr.c uClibc-git/libc/termios/tcgetattr.c
---- uClibc-0.9.33.2/libc/termios/tcgetattr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcgetattr.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcgetpgrp.c uClibc-git/libc/termios/tcgetpgrp.c
---- uClibc-0.9.33.2/libc/termios/tcgetpgrp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcgetpgrp.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/ioctl.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcgetsid.c uClibc-git/libc/termios/tcgetsid.c
---- uClibc-0.9.33.2/libc/termios/tcgetsid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcgetsid.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcsendbrk.c uClibc-git/libc/termios/tcsendbrk.c
---- uClibc-0.9.33.2/libc/termios/tcsendbrk.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcsendbrk.c 2014-07-25 20:36:07.881340316 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stddef.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcsetattr.c uClibc-git/libc/termios/tcsetattr.c
---- uClibc-0.9.33.2/libc/termios/tcsetattr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcsetattr.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/termios/tcsetpgrp.c uClibc-git/libc/termios/tcsetpgrp.c
---- uClibc-0.9.33.2/libc/termios/tcsetpgrp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/termios/tcsetpgrp.c 2014-07-25 20:36:07.881340316 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <sys/ioctl.h>
-diff -Nur uClibc-0.9.33.2/libc/unistd/confstr.c uClibc-git/libc/unistd/confstr.c
---- uClibc-0.9.33.2/libc/unistd/confstr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/confstr.c 2014-07-25 20:36:07.893340380 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libc/unistd/daemon.c uClibc-git/libc/unistd/daemon.c
---- uClibc-0.9.33.2/libc/unistd/daemon.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/daemon.c 2014-07-25 20:36:07.893340380 +0200
-@@ -118,7 +118,7 @@
- {
- struct STAT st;
-
-- if ((fd = open_not_cancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
-+ if ((fd = open_not_cancel_2(_PATH_DEVNULL, O_RDWR)) != -1
- && (__builtin_expect (FSTAT (fd, &st), 0) == 0))
- {
- if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0) {
-diff -Nur uClibc-0.9.33.2/libc/unistd/exec.c uClibc-git/libc/unistd/exec.c
---- uClibc-0.9.33.2/libc/unistd/exec.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/exec.c 2014-07-25 20:36:07.893340380 +0200
-@@ -32,6 +32,8 @@
- /**********************************************************************/
- #define EXEC_FUNC_COMMON 0
- #define EXEC_FUNC_EXECVP 1
-+#define EXEC_FUNC_EXECVPE 2
-+
- #if defined(__ARCH_USE_MMU__)
-
- /* We have an MMU, so use alloca() to grab space for buffers and arg lists. */
-@@ -58,6 +60,7 @@
- * execle(a) -> execve(-)
- * execv(-) -> execve(-)
- * execvp(a) -> execve(-)
-+ * execvpe(a) -> execve(-)
- */
-
- # define EXEC_ALLOC_SIZE(VAR) /* nothing to do */
-@@ -68,7 +71,7 @@
-
- # ifdef L___exec_alloc
-
--void attribute_hidden *__exec_alloc(size_t size, int func)
-+void *__exec_alloc(size_t size, int func)
- {
- static void *common_cache, *execvp_cache;
- static size_t common_size, execvp_size;
-@@ -135,7 +138,7 @@
- /**********************************************************************/
- #ifdef L_execv
-
--int execv(__const char *path, char *__const argv[])
-+int execv(const char *path, char *const argv[])
- {
- return execve(path, argv, __environ);
- }
-@@ -219,15 +222,18 @@
-
- #endif
- /**********************************************************************/
--#ifdef L_execvp
-+#if defined (L_execvp) || defined(L_execvpe)
-
-
- /* Use a default path that matches glibc behavior, since SUSv3 says
- * this is implementation-defined. The default is current working dir,
- * /bin, and then /usr/bin. */
- static const char default_path[] = ":/bin:/usr/bin";
--
-+#if defined (L_execvp)
- int execvp(const char *path, char *const argv[])
-+#elif defined (L_execvpe)
-+int execvpe(const char *path, char *const argv[], char *const envp[])
-+#endif
- {
- char *buf = NULL;
- char *p;
-@@ -245,7 +251,11 @@
- }
-
- if (strchr(path, '/')) {
-+#if defined (L_execvp)
- execve(path, argv, __environ);
-+#elif defined (L_execvpe)
-+ execve(path, argv, envp);
-+#endif
- if (errno == ENOEXEC) {
- char **nargv;
- EXEC_ALLOC_SIZE(size2) /* Do NOT add a semicolon! */
-@@ -254,11 +264,19 @@
- /* Need the dimension - 1. We omit counting the trailing
- * NULL but we actually omit the first entry. */
- for (n=0 ; argv[n] ; n++) {}
-+#if defined (L_execvp)
- nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVP);
-+#elif defined (L_execvpe)
-+ nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVPE);
-+#endif
- nargv[0] = argv[0];
- nargv[1] = (char *)path;
- memcpy(nargv+2, argv+1, n*sizeof(char *));
-+#if defined (L_execvp)
- execve("/bin/sh", nargv, __environ);
-+#elif defined (L_execvpe)
-+ execve("/bin/sh", nargv, envp);
-+#endif
- EXEC_FREE(nargv, size2);
- }
- } else {
-@@ -277,8 +295,11 @@
- return -1;
- }
- len = (FILENAME_MAX - 1) - plen;
--
-+#if defined (L_execvp)
- buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVP);
-+#elif defined (L_execvpe)
-+ buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVPE);
-+#endif
- {
- int seen_small = 0;
- s0 = buf + len;
-@@ -300,8 +321,11 @@
- s[plen-1] = '/';
- }
-
-+#if defined (L_execvp)
- execve(s, argv, __environ);
--
-+#elif defined (L_execvpe)
-+ execve(s, argv, envp);
-+#endif
- seen_small = 1;
-
- if (errno == ENOEXEC) {
-@@ -325,7 +349,11 @@
-
- return -1;
- }
-+#if defined (L_execvp)
- libc_hidden_def(execvp)
--
-+#elif defined (L_execvpe)
-+libc_hidden_def(execvpe)
- #endif
-+
-+#endif /* #if defined (L_execvp) || defined(L_execvpe) */
- /**********************************************************************/
-diff -Nur uClibc-0.9.33.2/libc/unistd/execvpe.c uClibc-git/libc/unistd/execvpe.c
---- uClibc-0.9.33.2/libc/unistd/execvpe.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libc/unistd/execvpe.c 2014-07-25 20:36:07.893340380 +0200
-@@ -0,0 +1,7 @@
-+/* Copyright (C) 2011-2013 Hennning Heinold <heinold@inf.fu-berlin.de>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define L_execvpe
-+#include "exec.c"
-diff -Nur uClibc-0.9.33.2/libc/unistd/fpathconf.c uClibc-git/libc/unistd/fpathconf.c
---- uClibc-0.9.33.2/libc/unistd/fpathconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/fpathconf.c 2014-07-25 20:36:07.893340380 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libc/unistd/getopt.c uClibc-git/libc/unistd/getopt.c
---- uClibc-0.9.33.2/libc/unistd/getopt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/getopt.c 2014-07-25 20:36:07.893340380 +0200
-@@ -17,9 +17,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /*
- * Modified for uClibc by Manuel Novoa III on 1/5/01.
-@@ -36,9 +35,6 @@
- # include <config.h>
- #endif
-
--#define __FORCE_GLIBC
--#include <features.h>
--
- #include <stdio.h>
-
- /* Comment out all this code if we are using the GNU C Library, and are not
-@@ -62,7 +58,7 @@
-
- /* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
--#ifdef __GNU_LIBRARY__
-+#if defined __GNU_LIBRARY__ || defined __UCLIBC__
- /* Don't include stdlib.h for non-GNU C libraries because some of them
- contain conflicting prototypes for getopt. */
- # include <stdlib.h>
-@@ -75,22 +71,12 @@
- # include <unixlib.h>
- #endif
-
--#if !defined __UCLIBC__ && !defined __UCLIBC_HAS_GETTEXT_AWARENESS__
- #ifdef _LIBC
- # include <libintl.h>
- #else
- # include "gettext.h"
- # define _(msgid) gettext (msgid)
- #endif
--#else
--#ifdef __UCLIBC_MJN3_ONLY__
--#warning TODO: Enable gettext awareness.
--#endif /* __UCLIBC_MJN3_ONLY__ */
--
--#undef _
--#define _(X) X
--
--#endif
-
- /* Treat '-W foo' the same as the long option '--foo',
- * disabled for the moment since it costs about 2k... */
-@@ -161,7 +147,7 @@
- static struct _getopt_data getopt_data;
-
-
--#ifndef __GNU_LIBRARY__
-+#if !defined __GNU_LIBRARY__ && !defined __UCLIBC__
-
- /* Avoid depending on library functions or files
- whose names are inconsistent. */
-@@ -235,7 +221,7 @@
- d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;
- else
- {
-- memset (__mempcpy (new_str, __getopt_nonoption_flags,
-+ memset (mempcpy (new_str, __getopt_nonoption_flags,
- d->__nonoption_flags_max_len),
- '\0', top + 1 - d->__nonoption_flags_max_len);
- d->__nonoption_flags_max_len = top + 1;
-@@ -341,7 +327,7 @@
- if (__getopt_nonoption_flags == NULL)
- d->__nonoption_flags_max_len = -1;
- else
-- memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
-+ memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
- '\0', d->__nonoption_flags_max_len - len);
- }
- }
-diff -Nur uClibc-0.9.33.2/libc/unistd/getopt_int.h uClibc-git/libc/unistd/getopt_int.h
---- uClibc-0.9.33.2/libc/unistd/getopt_int.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/getopt_int.h 2014-07-25 20:36:07.893340380 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GETOPT_INT_H
- #define _GETOPT_INT_H 1
-diff -Nur uClibc-0.9.33.2/libc/unistd/getopt-susv3.c uClibc-git/libc/unistd/getopt-susv3.c
---- uClibc-0.9.33.2/libc/unistd/getopt-susv3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/getopt-susv3.c 2014-07-25 20:36:07.893340380 +0200
-@@ -22,14 +22,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <getopt.h>
--
--
--#ifdef __UCLIBC_MJN3_ONLY__
--#warning TODO: Enable gettext awareness.
--#endif /* __UCLIBC_MJN3_ONLY__ */
--
--#undef _
--#define _(X) X
-+#include <libintl.h>
-
- #ifdef __BCC__
- static const char missing[] = "option requires an argument";
-diff -Nur uClibc-0.9.33.2/libc/unistd/getpass.c uClibc-git/libc/unistd/getpass.c
---- uClibc-0.9.33.2/libc/unistd/getpass.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/getpass.c 2014-07-25 20:36:07.893340380 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/unistd/getsubopt.c uClibc-git/libc/unistd/getsubopt.c
---- uClibc-0.9.33.2/libc/unistd/getsubopt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/getsubopt.c 2014-07-25 20:36:07.893340380 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libc/unistd/Makefile.in uClibc-git/libc/unistd/Makefile.in
---- uClibc-0.9.33.2/libc/unistd/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/Makefile.in 2014-07-25 20:36:07.893340380 +0200
-@@ -10,39 +10,21 @@
- UNISTD_DIR := $(top_srcdir)libc/unistd
- UNISTD_OUT := $(top_builddir)libc/unistd
-
--CSRC := $(notdir $(wildcard $(UNISTD_DIR)/*.c))
--# multi source
--CSRC := $(filter-out exec.c,$(CSRC))
--
--ifeq ($(ARCH_USE_MMU),y)
--CSRC := $(filter-out __exec_alloc.c,$(CSRC))
--endif
--
--ifeq ($(UCLIBC_HAS_GNU_GETOPT),y)
--CSRC := $(filter-out getopt-susv3.c getopt_long-simple.c,$(CSRC))
--else
--CSRC := $(filter-out getopt.c,$(CSRC))
--ifneq ($(UCLIBC_HAS_GETOPT_LONG),y)
--CSRC := $(filter-out getopt_long-simple.c,$(CSRC))
--endif
--endif
--
--ifeq ($(UCLIBC_HAS_GNU_GETSUBOPT),y)
--CSRC := $(filter-out getsubopt-susv3.c,$(CSRC))
--else
--CSRC := $(filter-out getsubopt.c,$(CSRC))
--endif
--
--ifneq ($(UCLIBC_SUSV3_LEGACY),y)
--CSRC := $(filter-out ualarm.c usleep.c,$(CSRC))
--endif
--
--ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC := $(filter-out sleep.c,$(CSRC))
--endif
-+CSRC-y := $(notdir $(wildcard $(UNISTD_DIR)/*.c))
-+OMIT-y := exec.c # multi source
-+OMIT-$(ARCH_USE_MMU) += __exec_alloc.c
-+OMIT-$(if $(UCLIBC_SUSV3_LEGACY),,y) += ualarm.c usleep.c
-+#OMIT-$(UCLIBC_HAS_THREADS_NATIVE) += sleep.c
-+
-+# XXX: GNU_GETOPT comes with getopt_long unconditionally, which is wrong
-+GO_LONG := $(if $(UCLIBC_HAS_GNU_GETOPT),getopt_long-simple.c)
-+OMIT-y += $(if $(UCLIBC_HAS_GNU_GETOPT),getopt-susv3.c $(GO_LONG),getopt.c)
-+OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),getsubopt-susv3.c,getsubopt.c)
-
--UNISTD_SRC := $(patsubst %.c,$(UNISTD_DIR)/%.c,$(CSRC))
--UNISTD_OBJ := $(patsubst %.c,$(UNISTD_OUT)/%.o,$(CSRC))
-+CSRC-y := $(filter-out $(OMIT-y),$(CSRC-y))
-+
-+UNISTD_SRC := $(patsubst %.c,$(UNISTD_DIR)/%.c,$(CSRC-y))
-+UNISTD_OBJ := $(patsubst %.c,$(UNISTD_OUT)/%.o,$(CSRC-y))
-
- libc-y += $(UNISTD_OBJ)
-
-diff -Nur uClibc-0.9.33.2/libc/unistd/pathconf.c uClibc-git/libc/unistd/pathconf.c
---- uClibc-0.9.33.2/libc/unistd/pathconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/pathconf.c 2014-07-25 20:36:07.893340380 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* pathconf -- adjusted for busybox */
-
-diff -Nur uClibc-0.9.33.2/libc/unistd/sleep.c uClibc-git/libc/unistd/sleep.c
---- uClibc-0.9.33.2/libc/unistd/sleep.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/sleep.c 2014-07-25 20:36:07.893340380 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <time.h>
-@@ -99,6 +98,7 @@
- /* This is not necessary but some buggy programs depend on this. */
- if (seconds == 0) {
- # ifdef CANCELLATION_P
-+ int cancelhandling;
- CANCELLATION_P (THREAD_SELF);
- # endif
- return 0;
-diff -Nur uClibc-0.9.33.2/libc/unistd/sysconf.c uClibc-git/libc/unistd/sysconf.c
---- uClibc-0.9.33.2/libc/unistd/sysconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libc/unistd/sysconf.c 2014-07-25 20:36:07.893340380 +0200
-@@ -14,11 +14,11 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #define _XOPEN_SOURCE 500
- #include <features.h>
-+#include <ctype.h>
- #include <errno.h>
- #include <limits.h>
- #include <grp.h>
-@@ -981,20 +981,9 @@
- #endif
-
- case _SC_MONOTONIC_CLOCK:
--#ifdef __NR_clock_getres
-- /* Check using the clock_getres system call. */
--# ifdef __UCLIBC_HAS_THREADS_NATIVE__
-- {
-- struct timespec ts;
-- INTERNAL_SYSCALL_DECL (err);
-- int r;
-- r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
-- return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION;
-- }
--# elif defined __UCLIBC_HAS_REALTIME__
-+#if defined __UCLIBC_HAS_REALTIME__ && defined __NR_clock_getres
- if (clock_getres(CLOCK_MONOTONIC, NULL) >= 0)
- return _POSIX_VERSION;
--# endif
- #endif
- RETURN_NEG_1;
-
-diff -Nur uClibc-0.9.33.2/libcrypt/crypt.c uClibc-git/libcrypt/crypt.c
---- uClibc-0.9.33.2/libcrypt/crypt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/crypt.c 2014-07-25 20:36:07.909340464 +0200
-@@ -5,7 +5,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define __FORCE_GLIBC
- #include <unistd.h>
- #include <crypt.h>
- #include "libcrypt.h"
-diff -Nur uClibc-0.9.33.2/libcrypt/crypt_stub.c uClibc-git/libcrypt/crypt_stub.c
---- uClibc-0.9.33.2/libcrypt/crypt_stub.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/crypt_stub.c 2014-07-25 20:36:07.909340464 +0200
-@@ -5,7 +5,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#define __FORCE_GLIBC
- #include <crypt.h>
- #include <unistd.h>
- #include "libcrypt.h"
-diff -Nur uClibc-0.9.33.2/libcrypt/des.c uClibc-git/libcrypt/des.c
---- uClibc-0.9.33.2/libcrypt/des.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/des.c 2014-07-25 20:36:07.909340464 +0200
-@@ -56,7 +56,6 @@
- * alignment).
- */
-
--#define __FORCE_GLIBC
- #include <sys/cdefs.h>
- #include <sys/types.h>
- #include <sys/param.h>
-diff -Nur uClibc-0.9.33.2/libcrypt/sha256.c uClibc-git/libcrypt/sha256.c
---- uClibc-0.9.33.2/libcrypt/sha256.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/sha256.c 2014-07-25 20:36:07.909340464 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
-
-diff -Nur uClibc-0.9.33.2/libcrypt/sha256-crypt.c uClibc-git/libcrypt/sha256-crypt.c
---- uClibc-0.9.33.2/libcrypt/sha256-crypt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/sha256-crypt.c 2014-07-25 20:36:07.909340464 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libcrypt/sha256.h uClibc-git/libcrypt/sha256.h
---- uClibc-0.9.33.2/libcrypt/sha256.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/sha256.h 2014-07-25 20:36:07.909340464 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SHA256_H
- #define _SHA256_H 1
-diff -Nur uClibc-0.9.33.2/libcrypt/sha512.c uClibc-git/libcrypt/sha512.c
---- uClibc-0.9.33.2/libcrypt/sha512.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/sha512.c 2014-07-25 20:36:07.909340464 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
-
-diff -Nur uClibc-0.9.33.2/libcrypt/sha512-crypt.c uClibc-git/libcrypt/sha512-crypt.c
---- uClibc-0.9.33.2/libcrypt/sha512-crypt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/sha512-crypt.c 2014-07-25 20:36:07.909340464 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libcrypt/sha512.h uClibc-git/libcrypt/sha512.h
---- uClibc-0.9.33.2/libcrypt/sha512.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libcrypt/sha512.h 2014-07-25 20:36:07.909340464 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SHA512_H
- #define _SHA512_H 1
-diff -Nur uClibc-0.9.33.2/libm/carg.c uClibc-git/libm/carg.c
---- uClibc-0.9.33.2/libm/carg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/carg.c 2014-07-25 20:36:07.933340588 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <complex.h>
- #include <math.h>
-diff -Nur uClibc-0.9.33.2/libm/e_acos.c uClibc-git/libm/e_acos.c
---- uClibc-0.9.33.2/libm/e_acos.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_acos.c 2014-07-25 20:36:07.933340588 +0200
-@@ -52,7 +52,7 @@
- qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
- qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
-
--double attribute_hidden __ieee754_acos(double x)
-+double __ieee754_acos(double x)
- {
- double z,p,q,r,w,s,c,df;
- int32_t hx,ix;
-diff -Nur uClibc-0.9.33.2/libm/e_acosh.c uClibc-git/libm/e_acosh.c
---- uClibc-0.9.33.2/libm/e_acosh.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_acosh.c 2014-07-25 20:36:07.937340610 +0200
-@@ -30,7 +30,7 @@
- one = 1.0,
- ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */
-
--double attribute_hidden __ieee754_acosh(double x)
-+double __ieee754_acosh(double x)
- {
- double t;
- int32_t hx;
-diff -Nur uClibc-0.9.33.2/libm/e_asin.c uClibc-git/libm/e_asin.c
---- uClibc-0.9.33.2/libm/e_asin.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_asin.c 2014-07-25 20:36:07.937340610 +0200
-@@ -60,7 +60,7 @@
- qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
- qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
-
--double attribute_hidden __ieee754_asin(double x)
-+double __ieee754_asin(double x)
- {
- double t=0.0,w,p,q,c,r,s;
- int32_t hx,ix;
-diff -Nur uClibc-0.9.33.2/libm/e_atan2.c uClibc-git/libm/e_atan2.c
---- uClibc-0.9.33.2/libm/e_atan2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_atan2.c 2014-07-25 20:36:07.937340610 +0200
-@@ -47,7 +47,7 @@
- pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */
- pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
-
--double attribute_hidden __ieee754_atan2(double y, double x)
-+double __ieee754_atan2(double y, double x)
- {
- double z;
- int32_t k,m,hx,hy,ix,iy;
-diff -Nur uClibc-0.9.33.2/libm/e_atanh.c uClibc-git/libm/e_atanh.c
---- uClibc-0.9.33.2/libm/e_atanh.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_atanh.c 2014-07-25 20:36:07.937340610 +0200
-@@ -34,7 +34,7 @@
-
- static const double zero = 0.0;
-
--double attribute_hidden __ieee754_atanh(double x)
-+double __ieee754_atanh(double x)
- {
- double t;
- int32_t hx,ix;
-diff -Nur uClibc-0.9.33.2/libm/e_cosh.c uClibc-git/libm/e_cosh.c
---- uClibc-0.9.33.2/libm/e_cosh.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_cosh.c 2014-07-25 20:36:07.937340610 +0200
-@@ -35,7 +35,7 @@
-
- static const double one = 1.0, half=0.5, huge = 1.0e300;
-
--double attribute_hidden __ieee754_cosh(double x)
-+double __ieee754_cosh(double x)
- {
- double t,w;
- int32_t ix;
-diff -Nur uClibc-0.9.33.2/libm/e_exp.c uClibc-git/libm/e_exp.c
---- uClibc-0.9.33.2/libm/e_exp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_exp.c 2014-07-25 20:36:07.937340610 +0200
-@@ -93,7 +93,7 @@
- P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
- P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
-
--double attribute_hidden __ieee754_exp(double x) /* default IEEE double exp */
-+double __ieee754_exp(double x) /* default IEEE double exp */
- {
- double y;
- double hi = 0.0;
-diff -Nur uClibc-0.9.33.2/libm/e_fmod.c uClibc-git/libm/e_fmod.c
---- uClibc-0.9.33.2/libm/e_fmod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_fmod.c 2014-07-25 20:36:07.937340610 +0200
-@@ -20,7 +20,7 @@
-
- static const double one = 1.0, Zero[] = {0.0, -0.0,};
-
--double attribute_hidden __ieee754_fmod(double x, double y)
-+double __ieee754_fmod(double x, double y)
- {
- int32_t n,hx,hy,hz,ix,iy,sx,i;
- u_int32_t lx,ly,lz;
-diff -Nur uClibc-0.9.33.2/libm/e_hypot.c uClibc-git/libm/e_hypot.c
---- uClibc-0.9.33.2/libm/e_hypot.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_hypot.c 2014-07-25 20:36:07.937340610 +0200
-@@ -44,9 +44,9 @@
- #include "math.h"
- #include "math_private.h"
-
--double attribute_hidden __ieee754_hypot(double x, double y)
-+double __ieee754_hypot(double x, double y)
- {
-- double a=x,b=y,t1,t2,y1,y2,w;
-+ double a=x,b=y,t1,t2,_y1,y2,w;
- int32_t j,k,ha,hb;
-
- GET_HIGH_WORD(ha,x);
-@@ -100,13 +100,13 @@
- w = __ieee754_sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
- } else {
- a = a+a;
-- y1 = 0;
-- SET_HIGH_WORD(y1,hb);
-- y2 = b - y1;
-+ _y1 = 0;
-+ SET_HIGH_WORD(_y1,hb);
-+ y2 = b - _y1;
- t1 = 0;
- SET_HIGH_WORD(t1,ha+0x00100000);
- t2 = a - t1;
-- w = __ieee754_sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
-+ w = __ieee754_sqrt(t1*_y1-(w*(-w)-(t1*y2+t2*b)));
- }
- if(k!=0) {
- u_int32_t high;
-diff -Nur uClibc-0.9.33.2/libm/e_j0.c uClibc-git/libm/e_j0.c
---- uClibc-0.9.33.2/libm/e_j0.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_j0.c 2014-07-25 20:36:07.937340610 +0200
-@@ -76,7 +76,7 @@
-
- static const double zero = 0.0;
-
--double attribute_hidden __ieee754_j0(double x)
-+double __ieee754_j0(double x)
- {
- double z, s,c,ss,cc,r,u,v;
- int32_t hx,ix;
-@@ -153,7 +153,7 @@
- v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
- v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
-
--double attribute_hidden __ieee754_y0(double x)
-+double __ieee754_y0(double x)
- {
- double z, s,c,ss,cc,u,v;
- int32_t hx,ix,lx;
-diff -Nur uClibc-0.9.33.2/libm/e_j1.c uClibc-git/libm/e_j1.c
---- uClibc-0.9.33.2/libm/e_j1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_j1.c 2014-07-25 20:36:07.937340610 +0200
-@@ -77,7 +77,7 @@
-
- static const double zero = 0.0;
-
--double attribute_hidden __ieee754_j1(double x)
-+double __ieee754_j1(double x)
- {
- double z, s,c,ss,cc,r,u,v,y;
- int32_t hx,ix;
-@@ -150,7 +150,7 @@
- 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */
- };
-
--double attribute_hidden __ieee754_y1(double x)
-+double __ieee754_y1(double x)
- {
- double z, s,c,ss,cc,u,v;
- int32_t hx,ix,lx;
-diff -Nur uClibc-0.9.33.2/libm/e_jn.c uClibc-git/libm/e_jn.c
---- uClibc-0.9.33.2/libm/e_jn.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_jn.c 2014-07-25 20:36:07.937340610 +0200
-@@ -45,7 +45,7 @@
-
- static const double zero = 0.00000000000000000000e+00;
-
--double attribute_hidden __ieee754_jn(int n, double x)
-+double __ieee754_jn(int n, double x)
- {
- int32_t i,hx,ix,lx, sgn;
- double a, b, temp=0, di;
-@@ -217,7 +217,7 @@
- strong_alias(__ieee754_jn, jn)
- #endif
-
--double attribute_hidden __ieee754_yn(int n, double x)
-+double __ieee754_yn(int n, double x)
- {
- int32_t i,hx,ix,lx;
- int32_t sign;
-diff -Nur uClibc-0.9.33.2/libm/e_lgamma_r.c uClibc-git/libm/e_lgamma_r.c
---- uClibc-0.9.33.2/libm/e_lgamma_r.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_lgamma_r.c 2014-07-25 20:36:07.937340610 +0200
-@@ -197,7 +197,7 @@
- return -y;
- }
-
--double attribute_hidden __ieee754_lgamma_r(double x, int *signgamp)
-+double __ieee754_lgamma_r(double x, int *signgamp)
- {
- double t,y,z,nadj=0,p,p1,p2,p3,q,r,w;
- int i,hx,lx,ix;
-@@ -314,11 +314,12 @@
- #else
- strong_alias(__ieee754_lgamma_r, lgamma_r)
- #endif
-+libm_hidden_def(lgamma_r)
-
- /* __ieee754_lgamma(x)
- * Return the logarithm of the Gamma function of x.
- */
--double attribute_hidden __ieee754_lgamma(double x)
-+double __ieee754_lgamma(double x)
- {
- return __ieee754_lgamma_r(x, &signgam);
- }
-@@ -358,6 +359,7 @@
- strong_alias(__ieee754_lgamma_r, gamma_r)
- strong_alias(__ieee754_lgamma, gamma)
- #endif
-+libm_hidden_def(gamma)
-
-
- /* double tgamma(double x)
-diff -Nur uClibc-0.9.33.2/libm/e_log10.c uClibc-git/libm/e_log10.c
---- uClibc-0.9.33.2/libm/e_log10.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_log10.c 2014-07-25 20:36:07.937340610 +0200
-@@ -53,7 +53,7 @@
-
- static const double zero = 0.0;
-
--double attribute_hidden __ieee754_log10(double x)
-+double __ieee754_log10(double x)
- {
- double y,z;
- int32_t i,k,hx;
-diff -Nur uClibc-0.9.33.2/libm/e_log2.c uClibc-git/libm/e_log2.c
---- uClibc-0.9.33.2/libm/e_log2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_log2.c 2014-07-25 20:36:07.937340610 +0200
-@@ -116,3 +116,4 @@
- }
- }
- strong_alias(__ieee754_log2,log2)
-+libm_hidden_def(log2)
-diff -Nur uClibc-0.9.33.2/libm/e_log.c uClibc-git/libm/e_log.c
---- uClibc-0.9.33.2/libm/e_log.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_log.c 2014-07-25 20:36:07.937340610 +0200
-@@ -77,7 +77,7 @@
-
- static const double zero = 0.0;
-
--double attribute_hidden __ieee754_log(double x)
-+double __ieee754_log(double x)
- {
- double hfsq,f,s,z,R,w,t1,t2,dk;
- int32_t k,hx,i,j;
-diff -Nur uClibc-0.9.33.2/libm/e_pow.c uClibc-git/libm/e_pow.c
---- uClibc-0.9.33.2/libm/e_pow.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_pow.c 2014-07-25 20:36:07.937340610 +0200
-@@ -91,10 +91,10 @@
- ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
- ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
-
--double attribute_hidden __ieee754_pow(double x, double y)
-+double __ieee754_pow(double x, double y)
- {
- double z,ax,z_h,z_l,p_h,p_l;
-- double y1,t1,t2,r,s,t,u,v,w;
-+ double _y1,t1,t2,r,s,t,u,v,w;
- int32_t i,j,k,yisint,n;
- int32_t hx,hy,ix,iy;
- u_int32_t lx,ly;
-@@ -249,10 +249,10 @@
- s = -one;/* (-ve)**(odd int) */
-
- /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
-- y1 = y;
-- SET_LOW_WORD(y1,0);
-- p_l = (y-y1)*t1+y*t2;
-- p_h = y1*t1;
-+ _y1 = y;
-+ SET_LOW_WORD(_y1,0);
-+ p_l = (y-_y1)*t1+y*t2;
-+ p_h = _y1*t1;
- z = p_l+p_h;
- EXTRACT_WORDS(j,i,z);
- if (j>=0x40900000) { /* z >= 1024 */
-diff -Nur uClibc-0.9.33.2/libm/e_remainder.c uClibc-git/libm/e_remainder.c
---- uClibc-0.9.33.2/libm/e_remainder.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_remainder.c 2014-07-25 20:36:07.937340610 +0200
-@@ -23,7 +23,7 @@
-
- static const double zero = 0.0;
-
--double attribute_hidden __ieee754_remainder(double x, double p)
-+double __ieee754_remainder(double x, double p)
- {
- int32_t hx,hp;
- u_int32_t sx,lx,lp;
-diff -Nur uClibc-0.9.33.2/libm/e_rem_pio2.c uClibc-git/libm/e_rem_pio2.c
---- uClibc-0.9.33.2/libm/e_rem_pio2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_rem_pio2.c 2014-07-25 20:36:07.937340610 +0200
-@@ -66,7 +66,7 @@
- pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
- pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
-
--int32_t attribute_hidden __ieee754_rem_pio2(double x, double *y)
-+int32_t __ieee754_rem_pio2(double x, double *y)
- {
- double z=0.0,w,t,r,fn;
- double tx[3];
-diff -Nur uClibc-0.9.33.2/libm/e_scalb.c uClibc-git/libm/e_scalb.c
---- uClibc-0.9.33.2/libm/e_scalb.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_scalb.c 2014-07-25 20:36:07.937340610 +0200
-@@ -19,7 +19,7 @@
- #include "math_private.h"
- #include <errno.h>
-
--double attribute_hidden __ieee754_scalb(double x, double fn)
-+double __ieee754_scalb(double x, double fn)
- {
- if (isnan(x)||isnan(fn)) return x*fn;
- if (!isfinite(fn)) {
-@@ -55,5 +55,6 @@
- #else
- strong_alias(__ieee754_scalb, scalb)
- #endif
-+libm_hidden_def(scalb)
-
- #endif /* UCLIBC_SUSV3_LEGACY */
-diff -Nur uClibc-0.9.33.2/libm/e_sinh.c uClibc-git/libm/e_sinh.c
---- uClibc-0.9.33.2/libm/e_sinh.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_sinh.c 2014-07-25 20:36:07.937340610 +0200
-@@ -32,7 +32,7 @@
-
- static const double one = 1.0, shuge = 1.0e307;
-
--double attribute_hidden __ieee754_sinh(double x)
-+double __ieee754_sinh(double x)
- {
- double t,w,h;
- int32_t ix,jx;
-diff -Nur uClibc-0.9.33.2/libm/e_sqrt.c uClibc-git/libm/e_sqrt.c
---- uClibc-0.9.33.2/libm/e_sqrt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/e_sqrt.c 2014-07-25 20:36:07.937340610 +0200
-@@ -84,7 +84,7 @@
-
- static const double one = 1.0, tiny = 1.0e-300;
-
--double attribute_hidden __ieee754_sqrt(double x)
-+double __ieee754_sqrt(double x)
- {
- double z;
- int32_t sign = (int)0x80000000;
-diff -Nur uClibc-0.9.33.2/libm/i386/fclrexcpt.c uClibc-git/libm/i386/fclrexcpt.c
---- uClibc-0.9.33.2/libm/i386/fclrexcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fclrexcpt.c 2014-07-25 20:36:07.941340631 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/fedisblxcpt.c uClibc-git/libm/i386/fedisblxcpt.c
---- uClibc-0.9.33.2/libm/i386/fedisblxcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fedisblxcpt.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/feenablxcpt.c uClibc-git/libm/i386/feenablxcpt.c
---- uClibc-0.9.33.2/libm/i386/feenablxcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/feenablxcpt.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/fegetenv.c uClibc-git/libm/i386/fegetenv.c
---- uClibc-0.9.33.2/libm/i386/fegetenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fegetenv.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
-
-diff -Nur uClibc-0.9.33.2/libm/i386/fegetexcept.c uClibc-git/libm/i386/fegetexcept.c
---- uClibc-0.9.33.2/libm/i386/fegetexcept.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fegetexcept.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
-
-diff -Nur uClibc-0.9.33.2/libm/i386/fegetround.c uClibc-git/libm/i386/fegetround.c
---- uClibc-0.9.33.2/libm/i386/fegetround.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fegetround.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
-
-diff -Nur uClibc-0.9.33.2/libm/i386/feholdexcpt.c uClibc-git/libm/i386/feholdexcpt.c
---- uClibc-0.9.33.2/libm/i386/feholdexcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/feholdexcpt.c 2014-07-25 20:36:07.945340651 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/fesetenv.c uClibc-git/libm/i386/fesetenv.c
---- uClibc-0.9.33.2/libm/i386/fesetenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fesetenv.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <assert.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/fesetround.c uClibc-git/libm/i386/fesetround.c
---- uClibc-0.9.33.2/libm/i386/fesetround.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fesetround.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/feupdateenv.c uClibc-git/libm/i386/feupdateenv.c
---- uClibc-0.9.33.2/libm/i386/feupdateenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/feupdateenv.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/fgetexcptflg.c uClibc-git/libm/i386/fgetexcptflg.c
---- uClibc-0.9.33.2/libm/i386/fgetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fgetexcptflg.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
-
-diff -Nur uClibc-0.9.33.2/libm/i386/fraiseexcpt.c uClibc-git/libm/i386/fraiseexcpt.c
---- uClibc-0.9.33.2/libm/i386/fraiseexcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fraiseexcpt.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <math.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/fsetexcptflg.c uClibc-git/libm/i386/fsetexcptflg.c
---- uClibc-0.9.33.2/libm/i386/fsetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/fsetexcptflg.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <math.h>
-diff -Nur uClibc-0.9.33.2/libm/i386/ftestexcept.c uClibc-git/libm/i386/ftestexcept.c
---- uClibc-0.9.33.2/libm/i386/ftestexcept.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/i386/ftestexcept.c 2014-07-25 20:36:07.945340651 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libm/k_cos.c uClibc-git/libm/k_cos.c
---- uClibc-0.9.33.2/libm/k_cos.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/k_cos.c 2014-07-25 20:36:07.945340651 +0200
-@@ -56,7 +56,7 @@
- C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
- C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
-
--double attribute_hidden __kernel_cos(double x, double y)
-+double __kernel_cos(double x, double y)
- {
- double a,hz,z,r,qx;
- int32_t ix;
-diff -Nur uClibc-0.9.33.2/libm/k_rem_pio2.c uClibc-git/libm/k_rem_pio2.c
---- uClibc-0.9.33.2/libm/k_rem_pio2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/k_rem_pio2.c 2014-07-25 20:36:07.945340651 +0200
-@@ -147,7 +147,7 @@
- two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
- twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
-
--int attribute_hidden __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
-+int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
- {
- int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
- double z,fw,f[20],fq[20],q[20];
-diff -Nur uClibc-0.9.33.2/libm/k_sin.c uClibc-git/libm/k_sin.c
---- uClibc-0.9.33.2/libm/k_sin.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/k_sin.c 2014-07-25 20:36:07.945340651 +0200
-@@ -49,7 +49,7 @@
- S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
- S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
-
--double attribute_hidden __kernel_sin(double x, double y, int iy)
-+double __kernel_sin(double x, double y, int iy)
- {
- double z,r,v;
- int32_t ix;
-diff -Nur uClibc-0.9.33.2/libm/k_standard.c uClibc-git/libm/k_standard.c
---- uClibc-0.9.33.2/libm/k_standard.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/k_standard.c 2014-07-25 20:36:07.945340651 +0200
-@@ -598,6 +598,7 @@
- errno = EDOM;
- }
- break;
-+# ifdef __UCLIBC_SUSV3_LEGACY__
- case 32:
- case 132:
- /* scalb overflow; SVID also returns +-HUGE_VAL */
-@@ -622,6 +623,7 @@
- errno = ERANGE;
- }
- break;
-+# endif
- case 34:
- case 134:
- /* j0(|x|>X_TLOSS) */
-diff -Nur uClibc-0.9.33.2/libm/k_tan.c uClibc-git/libm/k_tan.c
---- uClibc-0.9.33.2/libm/k_tan.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/k_tan.c 2014-07-25 20:36:07.945340651 +0200
-@@ -66,7 +66,7 @@
- 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */
- };
-
--double attribute_hidden __kernel_tan(double x, double y, int iy)
-+double __kernel_tan(double x, double y, int iy)
- {
- double z,r,v,w,s;
- int32_t ix,hx;
-diff -Nur uClibc-0.9.33.2/libm/metag/fclrexcpt.c uClibc-git/libm/metag/fclrexcpt.c
---- uClibc-0.9.33.2/libm/metag/fclrexcpt.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fclrexcpt.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,44 @@
-+/* Clear given exceptions in current floating-point environment.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+#include "internal.h"
-+
-+int
-+feclearexcept (int excepts)
-+{
-+ unsigned int temp;
-+
-+ /* Get the current exceptions. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
-+
-+ /* Mask out unsupported bits/exceptions. */
-+ excepts &= FE_ALL_EXCEPT;
-+
-+ excepts <<= 16;
-+
-+ temp &= ~excepts;
-+
-+ metag_set_fpu_flags(temp);
-+
-+ /* Success. */
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fedisblxcpt.c uClibc-git/libm/metag/fedisblxcpt.c
---- uClibc-0.9.33.2/libm/metag/fedisblxcpt.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fedisblxcpt.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,40 @@
-+/* Disable floating-point exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+#include "internal.h"
-+
-+int
-+fedisableexcept (int excepts)
-+{
-+ unsigned int old_exc;
-+
-+ /* Get the current control word. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (old_exc));
-+
-+ old_exc &= FE_ALL_EXCEPT;
-+
-+ excepts = old_exc & ~excepts;
-+
-+ metag_set_fpu_flags(excepts);
-+
-+ return old_exc;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/feenablxcpt.c uClibc-git/libm/metag/feenablxcpt.c
---- uClibc-0.9.33.2/libm/metag/feenablxcpt.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/feenablxcpt.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,40 @@
-+/* Enable floating-point exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+#include "internal.h"
-+
-+int
-+feenableexcept (int excepts)
-+{
-+ unsigned int old_exc;
-+
-+ /* Get the current control word. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (old_exc));
-+
-+ old_exc &= FE_ALL_EXCEPT;
-+
-+ excepts |= old_exc;
-+
-+ metag_set_fpu_flags(excepts);
-+
-+ return old_exc;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fegetenv.c uClibc-git/libm/metag/fegetenv.c
---- uClibc-0.9.33.2/libm/metag/fegetenv.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fegetenv.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,36 @@
-+/* Store current floating-point environment.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+
-+int
-+fegetenv (fenv_t *envp)
-+{
-+ unsigned int txdefr;
-+ unsigned int txmode;
-+
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (txdefr));
-+ __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
-+
-+ envp->txdefr = txdefr;
-+ envp->txmode = txmode;
-+
-+ /* Success. */
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fegetexcept.c uClibc-git/libm/metag/fegetexcept.c
---- uClibc-0.9.33.2/libm/metag/fegetexcept.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fegetexcept.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,31 @@
-+/* Get enabled floating-point exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+
-+int
-+fegetexcept (void)
-+{
-+ unsigned int exc;
-+
-+ /* Get the current control word. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (exc));
-+
-+ return exc & FE_ALL_EXCEPT;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fegetround.c uClibc-git/libm/metag/fegetround.c
---- uClibc-0.9.33.2/libm/metag/fegetround.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fegetround.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,30 @@
-+/* Return current rounding direction.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+
-+int
-+fegetround (void)
-+{
-+ unsigned int txmode;
-+
-+ __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
-+
-+ return (txmode >> 16) & 0x3;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/feholdexcpt.c uClibc-git/libm/metag/feholdexcpt.c
---- uClibc-0.9.33.2/libm/metag/feholdexcpt.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/feholdexcpt.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,41 @@
-+/* Store current floating-point environment and clear exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+#include "internal.h"
-+
-+int
-+feholdexcept (fenv_t *envp)
-+{
-+ unsigned int txdefr;
-+ unsigned int txmode;
-+
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (txdefr));
-+ __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
-+
-+ envp->txdefr = txdefr;
-+ envp->txmode = txmode;
-+
-+ metag_set_fpu_flags(0);
-+
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fesetenv.c uClibc-git/libm/metag/fesetenv.c
---- uClibc-0.9.33.2/libm/metag/fesetenv.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fesetenv.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,60 @@
-+/* Install given floating-point environment.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <assert.h>
-+
-+#include "internal.h"
-+
-+libm_hidden_proto(fesetenv)
-+
-+int
-+fesetenv (const fenv_t *envp)
-+{
-+ unsigned int exc;
-+ unsigned int txmode;
-+
-+ __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
-+
-+ /* Clear rounding mode bits (round to nearest). */
-+ txmode &= ~(0x3 << 16);
-+
-+ if (envp == FE_DFL_ENV)
-+ {
-+ exc = 0;
-+ }
-+ else if (envp == FE_NOMASK_ENV)
-+ {
-+ exc = 0x1f;
-+ }
-+ else
-+ {
-+ exc = envp->txdefr & (FE_ALL_EXCEPT | (FE_ALL_EXCEPT << 16));
-+ /* Write rounding mode and guard bit. */
-+ txmode |= (0x1 << 18 ) | (envp->txmode & (0x3 << 16));
-+ }
-+
-+ __asm__ ("MOV TXMODE,%0" : : "r" (txmode));
-+
-+ metag_set_fpu_flags(exc);
-+
-+ /* Success. */
-+ return 0;
-+}
-+libm_hidden_def(fesetenv)
-diff -Nur uClibc-0.9.33.2/libm/metag/fesetround.c uClibc-git/libm/metag/fesetround.c
---- uClibc-0.9.33.2/libm/metag/fesetround.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fesetround.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,41 @@
-+/* Set current rounding direction.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+int
-+fesetround (int round)
-+{
-+ unsigned int txmode;
-+
-+ if ((round & ~0x3) != 0)
-+ /* ROUND is no valid rounding mode. */
-+ return 1;
-+
-+ __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
-+
-+ txmode &= ~(0x3 << 16);
-+ /* Write rounding mode and guard bit. */
-+ txmode |= (0x1 << 18 ) | (round << 16);
-+
-+ __asm__ ("MOV TXMODE,%0" : : "r" (txmode));
-+
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/feupdateenv.c uClibc-git/libm/metag/feupdateenv.c
---- uClibc-0.9.33.2/libm/metag/feupdateenv.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/feupdateenv.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,45 @@
-+/* Install given floating-point environment and raise exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+libm_hidden_proto(fesetenv)
-+libm_hidden_proto(feraiseexcept)
-+
-+int
-+feupdateenv (const fenv_t *envp)
-+{
-+ unsigned int temp;
-+
-+ /* Save current exceptions. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
-+
-+ temp >>= 16;
-+ temp &= FE_ALL_EXCEPT;
-+
-+ /* Install new environment. */
-+ fesetenv (envp);
-+
-+ /* Raise the saved exception. */
-+ feraiseexcept ((int) temp);
-+
-+ /* Success. */
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fgetexcptflg.c uClibc-git/libm/metag/fgetexcptflg.c
---- uClibc-0.9.33.2/libm/metag/fgetexcptflg.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fgetexcptflg.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,34 @@
-+/* Store current representation for exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+
-+int
-+fegetexceptflag (fexcept_t *flagp, int excepts)
-+{
-+ unsigned int temp;
-+
-+ /* Get the current exceptions. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
-+
-+ *flagp = temp & excepts & FE_ALL_EXCEPT;
-+
-+ /* Success. */
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/fraiseexcpt.c uClibc-git/libm/metag/fraiseexcpt.c
---- uClibc-0.9.33.2/libm/metag/fraiseexcpt.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fraiseexcpt.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,92 @@
-+/* Raise given exceptions.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <math.h>
-+
-+libm_hidden_proto(feraiseexcept)
-+
-+int
-+feraiseexcept (int excepts)
-+{
-+ /* Raise exceptions represented by EXPECTS. But we must raise only
-+ one signal at a time. It is important that if the overflow/underflow
-+ exception and the inexact exception are given at the same time,
-+ the overflow/underflow exception follows the inexact exception. */
-+
-+ /* First: invalid exception. */
-+ if ((FE_INVALID & excepts) != 0)
-+ {
-+ /* Reciprocal square root of a negative number is invalid. */
-+ __asm__ volatile(
-+ "F MOV FX.0,#0xc000 ! -2\n"
-+ "F RSQ FX.1,FX.0\n"
-+ );
-+ }
-+
-+ /* Next: division by zero. */
-+ if ((FE_DIVBYZERO & excepts) != 0)
-+ {
-+ __asm__ volatile(
-+ "F MOV FX.0,#0\n"
-+ "F RCP FX.1,FX.0\n"
-+ );
-+ }
-+
-+ /* Next: overflow. */
-+ if ((FE_OVERFLOW & excepts) != 0)
-+ {
-+ /* Adding a large number in single precision can cause overflow. */
-+ __asm__ volatile(
-+ " MOVT D0.0,#0x7f7f\n"
-+ " ADD D0.0,D0.0,#0xffff\n"
-+ "F MOV FX.0,D0.0\n"
-+ "F ADD FX.1,FX.0,FX.0\n"
-+ );
-+ }
-+
-+ /* Next: underflow. */
-+ if ((FE_UNDERFLOW & excepts) != 0)
-+ {
-+ /* Multiplying a small value by 0.5 will cause an underflow. */
-+ __asm__ volatile(
-+ " MOV D0.0,#1\n"
-+ "F MOV FX.0,D0.0\n"
-+ " MOVT D0.0,#0x3f00\n"
-+ "F MOV FX.1,D0.0\n"
-+ "F MUL FX.2,FX.1,FX.0\n"
-+ );
-+ }
-+
-+ /* Last: inexact. */
-+ if ((FE_INEXACT & excepts) != 0)
-+ {
-+ /* Converting a small single precision value to half precision
-+ can cause an inexact exception. */
-+ __asm__ volatile(
-+ " MOV D0.0,#0x0001\n"
-+ "F MOV FX.0,D0.0\n"
-+ "F FTOH FX.1,FX.0\n"
-+ );
-+ }
-+
-+ /* Success. */
-+ return 0;
-+}
-+libm_hidden_def(feraiseexcept)
-diff -Nur uClibc-0.9.33.2/libm/metag/fsetexcptflg.c uClibc-git/libm/metag/fsetexcptflg.c
---- uClibc-0.9.33.2/libm/metag/fsetexcptflg.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/fsetexcptflg.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,44 @@
-+/* Set floating-point environment exception handling.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <math.h>
-+#include <unistd.h>
-+
-+#include "internal.h"
-+
-+int
-+fesetexceptflag (const fexcept_t *flagp, int excepts)
-+{
-+ unsigned int temp;
-+
-+ /* Get the current exceptions. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
-+
-+ excepts &= FE_ALL_EXCEPT;
-+ excepts <<= 16;
-+
-+ temp &= ~excepts;
-+ temp |= *flagp & excepts;
-+
-+ metag_set_fpu_flags(temp);
-+
-+ /* Success. */
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/ftestexcept.c uClibc-git/libm/metag/ftestexcept.c
---- uClibc-0.9.33.2/libm/metag/ftestexcept.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/ftestexcept.c 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,32 @@
-+/* Test exception in current environment.
-+ Copyright (C) 2013 Imagination Technologies Ltd.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <fenv.h>
-+#include <unistd.h>
-+
-+int
-+fetestexcept (int excepts)
-+{
-+ unsigned int temp;
-+
-+ /* Get the current exceptions. */
-+ __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
-+
-+ return (temp >> 16) & excepts & FE_ALL_EXCEPT;
-+}
-diff -Nur uClibc-0.9.33.2/libm/metag/internal.h uClibc-git/libm/metag/internal.h
---- uClibc-0.9.33.2/libm/metag/internal.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/internal.h 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+void metag_set_fpu_flags(unsigned int flags);
-diff -Nur uClibc-0.9.33.2/libm/metag/Makefile.arch uClibc-git/libm/metag/Makefile.arch
---- uClibc-0.9.33.2/libm/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libm/metag/Makefile.arch 2014-07-25 20:36:07.957340715 +0200
-@@ -0,0 +1,23 @@
-+# Makefile for uClibc
-+#
-+# Copyright (c) 2013 Imagination Technologies Ltd.
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+ifeq ($(UCLIBC_HAS_FENV),y)
-+ifeq ($(CONFIG_META_2_1),y)
-+libm_ARCH_SRC:=$(wildcard $(libm_ARCH_DIR)/*.c)
-+libm_ARCH_OBJ:=$(patsubst $(libm_ARCH_DIR)/%.c,$(libm_ARCH_OUT)/%.o,$(libm_ARCH_SRC))
-+CFLAGS-libm += -Wa,-mfpu=metac21
-+endif
-+endif
-+
-+libm_ARCH_OBJS:=$(libm_ARCH_OBJ)
-+
-+ifeq ($(DOPIC),y)
-+libm-a-y+=$(libm_ARCH_OBJS:.o=.os)
-+else
-+libm-a-y+=$(libm_ARCH_OBJS)
-+endif
-+libm-so-y+=$(libm_ARCH_OBJS:.o=.os)
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fclrexcpt.c uClibc-git/libm/powerpc/e500/fpu/fclrexcpt.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fclrexcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fclrexcpt.c 2014-07-25 20:36:07.981340840 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #undef feclearexcept
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fedisblxcpt.c uClibc-git/libm/powerpc/e500/fpu/fedisblxcpt.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fedisblxcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fedisblxcpt.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #include <syscall.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feenablxcpt.c uClibc-git/libm/powerpc/e500/fpu/feenablxcpt.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feenablxcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/feenablxcpt.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #include <syscall.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetenv.c uClibc-git/libm/powerpc/e500/fpu/fegetenv.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fegetenv.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #include <syscall.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetexcept.c uClibc-git/libm/powerpc/e500/fpu/fegetexcept.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetexcept.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fegetexcept.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetround.c uClibc-git/libm/powerpc/e500/fpu/fegetround.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetround.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fegetround.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feholdexcpt.c uClibc-git/libm/powerpc/e500/fpu/feholdexcpt.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feholdexcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/feholdexcpt.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #include <syscall.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fe_nomask.c uClibc-git/libm/powerpc/e500/fpu/fe_nomask.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fe_nomask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fe_nomask.c 2014-07-25 20:36:07.981340840 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fenv.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_const.c uClibc-git/libm/powerpc/e500/fpu/fenv_const.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_const.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fenv_const.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* If the default argument is used we use this value. */
- const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_libc.h uClibc-git/libm/powerpc/e500/fpu/fenv_libc.h
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_libc.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fenv_libc.h 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _FENV_LIBC_H
- #define _FENV_LIBC_H 1
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetenv.c uClibc-git/libm/powerpc/e500/fpu/fesetenv.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fesetenv.c 2014-07-25 20:36:07.981340840 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #include <syscall.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetround.c uClibc-git/libm/powerpc/e500/fpu/fesetround.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetround.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fesetround.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feupdateenv.c uClibc-git/libm/powerpc/e500/fpu/feupdateenv.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feupdateenv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/feupdateenv.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
- #include <syscall.h>
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fgetexcptflg.c uClibc-git/libm/powerpc/e500/fpu/fgetexcptflg.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fgetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fgetexcptflg.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fraiseexcpt.c uClibc-git/libm/powerpc/e500/fpu/fraiseexcpt.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fraiseexcpt.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fraiseexcpt.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fsetexcptflg.c uClibc-git/libm/powerpc/e500/fpu/fsetexcptflg.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fsetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/fsetexcptflg.c 2014-07-25 20:36:07.981340840 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/ftestexcept.c uClibc-git/libm/powerpc/e500/fpu/ftestexcept.c
---- uClibc-0.9.33.2/libm/powerpc/e500/fpu/ftestexcept.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/fpu/ftestexcept.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/spe-raise.c uClibc-git/libm/powerpc/e500/spe-raise.c
---- uClibc-0.9.33.2/libm/powerpc/e500/spe-raise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/powerpc/e500/spe-raise.c 2014-07-25 20:36:07.981340840 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "fpu/fenv_libc.h"
-
-diff -Nur uClibc-0.9.33.2/libm/s_ceil.c uClibc-git/libm/s_ceil.c
---- uClibc-0.9.33.2/libm/s_ceil.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_ceil.c 2014-07-25 20:36:07.981340840 +0200
-@@ -28,35 +28,35 @@
-
- double ceil(double x)
- {
-- int32_t i0,i1,j0;
-+ int32_t i0,i1,_j0;
- u_int32_t i,j;
- EXTRACT_WORDS(i0,i1,x);
-- j0 = ((i0>>20)&0x7ff)-0x3ff;
-- if(j0<20) {
-- if(j0<0) { /* raise inexact if x != 0 */
-+ _j0 = ((i0>>20)&0x7ff)-0x3ff;
-+ if(_j0<20) {
-+ if(_j0<0) { /* raise inexact if x != 0 */
- if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
- if(i0<0) {i0=0x80000000;i1=0;}
- else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
- }
- } else {
-- i = (0x000fffff)>>j0;
-+ i = (0x000fffff)>>_j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
-- if(i0>0) i0 += (0x00100000)>>j0;
-+ if(i0>0) i0 += (0x00100000)>>_j0;
- i0 &= (~i); i1=0;
- }
- }
-- } else if (j0>51) {
-- if(j0==0x400) return x+x; /* inf or NaN */
-+ } else if (_j0>51) {
-+ if(_j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
-- i = ((u_int32_t)(0xffffffff))>>(j0-20);
-+ i = ((u_int32_t)(0xffffffff))>>(_j0-20);
- if((i1&i)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
- if(i0>0) {
-- if(j0==20) i0+=1;
-+ if(_j0==20) i0+=1;
- else {
-- j = i1 + (1<<(52-j0));
-+ j = i1 + (1<<(52-_j0));
- if(j<i1) i0+=1; /* got a carry */
- i1 = j;
- }
-diff -Nur uClibc-0.9.33.2/libm/s_floor.c uClibc-git/libm/s_floor.c
---- uClibc-0.9.33.2/libm/s_floor.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_floor.c 2014-07-25 20:36:07.981340840 +0200
-@@ -28,36 +28,36 @@
-
- double floor(double x)
- {
-- int32_t i0,i1,j0;
-+ int32_t i0,i1,_j0;
- u_int32_t i,j;
- EXTRACT_WORDS(i0,i1,x);
-- j0 = ((i0>>20)&0x7ff)-0x3ff;
-- if(j0<20) {
-- if(j0<0) { /* raise inexact if x != 0 */
-+ _j0 = ((i0>>20)&0x7ff)-0x3ff;
-+ if(_j0<20) {
-+ if(_j0<0) { /* raise inexact if x != 0 */
- if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
- if(i0>=0) {i0=i1=0;}
- else if(((i0&0x7fffffff)|i1)!=0)
- { i0=0xbff00000;i1=0;}
- }
- } else {
-- i = (0x000fffff)>>j0;
-+ i = (0x000fffff)>>_j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
-- if(i0<0) i0 += (0x00100000)>>j0;
-+ if(i0<0) i0 += (0x00100000)>>_j0;
- i0 &= (~i); i1=0;
- }
- }
-- } else if (j0>51) {
-- if(j0==0x400) return x+x; /* inf or NaN */
-+ } else if (_j0>51) {
-+ if(_j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
-- i = ((u_int32_t)(0xffffffff))>>(j0-20);
-+ i = ((u_int32_t)(0xffffffff))>>(_j0-20);
- if((i1&i)==0) return x; /* x is integral */
- if(huge+x>0.0) { /* raise inexact flag */
- if(i0<0) {
-- if(j0==20) i0+=1;
-+ if(_j0==20) i0+=1;
- else {
-- j = i1+(1<<(52-j0));
-+ j = i1+(1<<(52-_j0));
- if(j<i1) i0 +=1 ; /* got a carry */
- i1=j;
- }
-diff -Nur uClibc-0.9.33.2/libm/s_fma.c uClibc-git/libm/s_fma.c
---- uClibc-0.9.33.2/libm/s_fma.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_fma.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
-
-diff -Nur uClibc-0.9.33.2/libm/s_fpclassify.c uClibc-git/libm/s_fpclassify.c
---- uClibc-0.9.33.2/libm/s_fpclassify.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_fpclassify.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
-
-diff -Nur uClibc-0.9.33.2/libm/s_fpclassifyf.c uClibc-git/libm/s_fpclassifyf.c
---- uClibc-0.9.33.2/libm/s_fpclassifyf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_fpclassifyf.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
- #include "math_private.h"
-diff -Nur uClibc-0.9.33.2/libm/s_llrint.c uClibc-git/libm/s_llrint.c
---- uClibc-0.9.33.2/libm/s_llrint.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_llrint.c 2014-07-25 20:36:07.981340840 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- /* Prevent math.h from defining a colliding inline */
-@@ -34,7 +33,7 @@
- long long int
- llrint (double x)
- {
-- int32_t j0;
-+ int32_t _j0;
- u_int32_t i1, i0;
- long long int result;
- volatile double w;
-@@ -42,39 +41,39 @@
- int sx;
-
- EXTRACT_WORDS (i0, i1, x);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- sx = i0 >> 31;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- if (j0 < 20)
-+ if (_j0 < 20)
- {
- w = two52[sx] + x;
- t = w - two52[sx];
- EXTRACT_WORDS (i0, i1, t);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- result = (j0 < 0 ? 0 : i0 >> (20 - j0));
-+ result = (_j0 < 0 ? 0 : i0 >> (20 - _j0));
- }
-- else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
-+ else if (_j0 < (int32_t) (8 * sizeof (long long int)) - 1)
- {
-- if (j0 >= 52)
-- result = (((long long int) i0 << 32) | i1) << (j0 - 52);
-+ if (_j0 >= 52)
-+ result = (((long long int) i0 << 32) | i1) << (_j0 - 52);
- else
- {
- w = two52[sx] + x;
- t = w - two52[sx];
- EXTRACT_WORDS (i0, i1, t);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- if (j0 == 20)
-+ if (_j0 == 20)
- result = (long long int) i0;
- else
-- result = ((long long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
-+ result = ((long long int) i0 << (_j0 - 20)) | (i1 >> (52 - _j0));
- }
- }
- else
-diff -Nur uClibc-0.9.33.2/libm/s_llround.c uClibc-git/libm/s_llround.c
---- uClibc-0.9.33.2/libm/s_llround.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_llround.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
- #include "math_private.h"
-@@ -24,42 +23,42 @@
- long long int
- llround (double x)
- {
-- int32_t j0;
-+ int32_t _j0;
- u_int32_t i1, i0;
- long long int result;
- int sign;
-
- EXTRACT_WORDS (i0, i1, x);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- sign = (i0 & 0x80000000) != 0 ? -1 : 1;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- if (j0 < 20)
-+ if (_j0 < 20)
- {
-- if (j0 < 0)
-- return j0 < -1 ? 0 : sign;
-+ if (_j0 < 0)
-+ return _j0 < -1 ? 0 : sign;
- else
- {
-- i0 += 0x80000 >> j0;
-+ i0 += 0x80000 >> _j0;
-
-- result = i0 >> (20 - j0);
-+ result = i0 >> (20 - _j0);
- }
- }
-- else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
-+ else if (_j0 < (int32_t) (8 * sizeof (long long int)) - 1)
- {
-- if (j0 >= 52)
-- result = (((long long int) i0 << 32) | i1) << (j0 - 52);
-+ if (_j0 >= 52)
-+ result = (((long long int) i0 << 32) | i1) << (_j0 - 52);
- else
- {
-- u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
-+ u_int32_t j = i1 + (0x80000000 >> (_j0 - 20));
- if (j < i1)
- ++i0;
-
-- if (j0 == 20)
-+ if (_j0 == 20)
- result = (long long int) i0;
- else
-- result = ((long long int) i0 << (j0 - 20)) | (j >> (52 - j0));
-+ result = ((long long int) i0 << (_j0 - 20)) | (j >> (52 - _j0));
- }
- }
- else
-diff -Nur uClibc-0.9.33.2/libm/s_lrint.c uClibc-git/libm/s_lrint.c
---- uClibc-0.9.33.2/libm/s_lrint.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_lrint.c 2014-07-25 20:36:07.981340840 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- /* Prevent math.h from defining a colliding inline */
-@@ -35,7 +34,7 @@
- long int
- lrint (double x)
- {
-- int32_t j0;
-+ int32_t _j0;
- u_int32_t i0,i1;
- volatile double w;
- double t;
-@@ -43,44 +42,44 @@
- int sx;
-
- EXTRACT_WORDS (i0, i1, x);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- sx = i0 >> 31;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- if (j0 < 20)
-+ if (_j0 < 20)
- {
-- if (j0 < -1)
-+ if (_j0 < -1)
- return 0;
- else
- {
- w = two52[sx] + x;
- t = w - two52[sx];
- EXTRACT_WORDS (i0, i1, t);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- result = i0 >> (20 - j0);
-+ result = i0 >> (20 - _j0);
- }
- }
-- else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
-+ else if (_j0 < (int32_t) (8 * sizeof (long int)) - 1)
- {
-- if (j0 >= 52)
-- result = ((long int) i0 << (j0 - 20)) | (i1 << (j0 - 52));
-+ if (_j0 >= 52)
-+ result = ((long int) i0 << (_j0 - 20)) | (i1 << (_j0 - 52));
- else
- {
- w = two52[sx] + x;
- t = w - two52[sx];
- EXTRACT_WORDS (i0, i1, t);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- if (j0 == 20)
-+ if (_j0 == 20)
- result = (long int) i0;
- else
-- result = ((long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
-+ result = ((long int) i0 << (_j0 - 20)) | (i1 >> (52 - _j0));
- }
- }
- else
-diff -Nur uClibc-0.9.33.2/libm/s_lround.c uClibc-git/libm/s_lround.c
---- uClibc-0.9.33.2/libm/s_lround.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_lround.c 2014-07-25 20:36:07.981340840 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
- #include "math_private.h"
-@@ -24,42 +23,42 @@
- long int
- lround (double x)
- {
-- int32_t j0;
-+ int32_t _j0;
- u_int32_t i1, i0;
- long int result;
- int sign;
-
- EXTRACT_WORDS (i0, i1, x);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- sign = (i0 & 0x80000000) != 0 ? -1 : 1;
- i0 &= 0xfffff;
- i0 |= 0x100000;
-
-- if (j0 < 20)
-+ if (_j0 < 20)
- {
-- if (j0 < 0)
-- return j0 < -1 ? 0 : sign;
-+ if (_j0 < 0)
-+ return _j0 < -1 ? 0 : sign;
- else
- {
-- i0 += 0x80000 >> j0;
-+ i0 += 0x80000 >> _j0;
-
-- result = i0 >> (20 - j0);
-+ result = i0 >> (20 - _j0);
- }
- }
-- else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
-+ else if (_j0 < (int32_t) (8 * sizeof (long int)) - 1)
- {
-- if (j0 >= 52)
-- result = ((long int) i0 << (j0 - 20)) | (i1 << (j0 - 52));
-+ if (_j0 >= 52)
-+ result = ((long int) i0 << (_j0 - 20)) | (i1 << (_j0 - 52));
- else
- {
-- u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
-+ u_int32_t j = i1 + (0x80000000 >> (_j0 - 20));
- if (j < i1)
- ++i0;
-
-- if (j0 == 20)
-+ if (_j0 == 20)
- result = (long int) i0;
- else
-- result = ((long int) i0 << (j0 - 20)) | (j >> (52 - j0));
-+ result = ((long int) i0 << (_j0 - 20)) | (j >> (52 - _j0));
- }
- }
- else
-diff -Nur uClibc-0.9.33.2/libm/s_modf.c uClibc-git/libm/s_modf.c
---- uClibc-0.9.33.2/libm/s_modf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_modf.c 2014-07-25 20:36:07.981340840 +0200
-@@ -26,16 +26,16 @@
-
- double modf(double x, double *iptr)
- {
-- int32_t i0,i1,j0;
-+ int32_t i0,i1,_j0;
- u_int32_t i;
- EXTRACT_WORDS(i0,i1,x);
-- j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
-- if(j0<20) { /* integer part in high x */
-- if(j0<0) { /* |x|<1 */
-+ _j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
-+ if(_j0<20) { /* integer part in high x */
-+ if(_j0<0) { /* |x|<1 */
- INSERT_WORDS(*iptr,i0&0x80000000,0); /* *iptr = +-0 */
- return x;
- } else {
-- i = (0x000fffff)>>j0;
-+ i = (0x000fffff)>>_j0;
- if(((i0&i)|i1)==0) { /* x is integral */
- *iptr = x;
- INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
-@@ -45,15 +45,15 @@
- return x - *iptr;
- }
- }
-- } else if (j0>51) { /* no fraction part */
-+ } else if (_j0>51) { /* no fraction part */
- *iptr = x*one;
- /* We must handle NaNs separately. */
-- if (j0 == 0x400 && ((i0 & 0xfffff) | i1))
-+ if (_j0 == 0x400 && ((i0 & 0xfffff) | i1))
- return x*one;
- INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
- return x;
- } else { /* fraction part in low x */
-- i = ((u_int32_t)(0xffffffff))>>(j0-20);
-+ i = ((u_int32_t)(0xffffffff))>>(_j0-20);
- if((i1&i)==0) { /* x is integral */
- *iptr = x;
- INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
-diff -Nur uClibc-0.9.33.2/libm/s_rint.c uClibc-git/libm/s_rint.c
---- uClibc-0.9.33.2/libm/s_rint.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_rint.c 2014-07-25 20:36:07.981340840 +0200
-@@ -30,7 +30,7 @@
-
- double rint(double x)
- {
-- int32_t i0, j0, sx;
-+ int32_t i0, _j0, sx;
- u_int32_t i,i1;
- double t;
- /* We use w = x + 2^52; t = w - 2^52; trick to round x to integer.
-@@ -43,11 +43,11 @@
-
- EXTRACT_WORDS(i0,i1,x);
- /* Unbiased exponent */
-- j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
-+ _j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
-
-- if (j0 > 51) {
-+ if (_j0 > 51) {
- //Why bother? Just returning x works too
-- //if (j0 == 0x400) /* inf or NaN */
-+ //if (_j0 == 0x400) /* inf or NaN */
- // return x+x;
- return x; /* x is integral */
- }
-@@ -55,8 +55,8 @@
- /* Sign */
- sx = ((u_int32_t)i0) >> 31;
-
-- if (j0<20) {
-- if (j0<0) { /* |x| < 1 */
-+ if (_j0<20) {
-+ if (_j0<0) { /* |x| < 1 */
- if (((i0&0x7fffffff)|i1)==0) return x;
- i1 |= (i0&0x0fffff);
- i0 &= 0xfffe0000;
-@@ -68,19 +68,19 @@
- SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
- return t;
- } else {
-- i = (0x000fffff)>>j0;
-+ i = (0x000fffff)>>_j0;
- if (((i0&i)|i1)==0) return x; /* x is integral */
- i>>=1;
- if (((i0&i)|i1)!=0) {
-- if (j0==19) i1 = 0x40000000;
-- else i0 = (i0&(~i))|((0x20000)>>j0);
-+ if (_j0==19) i1 = 0x40000000;
-+ else i0 = (i0&(~i))|((0x20000)>>_j0);
- }
- }
- } else {
-- i = ((u_int32_t)(0xffffffff))>>(j0-20);
-+ i = ((u_int32_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));
-+ if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(_j0-20));
- }
- INSERT_WORDS(x,i0,i1);
- w = TWO52[sx]+x;
-diff -Nur uClibc-0.9.33.2/libm/s_round.c uClibc-git/libm/s_round.c
---- uClibc-0.9.33.2/libm/s_round.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_round.c 2014-07-25 20:36:07.985340862 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
- #include "math_private.h"
-@@ -26,41 +25,41 @@
- double
- round (double x)
- {
-- int32_t i0, j0;
-+ int32_t i0, _j0;
- u_int32_t i1;
-
- EXTRACT_WORDS (i0, i1, x);
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-- if (j0 < 20)
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ if (_j0 < 20)
- {
-- if (j0 < 0)
-+ if (_j0 < 0)
- {
- if (huge + x > 0.0)
- {
- i0 &= 0x80000000;
-- if (j0 == -1)
-+ if (_j0 == -1)
- i0 |= 0x3ff00000;
- i1 = 0;
- }
- }
- else
- {
-- u_int32_t i = 0x000fffff >> j0;
-+ u_int32_t i = 0x000fffff >> _j0;
- if (((i0 & i) | i1) == 0)
- /* X is integral. */
- return x;
- if (huge + x > 0.0)
- {
- /* Raise inexact if x != 0. */
-- i0 += 0x00080000 >> j0;
-+ i0 += 0x00080000 >> _j0;
- i0 &= ~i;
- i1 = 0;
- }
- }
- }
-- else if (j0 > 51)
-+ else if (_j0 > 51)
- {
-- if (j0 == 0x400)
-+ if (_j0 == 0x400)
- /* Inf or NaN. */
- return x + x;
- else
-@@ -68,7 +67,7 @@
- }
- else
- {
-- u_int32_t i = 0xffffffff >> (j0 - 20);
-+ u_int32_t i = 0xffffffff >> (_j0 - 20);
- if ((i1 & i) == 0)
- /* X is integral. */
- return x;
-@@ -76,7 +75,7 @@
- if (huge + x > 0.0)
- {
- /* Raise inexact if x != 0. */
-- u_int32_t j = i1 + (1 << (51 - j0));
-+ u_int32_t j = i1 + (1 << (51 - _j0));
- if (j < i1)
- i0 += 1;
- i1 = j;
-diff -Nur uClibc-0.9.33.2/libm/s_scalbn.c uClibc-git/libm/s_scalbn.c
---- uClibc-0.9.33.2/libm/s_scalbn.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_scalbn.c 2014-07-25 20:36:07.985340862 +0200
-@@ -62,12 +62,7 @@
- libm_hidden_def(scalbln)
-
- #if LONG_MAX == INT_MAX
--/* strong_alias(scalbln, scalbn) - "error: conflicting types for 'scalbn'"
-- * because it tries to declare "typeof(scalbln) scalbn;"
-- * which tries to give "long" parameter to scalbn.
-- * Doing it by hand:
-- */
--__typeof(scalbn) scalbn __attribute__((alias("scalbln")));
-+strong_alias_untyped(scalbln,scalbn)
- #else
- double scalbn(double x, int n)
- {
-diff -Nur uClibc-0.9.33.2/libm/s_signbit.c uClibc-git/libm/s_signbit.c
---- uClibc-0.9.33.2/libm/s_signbit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_signbit.c 2014-07-25 20:36:07.985340862 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- /* Prevent math.h from defining a colliding inline */
-diff -Nur uClibc-0.9.33.2/libm/s_signbitf.c uClibc-git/libm/s_signbitf.c
---- uClibc-0.9.33.2/libm/s_signbitf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_signbitf.c 2014-07-25 20:36:07.985340862 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- /* Prevent math.h from defining a colliding inline */
-diff -Nur uClibc-0.9.33.2/libm/s_significand.c uClibc-git/libm/s_significand.c
---- uClibc-0.9.33.2/libm/s_significand.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_significand.c 2014-07-25 20:36:07.985340862 +0200
-@@ -22,3 +22,4 @@
- {
- return __ieee754_scalb(x,(double) -ilogb(x));
- }
-+libm_hidden_def(significand)
-diff -Nur uClibc-0.9.33.2/libm/s_trunc.c uClibc-git/libm/s_trunc.c
---- uClibc-0.9.33.2/libm/s_trunc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libm/s_trunc.c 2014-07-25 20:36:07.985340862 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <math.h>
- #include "math_private.h"
-@@ -24,30 +23,30 @@
- double
- trunc (double x)
- {
-- int32_t i0, j0;
-+ int32_t i0, _j0;
- u_int32_t i1;
- int sx;
-
- EXTRACT_WORDS (i0, i1, x);
- sx = i0 & 0x80000000;
-- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-- if (j0 < 20)
-+ _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
-+ if (_j0 < 20)
- {
-- if (j0 < 0)
-+ if (_j0 < 0)
- /* The magnitude of the number is < 1 so the result is +-0. */
- INSERT_WORDS (x, sx, 0);
- else
-- INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0);
-+ INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> _j0)), 0);
- }
-- else if (j0 > 51)
-+ else if (_j0 > 51)
- {
-- if (j0 == 0x400)
-+ if (_j0 == 0x400)
- /* x is inf or NaN. */
- return x + x;
- }
- else
- {
-- INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (j0 - 20)));
-+ INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (_j0 - 20)));
- }
-
- return x;
-diff -Nur uClibc-0.9.33.2/libnsl/nsl.c uClibc-git/libnsl/nsl.c
---- uClibc-0.9.33.2/libnsl/nsl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libnsl/nsl.c 2014-07-25 20:36:08.001340946 +0200
-@@ -7,8 +7,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--
- void __stub2(void);
- void __stub2(void)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/alloca_cutoff.c uClibc-git/libpthread/linuxthreads/alloca_cutoff.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/alloca_cutoff.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/alloca_cutoff.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <alloca.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/attr.c uClibc-git/libpthread/linuxthreads/attr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/attr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/attr.c 2014-07-25 20:36:08.193341950 +0200
-@@ -361,7 +361,7 @@
- attr->__scope = PTHREAD_SCOPE_SYSTEM;
-
- #ifdef _STACK_GROWS_DOWN
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- attr->__stacksize = descr->p_stackaddr - (char *)descr->p_guardaddr
- - descr->p_guardsize;
- # else
-@@ -369,7 +369,7 @@
- - descr->p_guardsize;
- # endif
- #else
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- attr->__stacksize = (char *)descr->p_guardaddr - descr->p_stackaddr;
- # else
- attr->__stacksize = (char *)descr->p_guardaddr - (char *)descr;
-@@ -385,7 +385,7 @@
- otherwise the range of the stack area cannot be computed. */
- attr->__stacksize += attr->__guardsize;
- #endif
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- attr->__stackaddr = descr->p_stackaddr;
- #else
- # ifndef _STACK_GROWS_UP
-@@ -395,7 +395,7 @@
- # endif
- #endif
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- if (attr->__stackaddr == NULL)
- #else
- if (descr == &__pthread_initial_thread)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/barrier.c uClibc-git/libpthread/linuxthreads/barrier.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/barrier.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/barrier.c 2014-07-25 20:36:08.193341950 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthread.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/cancel.c uClibc-git/libpthread/linuxthreads/cancel.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/cancel.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/cancel.c 2014-07-25 20:36:08.193341950 +0200
-@@ -15,7 +15,6 @@
- /* Thread cancellation */
-
- #include <errno.h>
--#include <libc-internal.h>
- #include "pthread.h"
- #include "internals.h"
- #include "spinlock.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/.cvsignore uClibc-git/libpthread/linuxthreads/.cvsignore
---- uClibc-0.9.33.2/libpthread/linuxthreads/.cvsignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/.cvsignore 1970-01-01 01:00:00.000000000 +0100
-@@ -1,3 +0,0 @@
--.cvsignore
--*.os
--Makefile.in
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/descr.h uClibc-git/libpthread/linuxthreads/descr.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/descr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/descr.h 2014-07-25 20:36:08.193341950 +0200
-@@ -23,7 +23,7 @@
- #include <stdint.h>
- #include <sys/types.h>
- #include <hp-timing.h>
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- #include <tls.h>
- #endif
- #include "uClibc-glue.h"
-@@ -112,7 +112,7 @@
-
- struct _pthread_descr_struct
- {
--#if !defined USE_TLS || !TLS_DTV_AT_TP || INCLUDE_TLS_PADDING
-+#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP || INCLUDE_TLS_PADDING
- /* This overlaps tcbhead_t (see tls.h), as used for TLS without threads. */
- union
- {
-@@ -157,7 +157,7 @@
- char p_sigwaiting; /* true if a sigwait() is in progress */
- struct pthread_start_args p_start_args; /* arguments for thread creation */
- void ** p_specific[PTHREAD_KEY_1STLEVEL_SIZE]; /* thread-specific data */
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- void * p_libc_specific[_LIBC_TSD_KEY_N]; /* thread-specific data for libc */
- int * p_errnop; /* pointer to used errno variable */
- int p_errno; /* error returned by last system call */
-@@ -185,7 +185,7 @@
- #if HP_TIMING_AVAIL
- hp_timing_t p_cpuclock_offset; /* Initial CPU clock for thread. */
- #endif
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- char *p_stackaddr; /* Stack address. */
- #endif
- size_t p_alloca_cutoff; /* Maximum size which should be allocated
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/errno.c uClibc-git/libpthread/linuxthreads/errno.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/errno.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/errno.c 2014-07-25 20:36:08.193341950 +0200
-@@ -20,7 +20,7 @@
- #include "pthread.h"
- #include "internals.h"
-
--#if !USE_TLS || !HAVE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- /* The definition in libc is sufficient if we use TLS. */
- int *
- __errno_location (void)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/events.c uClibc-git/libpthread/linuxthreads/events.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/events.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/events.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The functions contained here do nothing, they just return. */
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/forward.c uClibc-git/libpthread/linuxthreads/forward.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/forward.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/forward.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <stdlib.h>
-@@ -26,7 +25,7 @@
- #include "internals.h"
-
- /* Pointers to the libc functions. */
--struct pthread_functions __libc_pthread_functions attribute_hidden;
-+struct pthread_functions __libc_pthread_functions;
-
-
- # define FORWARD2(name, rettype, decl, params, defaction) \
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/internals.h uClibc-git/libpthread/linuxthreads/internals.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/internals.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/internals.h 2014-07-25 20:36:08.193341950 +0200
-@@ -30,7 +30,7 @@
- #include <bits/sigcontextinfo.h>
- #include <bits/pthreadtypes.h>
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- #include <tls.h>
- #endif
- #include "descr.h"
-@@ -200,19 +200,17 @@
-
- /* The page size we can get from the system. This should likely not be
- changed by the machine file but, you never know. */
--#ifndef PAGE_SIZE
--#define PAGE_SIZE (sysconf (_SC_PAGE_SIZE))
--#endif
-+#define __PAGE_SIZE (sysconf (_SC_PAGESIZE))
-
--/* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
-+/* The initial size of the thread stack. Must be a multiple of __PAGE_SIZE. */
- #ifndef INITIAL_STACK_SIZE
--#define INITIAL_STACK_SIZE (4 * PAGE_SIZE)
-+#define INITIAL_STACK_SIZE (4 * __PAGE_SIZE)
- #endif
-
- /* Size of the thread manager stack. The "- 32" avoids wasting space
- with some malloc() implementations. */
- #ifndef THREAD_MANAGER_STACK_SIZE
--#define THREAD_MANAGER_STACK_SIZE (2 * PAGE_SIZE - 32)
-+#define THREAD_MANAGER_STACK_SIZE (2 * __PAGE_SIZE - 32)
- #endif
-
- /* The base of the "array" of thread stacks. The array will grow down from
-@@ -285,7 +283,7 @@
- extern void __pthread_perform_cleanup (char *currentframe);
- extern void __pthread_init_max_stacksize (void);
- extern int __pthread_initialize_manager (void);
--extern void __pthread_message (const char * fmt, ...);
-+extern void __pthread_message (const char * fmt, ...) attribute_hidden;
- extern int __pthread_manager (void *reqfd);
- extern int __pthread_manager_event (void *reqfd);
- extern void __pthread_manager_sighandler (int sig);
-@@ -347,7 +345,7 @@
- int *__kind);
- extern void __pthread_kill_other_threads_np (void);
- extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutex_attr);
-+ const pthread_mutexattr_t *__mutex_attr);
- extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
- extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
- extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
-@@ -393,14 +391,14 @@
- extern void __pthread_sigsuspend (const sigset_t *mask) attribute_hidden;
-
- extern int __pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime);
- extern int __pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime);
- extern int __pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr);
-
--extern int __pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
-+extern int __pthread_barrierattr_getpshared (const pthread_barrierattr_t *
- __restrict __attr,
- int *__restrict __pshared);
-
-@@ -440,10 +438,12 @@
- extern void __pthread_initialize (void);
-
- /* TSD. */
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- extern int __pthread_internal_tsd_set (int key, const void * pointer);
- extern void * __pthread_internal_tsd_get (int key);
- extern void ** __attribute__ ((__const__))
- __pthread_internal_tsd_address (int key);
-+#endif
-
- /* Sighandler wrappers. */
- extern void __pthread_sighandler(int signo, SIGCONTEXT ctx);
-@@ -508,8 +508,6 @@
- # define LIBC_CANCEL_HANDLED() /* Nothing. */
- #endif
-
--extern int * __libc_pthread_init (const struct pthread_functions *functions);
--
- #if !defined NOT_IN_libc && !defined FLOATING_STACKS
- # ifdef SHARED
- # define thread_self() \
-@@ -520,7 +518,7 @@
- # endif
- #endif
-
--#ifndef USE_TLS
-+#ifndef __UCLIBC_HAS_TLS__
- # define __manager_thread (&__pthread_manager_thread)
- #else
- # define __manager_thread __pthread_manager_threadp
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/libc-cancellation.c uClibc-git/libpthread/linuxthreads/libc-cancellation.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/libc-cancellation.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/libc-cancellation.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <rpc/rpc.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/libc_pthread_init.c uClibc-git/libpthread/linuxthreads/libc_pthread_init.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/libc_pthread_init.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,14 +13,13 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <locale.h>
- #include <stdlib.h>
- #include <string.h>
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- #include <tls.h>
- #endif
- #include "internals.h"
-@@ -31,8 +30,7 @@
-
-
- int *
--__libc_pthread_init (functions)
-- const struct pthread_functions *functions;
-+__libc_pthread_init(const struct pthread_functions *functions)
- {
- #ifdef SHARED
- /* We copy the content of the variable pointed to by the FUNCTIONS
-@@ -42,7 +40,7 @@
- sizeof (__libc_pthread_functions));
- #endif
-
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- /* Initialize thread-locale current locale to point to the global one.
- With __thread support, the variable's initializer takes care of this. */
- __uselocale (LC_GLOBAL_LOCALE);
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/lockfile.c uClibc-git/libpthread/linuxthreads/lockfile.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/lockfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/lockfile.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <bits/libc-lock.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/manager.c uClibc-git/libpthread/linuxthreads/manager.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/manager.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/manager.c 2014-07-25 20:36:08.193341950 +0200
-@@ -126,7 +126,7 @@
- #ifdef INIT_THREAD_SELF
- INIT_THREAD_SELF(self, 1);
- #endif
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- /* Set the error variable. */
- self->p_errnop = &self->p_errno;
- self->p_h_errnop = &self->p_h_errno;
-@@ -289,7 +289,7 @@
- __sched_setscheduler(THREAD_GETMEM(self, p_pid),
- SCHED_OTHER, &default_params);
- }
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- /* Initialize thread-locale current locale to point to the global one.
- With __thread support, the variable's initializer takes care of this. */
- __uselocale (LC_GLOBAL_LOCALE);
-@@ -333,7 +333,7 @@
- pthread_start_thread (arg);
- }
-
--#if defined USE_TLS && !FLOATING_STACKS
-+#if defined __UCLIBC_HAS_TLS__ && !FLOATING_STACKS
- # error "TLS can only work with floating stacks"
- #endif
-
-@@ -351,7 +351,7 @@
- char * guardaddr;
- size_t stacksize, guardsize;
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- /* TLS cannot work with fixed thread descriptor addresses. */
- assert (default_new_thread == NULL);
- #endif
-@@ -360,7 +360,7 @@
- {
- #ifdef _STACK_GROWS_UP
- /* The user provided a stack. */
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- /* This value is not needed. */
- new_thread = (pthread_descr) attr->__stackaddr;
- new_thread_bottom = (char *) new_thread;
-@@ -381,7 +381,7 @@
- addresses, stackaddr would be the lowest address in the stack
- segment, so that it is consistently close to the initial sp
- value. */
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- new_thread = (pthread_descr) attr->__stackaddr;
- # else
- new_thread =
-@@ -394,7 +394,7 @@
- #ifndef THREAD_SELF
- __pthread_nonstandard_stacks = 1;
- #endif
--#ifndef USE_TLS
-+#ifndef __UCLIBC_HAS_TLS__
- /* Clear the thread data structure. */
- memset (new_thread, '\0', sizeof (*new_thread));
- #endif
-@@ -438,7 +438,7 @@
- mprotect (guardaddr, guardsize, PROT_NONE);
-
- new_thread_bottom = (char *) map_addr;
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- new_thread = ((pthread_descr) (new_thread_bottom + stacksize
- + guardsize));
- # else
-@@ -451,7 +451,7 @@
- mprotect (guardaddr, guardsize, PROT_NONE);
-
- new_thread_bottom = (char *) map_addr + guardsize;
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- new_thread = ((pthread_descr) (new_thread_bottom + stacksize));
- # else
- new_thread = ((pthread_descr) (new_thread_bottom + stacksize)) - 1;
-@@ -462,7 +462,7 @@
- mprotect (guardaddr, guardsize, PROT_NONE);
-
- new_thread = (pthread_descr) map_addr;
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- new_thread_bottom = (char *) new_thread;
- # else
- new_thread_bottom = (char *) (new_thread + 1);
-@@ -597,7 +597,7 @@
- int pagesize = __getpagesize();
- int saved_errno = 0;
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- new_thread = _dl_allocate_tls (NULL);
- if (new_thread == NULL)
- return EAGAIN;
-@@ -621,7 +621,7 @@
- {
- if (sseg >= PTHREAD_THREADS_MAX)
- {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- # if defined(TLS_DTV_AT_TP)
- new_thread = (pthread_descr) ((char *) new_thread + TLS_PRE_TCB_SIZE);
- # endif
-@@ -635,7 +635,7 @@
- pagesize, &stack_addr, &new_thread_bottom,
- &guardaddr, &guardsize, &stksize) == 0)
- {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- new_thread->p_stackaddr = stack_addr;
- #else
- new_thread = (pthread_descr) stack_addr;
-@@ -657,18 +657,18 @@
- new_thread_id = sseg + pthread_threads_counter;
- /* Initialize the thread descriptor. Elements which have to be
- initialized to zero already have this value. */
--#if !defined USE_TLS || !TLS_DTV_AT_TP
-+#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
- new_thread->p_header.data.tcb = new_thread;
- new_thread->p_header.data.self = new_thread;
- #endif
--#if TLS_MULTIPLE_THREADS_IN_TCB || !defined USE_TLS || !TLS_DTV_AT_TP
-+#if TLS_MULTIPLE_THREADS_IN_TCB || !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
- new_thread->p_multiple_threads = 1;
- #endif
- new_thread->p_tid = new_thread_id;
- new_thread->p_lock = &(__pthread_handles[sseg].h_lock);
- new_thread->p_cancelstate = PTHREAD_CANCEL_ENABLE;
- new_thread->p_canceltype = PTHREAD_CANCEL_DEFERRED;
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- new_thread->p_errnop = &new_thread->p_errno;
- new_thread->p_h_errnop = &new_thread->p_h_errno;
- new_thread->p_resp = &new_thread->p_res;
-@@ -807,7 +807,7 @@
- munmap((caddr_t)new_thread_bottom,
- 2 * stacksize + new_thread->p_guardsize);
- #elif defined _STACK_GROWS_UP
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- size_t stacksize = guardaddr - stack_addr;
- munmap(stack_addr, stacksize + guardsize);
- # else
-@@ -815,7 +815,7 @@
- munmap(new_thread, stacksize + guardsize);
- # endif
- #else
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- size_t stacksize = stack_addr - new_thread_bottom;
- # else
- size_t stacksize = (char *)(new_thread+1) - new_thread_bottom;
-@@ -823,7 +823,7 @@
- munmap(new_thread_bottom - guardsize, guardsize + stacksize);
- #endif
- }
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- # if defined(TLS_DTV_AT_TP)
- new_thread = (pthread_descr) ((char *) new_thread + TLS_PRE_TCB_SIZE);
- # endif
-@@ -890,7 +890,7 @@
- /* Free the stack and thread descriptor area */
- char *guardaddr = th->p_guardaddr;
- #ifdef _STACK_GROWS_UP
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- size_t stacksize = guardaddr - th->p_stackaddr;
- guardaddr = th->p_stackaddr;
- # else
-@@ -900,7 +900,7 @@
- #else
- /* Guardaddr is always set, even if guardsize is 0. This allows
- us to compute everything else. */
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- size_t stacksize = th->p_stackaddr - guardaddr - guardsize;
- # else
- size_t stacksize = (char *)(th+1) - guardaddr - guardsize;
-@@ -916,7 +916,7 @@
-
- }
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- # if defined(TLS_DTV_AT_TP)
- th = (pthread_descr) ((char *) th + TLS_PRE_TCB_SIZE);
- # endif
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptcleanup.c uClibc-git/libpthread/linuxthreads/ptcleanup.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/ptcleanup.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/ptcleanup.c 2014-07-25 20:36:08.193341950 +0200
-@@ -20,8 +20,8 @@
- #include <setjmp.h>
- #include "pthread.h"
- #include "internals.h"
--#ifndef NO_PTR_DEMANGLE
- #include <jmpbuf-unwind.h>
-+#ifndef NO_PTR_DEMANGLE
- #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b,c)
- #else
- #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_gettime.c uClibc-git/libpthread/linuxthreads/ptclock_gettime.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/ptclock_gettime.c 2014-07-25 20:36:08.193341950 +0200
-@@ -12,13 +12,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <time.h>
--#include <libc-internal.h>
- #include "internals.h"
- #include "spinlock.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_settime.c uClibc-git/libpthread/linuxthreads/ptclock_settime.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_settime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/ptclock_settime.c 2014-07-25 20:36:08.193341950 +0200
-@@ -12,13 +12,11 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <time.h>
--#include <libc-internal.h>
- #include "internals.h"
- #include "spinlock.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptfork.c uClibc-git/libpthread/linuxthreads/ptfork.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/ptfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/ptfork.c 2014-07-25 20:36:08.193341950 +0200
-@@ -23,8 +23,6 @@
- #include <bits/libc-lock.h>
- #include "fork.h"
-
--extern int __libc_fork (void);
--
- pid_t __pthread_fork (struct fork_block *b)
- {
- pid_t pid;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_atfork.c uClibc-git/libpthread/linuxthreads/pthread_atfork.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_atfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_atfork.c 2014-07-25 20:36:08.197341972 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "internals.h"
- #include <fork.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread.c uClibc-git/libpthread/linuxthreads/pthread.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread.c 2014-07-25 20:36:08.193341950 +0200
-@@ -37,10 +37,7 @@
- # error "This must not happen"
- #endif
-
--/* mods for uClibc: __libc_sigaction is not in any standard headers */
--extern __typeof(sigaction) __libc_sigaction;
--
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- /* These variables are used by the setup code. */
- extern int _errno;
- extern int _h_errno;
-@@ -53,7 +50,7 @@
- # endif
- #endif
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
-
- /* We need only a few variables. */
- #define manager_thread __pthread_manager_threadp
-@@ -70,7 +67,7 @@
- .p_tid = PTHREAD_THREADS_MAX,
- .p_lock = &__pthread_handles[0].h_lock,
- .p_start_args = PTHREAD_START_ARGS_INITIALIZER(NULL),
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- .p_errnop = &_errno,
- .p_h_errnop = &_h_errno,
- #endif
-@@ -89,7 +86,7 @@
- .p_header.data.multiple_threads = 1,
- .p_lock = &__pthread_handles[1].h_lock,
- .p_start_args = PTHREAD_START_ARGS_INITIALIZER(__pthread_manager),
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- .p_errnop = &__pthread_manager_thread.p_errno,
- #endif
- .p_nr = 1,
-@@ -101,7 +98,7 @@
- /* Pointer to the main thread (the father of the thread manager thread) */
- /* Originally, this is the initial thread, but this changes after fork() */
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- pthread_descr __pthread_main_thread;
- #else
- pthread_descr __pthread_main_thread = &__pthread_initial_thread;
-@@ -227,13 +224,13 @@
- #endif
-
-
--#if defined USE_TLS && !defined SHARED
-+#if defined __UCLIBC_HAS_TLS__ && !defined SHARED
- extern void __libc_setup_tls (size_t tcbsize, size_t tcbalign);
- #endif
-
- struct pthread_functions __pthread_functions =
- {
--#if !(USE_TLS && HAVE___THREAD)
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
- .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
- .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
-@@ -295,7 +292,7 @@
- void
- __pthread_initialize_minimal(void)
- {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- pthread_descr self;
-
- /* First of all init __pthread_handles[0] and [1] if needed. */
-@@ -307,7 +304,7 @@
- /* Unlike in the dynamically linked case the dynamic linker has not
- taken care of initializing the TLS data structures. */
- __libc_setup_tls (TLS_TCB_SIZE, TLS_TCB_ALIGN);
--# elif !USE___THREAD
-+# elif !defined __UCLIBC_HAS_TLS__
- if (__builtin_expect (GL(dl_tls_dtv_slotinfo_list) == NULL, 0))
- {
- tcbhead_t *tcbp;
-@@ -363,7 +360,7 @@
- self->p_nextlive = self->p_prevlive = self;
- self->p_tid = PTHREAD_THREADS_MAX;
- self->p_lock = &__pthread_handles[0].h_lock;
--# ifndef HAVE___THREAD
-+# ifndef __UCLIBC_HAS_TLS__
- self->p_errnop = &_errno;
- self->p_h_errnop = &_h_errno;
- # endif
-@@ -380,7 +377,7 @@
- /* And fill in the pointer the the thread __pthread_handles array. */
- __pthread_handles[0].h_descr = self;
-
--#else /* USE_TLS */
-+#else /* __UCLIBC_HAS_TLS__ */
-
- /* First of all init __pthread_handles[0] and [1]. */
- # if __LT_SPINLOCK_INIT != 0
-@@ -398,7 +395,7 @@
- #endif
-
- #if HP_TIMING_AVAIL
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- self->p_cpuclock_offset = GL(dl_cpuclock_offset);
- # else
- __pthread_initial_thread.p_cpuclock_offset = GL(dl_cpuclock_offset);
-@@ -442,7 +439,7 @@
- __pthread_max_stacksize = max_stack;
- if (max_stack / 4 < __MAX_ALLOCA_CUTOFF)
- {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- pthread_descr self = THREAD_SELF;
- self->p_alloca_cutoff = max_stack / 4;
- #else
-@@ -451,10 +448,8 @@
- }
- }
-
--/* psm: we do not have any ld.so support yet
-- * remove the USE_TLS guard if nptl is added */
--#if defined SHARED && defined USE_TLS
--# if USE___THREAD
-+#if defined SHARED && defined __UCLIBC_HAS_TLS__
-+# ifdef __UCLIBC_HAS_TLS__
- /* When using __thread for this, we do it in libc so as not
- to give libpthread its own TLS segment just for this. */
- extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
-@@ -467,7 +462,7 @@
- # endif
- #endif
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- static __inline__ void __attribute__((always_inline))
- init_one_static_tls (pthread_descr descr, struct link_map *map)
- {
-@@ -486,7 +481,7 @@
- dtv[map->l_tls_modid].pointer.is_static = true;
-
- /* Initialize the memory. */
-- memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
-+ memset (mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
- '\0', map->l_tls_blocksize - map->l_tls_initimage_size);
- }
-
-@@ -536,10 +531,10 @@
- (char *)(((long)CURRENT_STACK_FRAME - 2 * STACK_SIZE) & ~(STACK_SIZE - 1));
- # endif
- #endif
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- /* Update the descriptor for the initial thread. */
- THREAD_SETMEM (((pthread_descr) NULL), p_pid, __getpid());
--# if !defined HAVE___THREAD && defined __UCLIBC_HAS_RESOLVER_SUPPORT__
-+# if defined __UCLIBC_HAS_RESOLVER_SUPPORT__
- /* Likewise for the resolver state _res. */
- THREAD_SETMEM (((pthread_descr) NULL), p_resp, __resp);
- # endif
-@@ -590,9 +585,7 @@
- /* How many processors. */
- __pthread_smp_kernel = is_smp_system ();
-
--/* psm: we do not have any ld.so support yet
-- * remove the USE_TLS guard if nptl is added */
--#if defined SHARED && defined USE_TLS
-+#if defined SHARED && defined __UCLIBC_HAS_TLS__
- /* Transfer the old value from the dynamic linker's internal location. */
- *__libc_dl_error_tsd () = *(*GL(dl_error_catch_tsd)) ();
- GL(dl_error_catch_tsd) = &__libc_dl_error_tsd;
-@@ -607,7 +600,7 @@
- __pthread_mutex_lock (&GL(dl_load_lock).mutex);
- #endif
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- GL(dl_init_static_tls) = &__pthread_init_static_tls;
- #endif
-
-@@ -635,12 +628,12 @@
- struct pthread_request request;
- int report_events;
- pthread_descr mgr;
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- tcbhead_t *tcbp;
- #endif
-
- __pthread_multiple_threads = 1;
--#if TLS_MULTIPLE_THREADS_IN_TCB || !defined USE_TLS || !TLS_DTV_AT_TP
-+#if TLS_MULTIPLE_THREADS_IN_TCB || !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
- __pthread_main_thread->p_multiple_threads = 1;
- #endif
- *__libc_multiple_threads_ptr = 1;
-@@ -667,7 +660,7 @@
- return -1;
- }
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- /* Allocate memory for the thread descriptor and the dtv. */
- tcbp = _dl_allocate_tls (NULL);
- if (tcbp == NULL) {
-@@ -687,7 +680,7 @@
- __pthread_handles[1].h_descr = manager_thread = mgr;
-
- /* Initialize the descriptor. */
--#if !defined USE_TLS || !TLS_DTV_AT_TP
-+#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
- mgr->p_header.data.tcb = tcbp;
- mgr->p_header.data.self = mgr;
- mgr->p_header.data.multiple_threads = 1;
-@@ -695,7 +688,7 @@
- mgr->p_multiple_threads = 1;
- #endif
- mgr->p_lock = &__pthread_handles[1].h_lock;
--# ifndef HAVE___THREAD
-+# ifndef __UCLIBC_HAS_TLS__
- mgr->p_errnop = &mgr->p_errno;
- # endif
- mgr->p_start_args = (struct pthread_start_args) PTHREAD_START_ARGS_INITIALIZER(__pthread_manager);
-@@ -713,7 +706,7 @@
-
- /* Start the thread manager */
- pid = 0;
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- if (__linuxthreads_initial_report_events != 0)
- THREAD_SETMEM (((pthread_descr) NULL), p_report_events,
- __linuxthreads_initial_report_events);
-@@ -732,7 +725,7 @@
- uint32_t mask = __td_eventmask (TD_CREATE);
- uint32_t event_bits;
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- event_bits = THREAD_GETMEM_NC (((pthread_descr) NULL),
- p_eventbuf.eventmask.event_bits[idx]);
- #else
-@@ -798,7 +791,7 @@
- #endif
- }
- if (__builtin_expect (pid, 0) == -1) {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- _dl_deallocate_tls (tcbp, true);
- #endif
- free(__pthread_manager_thread_bos);
-@@ -900,7 +893,7 @@
- if (sp >= __pthread_manager_thread_bos && sp < __pthread_manager_thread_tos)
- return manager_thread;
- h = __pthread_handles + 2;
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
- # ifdef _STACK_GROWS_UP
- while (h->h_descr == NULL
- || ! (sp >= h->h_descr->p_stackaddr && sp < h->h_descr->p_guardaddr))
-@@ -994,7 +987,7 @@
- children, so that timings for main thread account for all threads. */
- if (self == __pthread_main_thread)
- {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- waitpid(manager_thread->p_pid, NULL, __WCLONE);
- #else
- waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
-@@ -1002,7 +995,7 @@
- /* Since all threads have been asynchronously terminated
- (possibly holding locks), free cannot be used any more.
- For mtrace, we'd like to print something though. */
-- /* #ifdef USE_TLS
-+ /* #ifdef __UCLIBC_HAS_TLS__
- tcbhead_t *tcbp = (tcbhead_t *) manager_thread;
- # if defined(TLS_DTV_AT_TP)
- tcbp = (tcbhead_t) ((char *) tcbp + TLS_PRE_TCB_SIZE);
-@@ -1060,7 +1053,7 @@
- /* Main thread should accumulate times for thread manager and its
- children, so that timings for main thread account for all threads. */
- if (self == __pthread_main_thread) {
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- waitpid(manager_thread->p_pid, NULL, __WCLONE);
- #else
- waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
-@@ -1121,7 +1114,7 @@
- __pthread_main_thread = self;
- THREAD_SETMEM(self, p_nextlive, self);
- THREAD_SETMEM(self, p_prevlive, self);
--#if !(USE_TLS && HAVE___THREAD)
-+#ifndef __UCLIBC_HAS_TLS__
- /* Now this thread modifies the global variables. */
- THREAD_SETMEM(self, p_errnop, &_errno);
- THREAD_SETMEM(self, p_h_errnop, &_h_errno);
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setegid.c uClibc-git/libpthread/linuxthreads/pthread_setegid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setegid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setegid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_seteuid.c uClibc-git/libpthread/linuxthreads/pthread_seteuid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_seteuid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_seteuid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setgid.c uClibc-git/libpthread/linuxthreads/pthread_setgid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setgid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setgid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setregid.c uClibc-git/libpthread/linuxthreads/pthread_setregid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setregid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setregid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresgid.c uClibc-git/libpthread/linuxthreads/pthread_setresgid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresgid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setresgid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresuid.c uClibc-git/libpthread/linuxthreads/pthread_setresuid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresuid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setresuid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setreuid.c uClibc-git/libpthread/linuxthreads/pthread_setreuid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setreuid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setreuid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setuid.c uClibc-git/libpthread/linuxthreads/pthread_setuid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setuid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pthread_setuid.c 2014-07-25 20:36:08.197341972 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pt-machine.c uClibc-git/libpthread/linuxthreads/pt-machine.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/pt-machine.c 2014-07-25 20:36:08.193341950 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #define PT_EI
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/rwlock.c uClibc-git/libpthread/linuxthreads/rwlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/rwlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/rwlock.c 2014-07-25 20:36:08.197341972 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <bits/libc-lock.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.c uClibc-git/libpthread/linuxthreads/semaphore.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/semaphore.c 2014-07-25 20:36:08.197341972 +0200
-@@ -15,6 +15,7 @@
- /* Semaphores a la POSIX 1003.1b */
-
- #include <errno.h>
-+#include <limits.h>
- #include "pthread.h"
- #include "semaphore.h"
- #include "internals.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.h uClibc-git/libpthread/linuxthreads/semaphore.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/semaphore.h 2014-07-25 20:36:08.197341972 +0200
-@@ -17,6 +17,7 @@
-
- #include <features.h>
- #include <sys/types.h>
-+#include <limits.h>
- #ifdef __USE_XOPEN2K
- # define __need_timespec
- # include <time.h>
-@@ -42,7 +43,9 @@
- #define SEM_FAILED ((sem_t *) 0)
-
- /* Maximum value the semaphore can have. */
-+#ifndef SEM_VALUE_MAX
- #define SEM_VALUE_MAX (2147483647)
-+#endif
-
-
- __BEGIN_DECLS
-@@ -55,13 +58,13 @@
- extern int sem_destroy (sem_t *__sem) __THROW;
-
- /* Open a named semaphore NAME with open flags OFLAG. */
--extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
-+extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
-
- /* Close descriptor for named semaphore SEM. */
- extern int sem_close (sem_t *__sem) __THROW;
-
- /* Remove named semaphore NAME. */
--extern int sem_unlink (__const char *__name) __THROW;
-+extern int sem_unlink (const char *__name) __THROW;
-
- /* Wait for SEM being posted.
-
-@@ -75,7 +78,7 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int sem_timedwait (sem_t *__restrict __sem,
-- __const struct timespec *__restrict __abstime);
-+ const struct timespec *__restrict __abstime);
- #endif
-
- /* Test whether SEM is posted. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/signals.c uClibc-git/libpthread/linuxthreads/signals.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/signals.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/signals.c 2014-07-25 20:36:08.197341972 +0200
-@@ -20,9 +20,6 @@
- #include "internals.h"
- #include "spinlock.h"
-
--/* mods for uClibc: __libc_sigaction is not in any standard headers */
--extern __typeof(sigaction) __libc_sigaction;
--
- int pthread_sigmask(int how, const sigset_t * newmask, sigset_t * oldmask)
- {
- sigset_t mask;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/specific.c uClibc-git/libpthread/linuxthreads/specific.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/specific.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/specific.c 2014-07-25 20:36:08.197341972 +0200
-@@ -212,7 +212,7 @@
- __pthread_unlock(THREAD_GETMEM(self, p_lock));
- }
-
--#if !(USE_TLS && HAVE___THREAD)
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
-
- /* Thread-specific data for libc. */
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c 2014-07-25 20:36:08.213342056 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c 2014-07-25 20:36:08.217342077 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h 2014-07-25 20:36:08.217342077 +0200
-@@ -17,8 +17,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/alpha/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/tls.h 2014-07-25 20:36:08.217342077 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/arm/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/pspinlock.c 2014-07-25 20:36:08.233342160 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2014-07-25 20:36:08.233342160 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/sysdep.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/sysdep.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/sysdep.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/sysdep.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,137 +0,0 @@
--/* Generic asm macros used on many machines.
-- Copyright (C) 1991,92,93,96,98,2002,2003 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#ifndef C_LABEL
--
--/* Define a macro we can use to construct the asm name for a C symbol. */
--#ifdef NO_UNDERSCORES
--#ifdef __STDC__
--#define C_LABEL(name) name##:
--#else
--#define C_LABEL(name) name/**/:
--#endif
--#else
--#ifdef __STDC__
--#define C_LABEL(name) _##name##:
--#else
--#define C_LABEL(name) _/**/name/**/:
--#endif
--#endif
--
--#endif
--
--#ifdef __ASSEMBLER__
--/* Mark the end of function named SYM. This is used on some platforms
-- to generate correct debugging information. */
--#ifndef END
--#define END(sym)
--#endif
--
--#ifndef JUMPTARGET
--#define JUMPTARGET(sym) sym
--#endif
--
--/* Makros to generate eh_frame unwind information. */
--# ifdef HAVE_ASM_CFI_DIRECTIVES
--# define cfi_startproc .cfi_startproc
--# define cfi_endproc .cfi_endproc
--# define cfi_def_cfa(reg, off) .cfi_def_cfa reg, off
--# define cfi_def_cfa_register(reg) .cfi_def_cfa_register reg
--# define cfi_def_cfa_offset(off) .cfi_def_cfa_offset off
--# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off
--# define cfi_offset(reg, off) .cfi_offset reg, off
--# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off
--# define cfi_register(r1, r2) .cfi_register r1, r2
--# define cfi_return_column(reg) .cfi_return_column reg
--# define cfi_restore(reg) .cfi_restore reg
--# define cfi_same_value(reg) .cfi_same_value reg
--# define cfi_undefined(reg) .cfi_undefined reg
--# define cfi_remember_state .cfi_remember_state
--# define cfi_restore_state .cfi_restore_state
--# define cfi_window_save .cfi_window_save
--# else
--# define cfi_startproc
--# define cfi_endproc
--# define cfi_def_cfa(reg, off)
--# define cfi_def_cfa_register(reg)
--# define cfi_def_cfa_offset(off)
--# define cfi_adjust_cfa_offset(off)
--# define cfi_offset(reg, off)
--# define cfi_rel_offset(reg, off)
--# define cfi_register(r1, r2)
--# define cfi_return_column(reg)
--# define cfi_restore(reg)
--# define cfi_same_value(reg)
--# define cfi_undefined(reg)
--# define cfi_remember_state
--# define cfi_restore_state
--# define cfi_window_save
--# endif
--
--#else /* ! ASSEMBLER */
--# ifdef HAVE_ASM_CFI_DIRECTIVES
--# define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
--# define CFI_STRINGIFY2(Name) #Name
--# define CFI_STARTPROC ".cfi_startproc"
--# define CFI_ENDPROC ".cfi_endproc"
--# define CFI_DEF_CFA(reg, off) \
-- ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
--# define CFI_DEF_CFA_REGISTER(reg) \
-- ".cfi_def_cfa_register " CFI_STRINGIFY(reg)
--# define CFI_DEF_CFA_OFFSET(off) \
-- ".cfi_def_cfa_offset " CFI_STRINGIFY(off)
--# define CFI_ADJUST_CFA_OFFSET(off) \
-- ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)
--# define CFI_OFFSET(reg, off) \
-- ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
--# define CFI_REL_OFFSET(reg, off) \
-- ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
--# define CFI_REGISTER(r1, r2) \
-- ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
--# define CFI_RETURN_COLUMN(reg) \
-- ".cfi_return_column " CFI_STRINGIFY(reg)
--# define CFI_RESTORE(reg) \
-- ".cfi_restore " CFI_STRINGIFY(reg)
--# define CFI_UNDEFINED(reg) \
-- ".cfi_undefined " CFI_STRINGIFY(reg)
--# define CFI_REMEMBER_STATE \
-- ".cfi_remember_state"
--# define CFI_RESTORE_STATE \
-- ".cfi_restore_state"
--# define CFI_WINDOW_SAVE \
-- ".cfi_window_save"
--# else
--# define CFI_STARTPROC
--# define CFI_ENDPROC
--# define CFI_DEF_CFA(reg, off)
--# define CFI_DEF_CFA_REGISTER(reg)
--# define CFI_DEF_CFA_OFFSET(off)
--# define CFI_ADJUST_CFA_OFFSET(off)
--# define CFI_OFFSET(reg, off)
--# define CFI_REL_OFFSET(reg, off)
--# define CFI_REGISTER(r1, r2)
--# define CFI_RETURN_COLUMN(reg)
--# define CFI_RESTORE(reg)
--# define CFI_UNDEFINED(reg)
--# define CFI_REMEMBER_STATE
--# define CFI_RESTORE_STATE
--# define CFI_WINDOW_SAVE
--# endif
--
--#endif /* __ASSEMBLER__ */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/tls.h 2014-07-25 20:36:08.233342160 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/cris/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/cris/pspinlock.c 2014-07-25 20:36:08.245342223 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/cris/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/cris/pt-machine.h 2014-07-25 20:36:08.245342223 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c 2014-07-25 20:36:08.261342307 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h 2014-07-25 20:36:08.261342307 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h 2014-07-25 20:36:08.273342370 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/i386/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/pspinlock.c 2014-07-25 20:36:08.281342411 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/pt-machine.h 2014-07-25 20:36:08.281342411 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #if defined __pentiumpro__ || defined __pentium4__ || defined __athlon__ || \
- defined __k8__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/tls.h 2014-07-25 20:36:08.281342411 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/useldt.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/useldt.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/useldt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/useldt.h 2014-07-25 20:36:08.281342411 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef __ASSEMBLER__
- #include <stddef.h> /* For offsetof. */
-@@ -87,7 +86,7 @@
- because we inherited the value set up in the main thread by TLS setup.
- We need to extract that value and set up the same segment in this
- thread. */
--#if defined (USE_TLS) && USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- # define DO_SET_THREAD_AREA_REUSE(nr) 1
- #else
- /* Without TLS, we do the initialization of the main thread, where NR == 0. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c 2014-07-25 20:36:08.297342495 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h 2014-07-25 20:36:08.297342495 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2014-07-25 20:36:08.297342495 +0200
-@@ -2,7 +2,7 @@
- #include <tls.h>
-
- --
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads) - sizeof (struct _pthread_descr_struct)
- #else
- MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tls.h 2014-07-25 20:36:08.297342495 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c 2014-07-25 20:36:08.309342559 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h 2014-07-25 20:36:08.309342559 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/mips/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/pspinlock.c 2014-07-25 20:36:08.321342622 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/mips/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/pt-machine.h 2014-07-25 20:36:08.321342622 +0200
-@@ -18,8 +18,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/mips/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/tls.h 2014-07-25 20:36:08.321342622 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c 2014-07-25 20:36:08.341342726 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h 2014-07-25 20:36:08.341342726 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
- User's Manual', by IBM and Motorola. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c 2014-07-25 20:36:08.341342726 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h 2014-07-25 20:36:08.341342726 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
- User's Manual', by IBM and Motorola. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2014-07-25 20:36:08.349342767 +0200
-@@ -3,7 +3,7 @@
-
- -- This line separates the #include lines from conditionals.
-
--# ifdef USE_TLS
-+# ifdef __UCLIBC_HAS_TLS__
-
- -- Abuse tls.h macros to derive offsets relative to the thread register.
- # undef __thread_register
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tls.h 2014-07-25 20:36:08.349342767 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h 2014-07-25 20:36:08.369342872 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* Initial value of a spinlock. Most platforms should use zero,
- unless they only implement a "test and clear" operation instead of
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h 2014-07-25 20:36:08.369342872 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_LIBC_LOCK_H
- #define _BITS_LIBC_LOCK_H 1
-@@ -293,7 +292,7 @@
- library. */
-
- extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutex_attr);
-+ const pthread_mutexattr_t *__mutex_attr);
-
- extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-@@ -312,7 +311,7 @@
-
- #ifdef __USE_UNIX98
- extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-- __const pthread_rwlockattr_t *__attr);
-+ const pthread_rwlockattr_t *__attr);
-
- extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-@@ -331,7 +330,7 @@
- void (*__destr_function) (void *));
-
- extern int __pthread_setspecific (pthread_key_t __key,
-- __const void *__pointer);
-+ const void *__pointer);
-
- extern void *__pthread_getspecific (pthread_key_t __key);
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h 2014-07-25 20:36:08.369342872 +0200
-@@ -13,18 +13,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_LIBC_TSD_H
- #define _BITS_LIBC_TSD_H 1
-
- #include <linuxthreads/descr.h>
-+#ifdef __UCLIBC_HAS_TLS__
- #include <tls.h>
-
--#if USE_TLS && HAVE___THREAD
--
- /* When __thread works, the generic definition is what we want. */
- # include <sysdeps/generic/bits/libc-tsd.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h 2014-07-25 20:36:08.369342872 +0200
-@@ -19,6 +19,9 @@
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-
-+#define __need_size_t
-+#include <stddef.h>
-+
- #define __need_schedparam
- #include <bits/sched.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h 2014-07-25 20:36:08.369342872 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/.cvsignore uClibc-git/libpthread/linuxthreads/sysdeps/pthread/.cvsignore
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/.cvsignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/.cvsignore 1970-01-01 01:00:00.000000000 +0100
-@@ -1,2 +0,0 @@
--.cvsignore
--*.os
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c 2014-07-25 20:36:08.381342935 +0200
-@@ -14,26 +14,25 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <linuxthreads/internals.h>
- #include <sysdep-cancel.h>
-
--#if ! USE___THREAD && !RTLD_PRIVATE_ERRNO
-+#if !defined __UCLIBC_HAS_TLS__ && !RTLD_PRIVATE_ERRNO
- #undef errno
- extern int errno;
- #endif
-
- int *
--#if ! USE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- weak_const_function
- #endif
- __errno_location (void)
- {
--#if ! USE___THREAD && !defined NOT_IN_libc
-+#if !defined __UCLIBC_HAS_TLS__ && !defined NOT_IN_libc
- if (! SINGLE_THREAD_P)
- {
- pthread_descr self = thread_self();
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/flockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/flockfile.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/flockfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/flockfile.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c 2014-07-25 20:36:08.381342935 +0200
-@@ -12,16 +12,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <netdb.h>
- #include <tls.h>
- #include <linuxthreads/internals.h>
- #include <sysdep-cancel.h>
-
--#if ! USE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- # undef h_errno
- extern int h_errno;
- #endif
-@@ -31,7 +30,7 @@
- weak_const_function
- __h_errno_location (void)
- {
--#if ! USE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- if (! SINGLE_THREAD_P)
- {
- pthread_descr self = thread_self();
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/list.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/list.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/list.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/list.h 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LIST_H
- #define _LIST_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h 2014-07-25 20:36:08.381342935 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MALLOC_MACHINE_H
- #define _MALLOC_MACHINE_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h 2014-07-25 20:36:08.381342935 +0200
-@@ -14,18 +14,26 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <sysdep.h>
-
- /* Uncancelable open. */
-+#if defined __NR_openat && !defined __NR_open
-+#define open_not_cancel(name, flags, mode) \
-+ INLINE_SYSCALL (openat, 4, (int) (AT_FDCWD), (const char *) (name), \
-+ (flags), (mode))
-+#define open_not_cancel_2(name, flags) \
-+ INLINE_SYSCALL (openat, 3, (int) (AT_FDCWD), (const char *) (name), \
-+ (flags))
-+#else
- #define open_not_cancel(name, flags, mode) \
- INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
- #define open_not_cancel_2(name, flags) \
- INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
-+#endif
-
- /* Uncancelable openat. */
- #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h 2014-07-25 20:36:08.381342935 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTHREAD_FUNCTIONS_H
- #define _PTHREAD_FUNCTIONS_H 1
-@@ -72,10 +71,12 @@
- void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
- char *targetframe);
- pthread_descr (*ptr_pthread_thread_self) (void);
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
- void * (*ptr_pthread_internal_tsd_get) (int key);
- void ** __attribute__ ((__const__))
- (*ptr_pthread_internal_tsd_address) (int key);
-+#endif
- int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
- struct sigaction *oact);
- int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
-@@ -95,4 +96,6 @@
- /* Variable in libc.so. */
- extern struct pthread_functions __libc_pthread_functions attribute_hidden;
-
-+extern int * __libc_pthread_init (const struct pthread_functions *functions);
-+
- #endif /* pthread-functions.h */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread.h 2014-07-25 20:36:08.381342935 +0200
-@@ -161,7 +161,7 @@
- if ATTR is NULL), and call function START_ROUTINE with given
- arguments ARG. */
- extern int pthread_create (pthread_t *__restrict __threadp,
-- __const pthread_attr_t *__restrict __attr,
-+ const pthread_attr_t *__restrict __attr,
- void *(*__start_routine) (void *),
- void *__restrict __arg) __THROW;
-
-@@ -201,16 +201,16 @@
- int __detachstate) __THROW;
-
- /* Return in *DETACHSTATE the `detachstate' attribute in *ATTR. */
--extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
-+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
- int *__detachstate) __THROW;
-
- /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
- extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
-- __const struct sched_param *__restrict
-+ const struct sched_param *__restrict
- __param) __THROW;
-
- /* Return in *PARAM the scheduling parameters of *ATTR. */
--extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
- __attr,
- struct sched_param *__restrict __param)
- __THROW;
-@@ -220,7 +220,7 @@
- __THROW;
-
- /* Return in *POLICY the scheduling policy of *ATTR. */
--extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
- __attr, int *__restrict __policy)
- __THROW;
-
-@@ -229,7 +229,7 @@
- int __inherit) __THROW;
-
- /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
--extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
- __attr, int *__restrict __inherit)
- __THROW;
-
-@@ -238,7 +238,7 @@
- __THROW;
-
- /* Return in *SCOPE the scheduling contention scope of *ATTR. */
--extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
-+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
- int *__restrict __scope) __THROW;
-
- #ifdef __USE_UNIX98
-@@ -247,7 +247,7 @@
- size_t __guardsize) __THROW;
-
- /* Get the size of the guard area at the bottom of the thread. */
--extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict
- __attr, size_t *__restrict __guardsize)
- __THROW;
- #endif
-@@ -261,7 +261,7 @@
- void *__stackaddr) __THROW;
-
- /* Return the previously set address for the stack. */
--extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
- __attr, void **__restrict __stackaddr)
- __THROW;
- #endif
-@@ -274,7 +274,7 @@
- size_t __stacksize) __THROW;
-
- /* Return the previously set address for the stack. */
--extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
- void **__restrict __stackaddr,
- size_t *__restrict __stacksize) __THROW;
- #endif
-@@ -286,7 +286,7 @@
- size_t __stacksize) __THROW;
-
- /* Return the currently used minimal stack size. */
--extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
- __attr, size_t *__restrict __stacksize)
- __THROW;
-
-@@ -302,7 +302,7 @@
- /* Set the scheduling parameters for TARGET_THREAD according to POLICY
- and *PARAM. */
- extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
-- __const struct sched_param *__param)
-+ const struct sched_param *__param)
- __THROW;
-
- /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
-@@ -324,7 +324,7 @@
- /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
- default values if later is NULL. */
- extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
-- __const pthread_mutexattr_t *__restrict
-+ const pthread_mutexattr_t *__restrict
- __mutex_attr) __THROW;
-
- /* Destroy MUTEX. */
-@@ -339,7 +339,7 @@
- #ifdef __USE_XOPEN2K
- /* Wait until lock becomes available, or specified time passes. */
- extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW;
- #endif
-
-@@ -357,7 +357,7 @@
- extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
-
- /* Get the process-shared flag of the mutex attribute ATTR. */
--extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
-+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -373,7 +373,7 @@
- __THROW;
-
- /* Return in *KIND the mutex kind attribute in *ATTR. */
--extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
-+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
- __attr, int *__restrict __kind) __THROW;
- #endif
-
-@@ -383,7 +383,7 @@
- /* Initialize condition variable COND using attributes ATTR, or use
- the default values if later is NULL. */
- extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
-- __const pthread_condattr_t *__restrict
-+ const pthread_condattr_t *__restrict
- __cond_attr) __THROW;
-
- /* Destroy condition variable COND. */
-@@ -406,7 +406,7 @@
- (00:00:00 GMT, January 1, 1970). */
- extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
- pthread_mutex_t *__restrict __mutex,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime);
-
- /* Functions for handling condition variable attributes. */
-@@ -418,7 +418,7 @@
- extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
-
- /* Get the process-shared flag of the condition variable attribute ATTR. */
--extern int pthread_condattr_getpshared (__const pthread_condattr_t *
-+extern int pthread_condattr_getpshared (const pthread_condattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -433,7 +433,7 @@
- /* Initialize read-write lock RWLOCK using attributes ATTR, or use
- the default values if later is NULL. */
- extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-- __const pthread_rwlockattr_t *__restrict
-+ const pthread_rwlockattr_t *__restrict
- __attr) __THROW;
-
- /* Destroy read-write lock RWLOCK. */
-@@ -448,7 +448,7 @@
- # ifdef __USE_XOPEN2K
- /* Try to acquire read lock for RWLOCK or return after specfied time. */
- extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW;
- # endif
-
-@@ -461,7 +461,7 @@
- # ifdef __USE_XOPEN2K
- /* Try to acquire write lock for RWLOCK or return after specfied time. */
- extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW;
- # endif
-
-@@ -478,7 +478,7 @@
- extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
-
- /* Return current setting of process-shared attribute of ATTR in PSHARED. */
--extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
-+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -487,7 +487,7 @@
- int __pshared) __THROW;
-
- /* Return current setting of reader/writer preference. */
--extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
-+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *__attr,
- int *__pref) __THROW;
-
- /* Set reader/write preference. */
-@@ -520,7 +520,7 @@
- /* Barriers are a also a new feature in 1003.1j-2000. */
-
- extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
-- __const pthread_barrierattr_t *__restrict
-+ const pthread_barrierattr_t *__restrict
- __attr, unsigned int __count) __THROW;
-
- extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
-@@ -529,7 +529,7 @@
-
- extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
-
--extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
-+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -556,7 +556,7 @@
-
- /* Store POINTER in the thread-specific data slot identified by KEY. */
- extern int pthread_setspecific (pthread_key_t __key,
-- __const void *__pointer) __THROW;
-+ const void *__pointer) __THROW;
-
- /* Return current value of the thread-specific data slot identified by KEY. */
- extern void *pthread_getspecific (pthread_key_t __key) __THROW;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c 2014-07-25 20:36:08.381342935 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c 2014-07-25 20:36:08.381342935 +0200
-@@ -19,13 +19,6 @@
- #include "pthread.h"
- #include "internals.h"
-
--/* These functions are not declared anywhere since they shouldn't be
-- used at another place but here. */
--extern void __libc_siglongjmp (sigjmp_buf env, int val)
-- __attribute__ ((noreturn));
--extern void __libc_longjmp (sigjmp_buf env, int val)
-- __attribute__ ((noreturn));
--
- #ifdef SHARED
- void siglongjmp (sigjmp_buf env, int val)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/res-state.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/res-state.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/res-state.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/res-state.c 2014-07-25 20:36:08.381342935 +0200
-@@ -12,28 +12,27 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <resolv.h>
- #include <tls.h>
- #include <linuxthreads/internals.h>
- #include <sysdep-cancel.h>
-
--#if ! USE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- # undef _res
- extern struct __res_state _res;
- #endif
-
- /* When threaded, _res may be a per-thread variable. */
- struct __res_state *
--#if ! USE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- weak_const_function
- #endif
- __res_state (void)
- {
--#if ! USE___THREAD
-+#ifndef __UCLIBC_HAS_TLS__
- if (! SINGLE_THREAD_P)
- {
- pthread_descr self = thread_self();
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/sigaction.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/sigaction.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/sigaction.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Somebody please explain what's going on here. --vda */
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_create.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_create.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_create.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_create.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c 2014-07-25 20:36:08.381342935 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c 2014-07-25 20:36:08.381342935 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c 2014-07-25 20:36:08.381342935 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/s390/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/pspinlock.c 2014-07-25 20:36:08.393342999 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h 2014-07-25 20:36:08.413343103 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-@@ -58,7 +57,7 @@
- #define CURRENT_STACK_FRAME stack_pointer
- register char * stack_pointer __asm__ ("15");
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- /* Return the thread descriptor for the current thread. */
- # define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h 2014-07-25 20:36:08.421343145 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-@@ -58,7 +57,7 @@
- #define CURRENT_STACK_FRAME stack_pointer
- register char * stack_pointer __asm__ ("15");
-
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- /* Return the thread descriptor for the current thread. */
- # define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/tls.h 2014-07-25 20:36:08.421343145 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sh/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/pspinlock.c 2014-07-25 20:36:08.433343208 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sh/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/pt-machine.h 2014-07-25 20:36:08.433343208 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym 2014-07-25 20:36:08.433343208 +0200
-@@ -2,7 +2,7 @@
- #include <tls.h>
-
- --
--#ifdef USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads)
- TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
- #else
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/sh/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/tls.h 2014-07-25 20:36:08.433343208 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c 2014-07-25 20:36:08.457343333 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h 2014-07-25 20:36:08.457343333 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c 2014-07-25 20:36:08.469343397 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c 2014-07-25 20:36:08.485343481 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h 2014-07-25 20:36:08.485343481 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/tls.h 2014-07-25 20:36:08.485343481 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h 2014-07-25 20:36:08.501343564 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c 2014-07-25 20:36:08.501343564 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <signal.h>
-
-@@ -70,6 +69,7 @@
- strong_alias (__libc_current_sigrtmax, __libc_current_sigrtmax_private)
- libc_hidden_def (__libc_current_sigrtmax)
-
-+#if 0
- /* Allocate real-time signal with highest/lowest available
- priority. Please note that we don't use a lock since we assume
- this function to be called at program start. */
-@@ -85,3 +85,4 @@
- return high ? current_rtmin++ : current_rtmax--;
- }
- strong_alias (__libc_allocate_rtsig, __libc_allocate_rtsig_private)
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2014-07-25 20:36:08.529343711 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h 2014-07-25 20:36:08.529343711 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S 2014-07-25 20:36:08.529343711 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2014-07-25 20:36:08.529343711 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #ifndef __ASSEMBLER__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2014-07-25 20:36:08.529343711 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include <sysdep-cancel.h>
-@@ -30,7 +29,7 @@
-
- #ifdef SHARED
- ldq t0, __libc_pthread_functions(gp) !gprel
-- bne t0, HIDDEN_JUMPTARGET (__fork) !samegp
-+ bne t0, HIDDEN_JUMPTARGET (fork) !samegp
- #else
- .weak pthread_create
- ldq t0, pthread_create(gp) !literal
-@@ -50,7 +49,7 @@
- cfi_adjust_cfa_offset(16)
- stq ra, 0(sp)
- cfi_offset(ra, -16)
-- jsr ra, HIDDEN_JUMPTARGET (__fork)
-+ jsr ra, HIDDEN_JUMPTARGET (fork)
- ldgp gp, 0(ra)
- ldq ra, 0(sp)
- addq sp, 16, sp
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2014-07-25 20:36:08.537343753 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tls.h>
- #include <pt-machine.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2014-07-25 20:36:08.537343753 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -40,7 +39,7 @@
- ldr r0, 1f
- #endif
- movs r0, r0
-- bne HIDDEN_JUMPTARGET (__fork)
-+ bne HIDDEN_JUMPTARGET (fork)
-
- DO_CALL (vfork, 0)
- cmn a1, #4096
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore 1970-01-01 01:00:00.000000000 +0100
-@@ -1,2 +0,0 @@
--.cvsignore
--*.os
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c 2014-07-25 20:36:08.537343753 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <unistd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c 2014-07-25 20:36:08.537343753 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fork.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h 2014-07-25 20:36:08.537343753 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <list.h>
- #include <bits/libc-lock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h 2014-07-25 20:36:08.561343879 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* Initial value of a spinlock. PA-RISC only implements atomic load
- and clear so this must be non-zero. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h 2014-07-25 20:36:08.561343879 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MALLOC_MACHINE_H
- #define _MALLOC_MACHINE_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c 2014-07-25 20:36:08.561343879 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h 2014-07-25 20:36:08.561343879 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #ifndef __ASSEMBLER__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2014-07-25 20:36:08.581343983 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tls.h>
- #include <pt-machine.h>
-@@ -139,7 +138,7 @@
- #endif
-
- # ifndef __ASSEMBLER__
--# if defined FLOATING_STACKS && USE___THREAD && defined __PIC__
-+# if defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__ && defined __PIC__
- # define SINGLE_THREAD_P \
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- p_header.data.multiple_threads) == 0, 1)
-@@ -155,7 +154,7 @@
- # else
- # if !defined __PIC__
- # define SINGLE_THREAD_P cmpl $0, __local_multiple_threads
--# elif defined FLOATING_STACKS && USE___THREAD
-+# elif defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__
- # define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET
- # else
- # if !defined NOT_IN_libc || defined IS_IN_libpthread
-@@ -165,7 +164,7 @@
- movl __local_multiple_threads@GOT(%ecx), %ecx;\
- cmpl $0, (%ecx)
- # endif
--# if !defined HAVE_HIDDEN || !USE___THREAD
-+# if !defined HAVE_HIDDEN || !defined __UCLIBC_HAS_TLS__
- # define SINGLE_THREAD_P \
- SETUP_PIC_REG (cx); \
- addl $_GLOBAL_OFFSET_TABLE_, %ecx; \
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2014-07-25 20:36:08.581343983 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -32,7 +31,7 @@
- #ifdef __NR_vfork
-
- # ifdef SHARED
--# if !defined HAVE_HIDDEN || !USE___THREAD
-+# if !defined HAVE_HIDDEN || !defined __UCLIBC_HAS_TLS__
- SETUP_PIC_REG (cx)
- # else
- call __i686.get_pc_thunk.cx
-@@ -44,7 +43,7 @@
- movl $pthread_create, %eax
- testl %eax, %eax
- # endif
-- jne HIDDEN_JUMPTARGET (__fork)
-+ jne HIDDEN_JUMPTARGET (fork)
-
- /* Pop the return PC value into ECX. */
- popl %ecx
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h 2014-07-25 20:36:08.593344046 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h 2014-07-25 20:36:08.605344109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <signal.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c 2014-07-25 20:36:08.605344109 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c 2014-07-25 20:36:08.605344109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2014-07-25 20:36:08.605344109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S 2014-07-25 20:36:08.605344109 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #include <sysdep-cancel.h>
-@@ -38,7 +37,7 @@
- #endif
- ld8 r14 = [r14];;
- cmp.ne p6, p7 = 0, r14
--(p6) br.cond.spnt.few HIDDEN_JUMPTARGET (__fork);;
-+(p6) br.cond.spnt.few HIDDEN_JUMPTARGET (fork);;
- alloc r2=ar.pfs,0,0,2,0
- mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
- mov out1=0 /* Standard sp value. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c 2014-07-25 20:36:08.605344109 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stddef.h>
-@@ -32,3 +31,4 @@
- (env->__jmpbuf, __builtin_frame_address (0)),
- (void) 0);
- }
-+libc_hidden_def(_longjmp_unwind)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h 2014-07-25 20:36:08.609344130 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #ifndef __ASSEMBLER__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S 2014-07-25 20:36:08.609344130 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -35,7 +34,7 @@
- .weak pthread_create
- movel #pthread_create, %d0
- #endif
-- jbne HIDDEN_JUMPTARGET (__fork)
-+ jbne HIDDEN_JUMPTARGET (fork)
-
- #ifdef __NR_vfork
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h 2014-07-25 20:36:08.629344235 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #ifndef __ASSEMBLER__
-@@ -31,7 +30,7 @@
- # undef PSEUDO
- # define PSEUDO(name, syscall_name, args) \
- .align 2; \
-- 99: \
-+ 99: move a0, v0; \
- PTR_LA t9,__syscall_error; \
- /* manual cpreturn. */ \
- REG_L gp, STKOFF_GP(sp); \
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2014-07-25 20:36:08.641344298 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #ifndef __ASSEMBLER__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S 2014-07-25 20:36:08.641344298 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* vfork() is just a special case of clone(). */
-
-@@ -80,6 +79,7 @@
-
- /* Something bad happened -- no child created. */
- L(error):
-+ move a0, v0
- #ifdef __PIC__
- PTR_LA t9, __syscall_error
- RESTORE_GP64
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c 2014-07-25 20:36:08.641344298 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2014-07-25 20:36:08.657344381 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2014-07-25 20:36:08.657344381 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -66,7 +65,7 @@
- # endif
-
- .Lhidden_fork:
-- b HIDDEN_JUMPTARGET(__fork)
-+ b HIDDEN_JUMPTARGET(fork)
-
- #endif
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2014-07-25 20:36:08.673344465 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2014-07-25 20:36:08.673344465 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -42,7 +41,7 @@
- ld 10,.LC0@toc(2)
- ld 10,0(10)
- cmpwi 10,0
-- bne- HIDDEN_JUMPTARGET(__fork)
-+ bne- HIDDEN_JUMPTARGET(fork)
- # else
- .weak pthread_create
- lis 10,pthread_create@highest
-@@ -80,7 +79,7 @@
-
- # ifndef SHARED
- .Lhidden_fork:
-- b HIDDEN_JUMPTARGET(__fork)
-+ b HIDDEN_JUMPTARGET(fork)
- .Lsyscall_error:
- b JUMPTARGET(__syscall_error)
- # endif
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c 2014-07-25 20:36:08.689344549 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2014-07-25 20:36:08.689344549 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <signal.h>
- #include <unistd.h>
-@@ -40,4 +39,3 @@
- #endif
- }
- libc_hidden_def (raise)
--weak_alias (raise, gsignal)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c 2014-07-25 20:36:08.689344549 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2014-07-25 20:36:08.705344633 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c 2014-07-25 20:36:08.721344717 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h 2014-07-25 20:36:08.721344717 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S 2014-07-25 20:36:08.721344717 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -54,7 +53,7 @@
- al %r1,3f-2b(%r1)
- br %r1
- 3:
-- .long HIDDEN_JUMPTARGET(__fork)-2b
-+ .long HIDDEN_JUMPTARGET(fork)-2b
- 4:
- #ifdef SHARED
- .long __libc_pthread_functions-0b
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c 2014-07-25 20:36:08.737344801 +0200
-@@ -24,8 +24,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h 2014-07-25 20:36:08.737344801 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S 2014-07-25 20:36:08.737344801 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -35,7 +34,7 @@
- larl %r1,pthread_create
- #endif
- ltgr %r1,%r1
-- jgne HIDDEN_JUMPTARGET(__fork)
-+ jgne HIDDEN_JUMPTARGET(fork)
-
- /* Do vfork system call. */
- svc SYS_ify (vfork)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2014-07-25 20:36:08.741344821 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h 2014-07-25 20:36:08.741344821 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- static __inline__ int
- is_smp_system (void)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2014-07-25 20:36:08.741344821 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-@@ -155,7 +154,7 @@
- # endif
-
- # ifndef __ASSEMBLER__
--# if defined FLOATING_STACKS && USE___THREAD && defined __PIC__
-+# if defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__ && defined __PIC__
- # define SINGLE_THREAD_P \
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, p_multiple_threads) == 0, 1)
- # else
-@@ -172,7 +171,7 @@
- .align 2; \
- 1: .long __local_multiple_threads; \
- 2:
--# elif defined FLOATING_STACKS && USE___THREAD
-+# elif defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__
- # define SINGLE_THREAD_P \
- stc gbr,r0; \
- mov.w 0f,r1; \
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S 2014-07-25 20:36:08.741344821 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -70,7 +69,7 @@
- nop
- 1:
- .align 2
--.L2: .long HIDDEN_JUMPTARGET(__fork)-1b
-+.L2: .long HIDDEN_JUMPTARGET(fork)-1b
-
- PSEUDO_END (__vfork)
- libc_hidden_def (__vfork)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c 2014-07-25 20:36:08.741344821 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h 2014-07-25 20:36:08.741344821 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <sys/sysctl.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2014-07-25 20:36:08.765344947 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h 2014-07-25 20:36:08.765344947 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_TYPES_H
- # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h 2014-07-25 20:36:08.765344947 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include_next <fork.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2014-07-25 20:36:08.785345052 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tls.h>
- #ifndef __ASSEMBLER__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2014-07-25 20:36:08.785345052 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
-
-@@ -43,7 +42,7 @@
- orcc %o0, %lo(pthread_create), %o0
- #endif
- #if defined SHARED && !defined BROKEN_SPARC_WDISP22
-- bne HIDDEN_JUMPTARGET(__fork)
-+ bne HIDDEN_JUMPTARGET(fork)
- #else
- bne 1f
- #endif
-@@ -56,7 +55,7 @@
- and %o0, %o1, %o0
- #if !defined SHARED || defined BROKEN_SPARC_WDISP22
- 1: mov %o7, %g1
-- call HIDDEN_JUMPTARGET(__fork)
-+ call HIDDEN_JUMPTARGET(fork)
- mov %g1, %o7
- #endif
- SYSCALL_ERROR_HANDLER
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2014-07-25 20:36:08.801345136 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tls.h>
- #ifndef __ASSEMBLER__
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2014-07-25 20:36:08.801345136 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
-
-@@ -42,7 +41,7 @@
- #endif
- #if defined SHARED && !defined BROKEN_SPARC_WDISP22
- cmp %o0, 0
-- bne HIDDEN_JUMPTARGET(__fork)
-+ bne HIDDEN_JUMPTARGET(fork)
- #else
- brnz,pn %o0, 1f
- #endif
-@@ -55,7 +54,7 @@
- and %o0, %o1, %o0
- #if !defined SHARED || defined BROKEN_SPARC_WDISP22
- 1: mov %o7, %g1
-- call HIDDEN_JUMPTARGET(__fork)
-+ call HIDDEN_JUMPTARGET(fork)
- mov %g1, %o7
- #endif
- SYSCALL_ERROR_HANDLER
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c 2014-07-25 20:36:08.801345136 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2014-07-25 20:36:08.825345261 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S 2014-07-25 20:36:08.825345261 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep-cancel.h>
- #define _ERRNO_H 1
-@@ -34,7 +33,7 @@
- movq $pthread_create, %rax
- testq %rax, %rax
- #endif
-- jne HIDDEN_JUMPTARGET (__fork)
-+ jne HIDDEN_JUMPTARGET (fork)
-
- /* Pop the return PC value into RDI. We need a register that
- is preserved by the syscall and that we're allowed to destroy. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c 2014-07-25 20:36:08.825345261 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h 2014-07-25 20:36:08.825345261 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/tls.h 2014-07-25 20:36:08.825345261 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/.cvsignore uClibc-git/libpthread/linuxthreads_db/.cvsignore
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/.cvsignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/.cvsignore 1970-01-01 01:00:00.000000000 +0100
-@@ -1,5 +0,0 @@
--.cvsignore
--.svn
--*.os
--Makefile
--Makefile.in
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/Makefile.old uClibc-git/libpthread/linuxthreads_db/Makefile.old
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/Makefile.old 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/Makefile.old 2014-07-25 20:36:08.825345261 +0200
-@@ -12,9 +12,8 @@
- # Lesser General Public License for more details.
-
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
- # Makefile for linuxthreads debug library subdirectory of GNU C Library.
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/proc_service.h uClibc-git/libpthread/linuxthreads_db/proc_service.h
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/proc_service.h 2014-07-25 20:36:08.825345261 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The definitions in this file must correspond to those in the debugger. */
- #include <sys/procfs.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_init.c uClibc-git/libpthread/linuxthreads_db/td_init.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_init.c 2014-07-25 20:36:08.825345261 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_log.c uClibc-git/libpthread/linuxthreads_db/td_log.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_log.c 2014-07-25 20:36:08.825345261 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_symbol_list.c uClibc-git/libpthread/linuxthreads_db/td_symbol_list.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_symbol_list.c 2014-07-25 20:36:08.825345261 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "thread_dbP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_clear_event.c uClibc-git/libpthread/linuxthreads_db/td_ta_clear_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_clear_event.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,17 +14,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-
- td_err_e
--td_ta_clear_event (ta, event)
-- const td_thragent_t *ta;
-- td_thr_events_t *event;
-+td_ta_clear_event(const td_thragent_t *ta, td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_delete.c uClibc-git/libpthread/linuxthreads_db/td_ta_delete.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_delete.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_enable_stats.c uClibc-git/libpthread/linuxthreads_db/td_ta_enable_stats.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_enable_stats.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_addr.c uClibc-git/libpthread/linuxthreads_db/td_ta_event_addr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_event_addr.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_getmsg.c uClibc-git/libpthread/linuxthreads_db/td_ta_event_getmsg.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_event_getmsg.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_nthreads.c uClibc-git/libpthread/linuxthreads_db/td_ta_get_nthreads.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_nthreads.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_ph.c uClibc-git/libpthread/linuxthreads_db/td_ta_get_ph.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_ph.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_stats.c uClibc-git/libpthread/linuxthreads_db/td_ta_get_stats.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_stats.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_id2thr.c uClibc-git/libpthread/linuxthreads_db/td_ta_map_id2thr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_map_id2thr.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <linuxthreads/internals.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c uClibc-git/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <linuxthreads/internals.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_new.c uClibc-git/libpthread/linuxthreads_db/td_ta_new.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_new.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_reset_stats.c uClibc-git/libpthread/linuxthreads_db/td_ta_reset_stats.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_reset_stats.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_setconcurrency.c uClibc-git/libpthread/linuxthreads_db/td_ta_setconcurrency.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_setconcurrency.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_set_event.c uClibc-git/libpthread/linuxthreads_db/td_ta_set_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_set_event.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,17 +14,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-
- td_err_e
--td_ta_set_event (ta, event)
-- const td_thragent_t *ta;
-- td_thr_events_t *event;
-+td_ta_set_event(const td_thragent_t *ta, td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_thr_iter.c uClibc-git/libpthread/linuxthreads_db/td_ta_thr_iter.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_thr_iter.c 2014-07-25 20:36:08.833345303 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <linuxthreads/internals.h>
-@@ -40,7 +39,7 @@
- memset (&pds, '\0', sizeof (pds));
-
- /* Empty thread descriptor the thread library would create. */
--#if !defined USE_TLS || !TLS_DTV_AT_TP
-+#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
- pds.p_header.data.self = &pds;
- #endif
- pds.p_nextlive = pds.p_prevlive = &pds;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_tsd_iter.c uClibc-git/libpthread/linuxthreads_db/td_ta_tsd_iter.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_ta_tsd_iter.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <linuxthreads/internals.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_clear_event.c uClibc-git/libpthread/linuxthreads_db/td_thr_clear_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_clear_event.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-@@ -24,9 +23,7 @@
-
-
- td_err_e
--td_thr_clear_event (th, event)
-- const td_thrhandle_t *th;
-- td_thr_events_t *event;
-+td_thr_clear_event(const td_thrhandle_t *th, td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbresume.c uClibc-git/libpthread/linuxthreads_db/td_thr_dbresume.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_dbresume.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbsuspend.c uClibc-git/libpthread/linuxthreads_db/td_thr_dbsuspend.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_dbsuspend.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_enable.c uClibc-git/libpthread/linuxthreads_db/td_thr_event_enable.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_event_enable.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-@@ -24,9 +23,7 @@
-
-
- td_err_e
--td_thr_event_enable (th, onoff)
-- const td_thrhandle_t *th;
-- int onoff;
-+td_thr_event_enable(const td_thrhandle_t *th, int onoff)
- {
- LOG ("td_thr_event_enable");
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_getmsg.c uClibc-git/libpthread/linuxthreads_db/td_thr_event_getmsg.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_event_getmsg.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getfpregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getfpregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_getfpregs.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getgregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getgregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_getgregs.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_get_info.c uClibc-git/libpthread/linuxthreads_db/td_thr_get_info.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_get_info.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getxregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_getxregs.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregsize.c uClibc-git/libpthread/linuxthreads_db/td_thr_getxregsize.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_getxregsize.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_set_event.c uClibc-git/libpthread/linuxthreads_db/td_thr_set_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_set_event.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-@@ -24,9 +23,7 @@
-
-
- td_err_e
--td_thr_set_event (th, event)
-- const td_thrhandle_t *th;
-- td_thr_events_t *event;
-+td_thr_set_event(const td_thrhandle_t *th, td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setfpregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setfpregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_setfpregs.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setgregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setgregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_setgregs.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setprio.c uClibc-git/libpthread/linuxthreads_db/td_thr_setprio.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_setprio.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setsigpending.c uClibc-git/libpthread/linuxthreads_db/td_thr_setsigpending.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_setsigpending.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setxregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setxregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_setxregs.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_sigsetmask.c uClibc-git/libpthread/linuxthreads_db/td_thr_sigsetmask.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_sigsetmask.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tlsbase.c uClibc-git/libpthread/linuxthreads_db/td_thr_tlsbase.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tlsbase.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_tlsbase.c 2014-07-25 20:36:08.837345325 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-@@ -30,7 +29,7 @@
- if (modid < 1)
- return TD_NOTLS;
-
--#if USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- union dtv pdtv, *dtvp;
-
- LOG ("td_thr_tlsbase");
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tls_get_addr.c uClibc-git/libpthread/linuxthreads_db/td_thr_tls_get_addr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_tls_get_addr.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <link.h>
- #include "thread_dbP.h"
-@@ -27,7 +26,7 @@
- size_t offset __attribute__ ((unused)),
- void **address __attribute__ ((unused)))
- {
--#if USE_TLS
-+#ifdef __UCLIBC_HAS_TLS__
- /* Read the module ID from the link_map. */
- size_t modid;
- if (ps_pdread (th->th_ta_p->ph,
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tsd.c uClibc-git/libpthread/linuxthreads_db/td_thr_tsd.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_tsd.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <linuxthreads/internals.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_validate.c uClibc-git/libpthread/linuxthreads_db/td_thr_validate.c
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/td_thr_validate.c 2014-07-25 20:36:08.837345325 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <linuxthreads/internals.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/thread_db.h uClibc-git/libpthread/linuxthreads_db/thread_db.h
---- uClibc-0.9.33.2/libpthread/linuxthreads_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads_db/thread_db.h 2014-07-25 20:36:08.837345325 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _THREAD_DB_H
- #define _THREAD_DB_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/cancel.c uClibc-git/libpthread/linuxthreads.old/cancel.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/cancel.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/cancel.c 2014-07-25 20:36:08.009340986 +0200
-@@ -14,8 +14,6 @@
-
- /* Thread cancellation */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <errno.h>
- #include "pthread.h"
- #include "internals.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/condvar.c uClibc-git/libpthread/linuxthreads.old/condvar.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/condvar.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/condvar.c 2014-07-25 20:36:08.009340986 +0200
-@@ -25,16 +25,6 @@
- #include "queue.h"
- #include "restart.h"
-
--libpthread_hidden_proto(pthread_cond_broadcast)
--libpthread_hidden_proto(pthread_cond_destroy)
--libpthread_hidden_proto(pthread_cond_init)
--libpthread_hidden_proto(pthread_cond_signal)
--libpthread_hidden_proto(pthread_cond_wait)
--libpthread_hidden_proto(pthread_cond_timedwait)
--
--libpthread_hidden_proto(pthread_condattr_destroy)
--libpthread_hidden_proto(pthread_condattr_init)
--
- int pthread_cond_init(pthread_cond_t *cond,
- const pthread_condattr_t *cond_attr attribute_unused)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/errno.c uClibc-git/libpthread/linuxthreads.old/errno.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/errno.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/errno.c 2014-07-25 20:36:08.009340986 +0200
-@@ -14,8 +14,6 @@
-
- /* Define the location of errno for the remainder of the C library */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <errno.h>
- #include <netdb.h>
- #include "pthread.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/events.c uClibc-git/libpthread/linuxthreads.old/events.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/events.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/events.c 2014-07-25 20:36:08.009340986 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* The functions contained here do nothing, they just return. */
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/forward.c uClibc-git/libpthread/linuxthreads.old/forward.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/forward.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/forward.c 2014-07-25 20:36:08.009340986 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <stdlib.h>
-@@ -163,8 +162,12 @@
-
- FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
-
-+#if 0
- FORWARD2 (_pthread_cleanup_push, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
-+#endif
- FORWARD2 (_pthread_cleanup_push_defer, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
-
-+#if 0
- FORWARD2 (_pthread_cleanup_pop, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
-+#endif
- FORWARD2 (_pthread_cleanup_pop_restore, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/internals.h uClibc-git/libpthread/linuxthreads.old/internals.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/internals.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/internals.h 2014-07-25 20:36:08.013341008 +0200
-@@ -327,32 +327,28 @@
-
- /* The page size we can get from the system. This should likely not be
- changed by the machine file but, you never know. */
--extern size_t __pagesize;
--#include <bits/uClibc_page.h>
--#ifndef PAGE_SIZE
--#define PAGE_SIZE (sysconf (_SC_PAGESIZE))
--#endif
-+#define __PAGE_SIZE (sysconf (_SC_PAGESIZE))
-
- /* The max size of the thread stack segments. If the default
- THREAD_SELF implementation is used, this must be a power of two and
-- a multiple of PAGE_SIZE. */
-+ a multiple of __PAGE_SIZE. */
- #ifndef STACK_SIZE
- #ifdef __ARCH_USE_MMU__
- #define STACK_SIZE (2 * 1024 * 1024)
- #else
--#define STACK_SIZE (4 * __pagesize)
-+#define STACK_SIZE (4 * __PAGE_SIZE)
- #endif
- #endif
-
--/* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
-+/* The initial size of the thread stack. Must be a multiple of __PAGE_SIZE. */
- #ifndef INITIAL_STACK_SIZE
--#define INITIAL_STACK_SIZE (4 * __pagesize)
-+#define INITIAL_STACK_SIZE (4 * __PAGE_SIZE)
- #endif
-
- /* Size of the thread manager stack. The "- 32" avoids wasting space
- with some malloc() implementations. */
- #ifndef THREAD_MANAGER_STACK_SIZE
--#define THREAD_MANAGER_STACK_SIZE (2 * __pagesize - 32)
-+#define THREAD_MANAGER_STACK_SIZE (2 * __PAGE_SIZE - 32)
- #endif
-
- /* The base of the "array" of thread stacks. The array will grow down from
-@@ -385,7 +381,7 @@
-
- /* Recover thread descriptor for the current thread */
-
--extern pthread_descr __pthread_find_self (void) __attribute__ ((const));
-+extern pthread_descr __pthread_find_self (void) __attribute__ ((const)) attribute_hidden;
-
- static __inline__ pthread_descr thread_self (void) __attribute__ ((const));
- static __inline__ pthread_descr thread_self (void)
-@@ -455,18 +451,18 @@
- /* Internal global functions */
-
- void __pthread_do_exit (void *retval, char *currentframe)
-- __attribute__ ((__noreturn__));
--void __pthread_destroy_specifics(void);
--void __pthread_perform_cleanup(char *currentframe);
--int __pthread_initialize_manager(void);
-+ __attribute__ ((__noreturn__)) attribute_hidden;
-+void __pthread_destroy_specifics(void) attribute_hidden;
-+void __pthread_perform_cleanup(char *currentframe) attribute_hidden;
-+int __pthread_initialize_manager(void) attribute_hidden;
- void __pthread_message(char * fmt, ...)
-- __attribute__ ((__format__ (printf, 1, 2)));
--int __pthread_manager(void *reqfd);
--int __pthread_manager_event(void *reqfd);
--void __pthread_manager_sighandler(int sig);
--void __pthread_reset_main_thread(void);
--void __fresetlockfiles(void);
--void __pthread_manager_adjust_prio(int thread_prio);
-+ __attribute__ ((__format__ (printf, 1, 2))) attribute_hidden;
-+int __pthread_manager(void *reqfd) attribute_hidden;
-+int __pthread_manager_event(void *reqfd) attribute_hidden;
-+void __pthread_manager_sighandler(int sig) attribute_hidden;
-+void __pthread_reset_main_thread(void) attribute_hidden;
-+void __fresetlockfiles(void) attribute_hidden;
-+void __pthread_manager_adjust_prio(int thread_prio) attribute_hidden;
- void __pthread_initialize_minimal (void);
-
- extern void __pthread_exit (void *retval)
-@@ -475,36 +471,36 @@
- #endif
- ;
-
--extern int __pthread_attr_setguardsize __P ((pthread_attr_t *__attr,
-- size_t __guardsize));
--extern int __pthread_attr_getguardsize __P ((__const pthread_attr_t *__attr,
-- size_t *__guardsize));
--extern int __pthread_attr_setstackaddr __P ((pthread_attr_t *__attr,
-- void *__stackaddr));
--extern int __pthread_attr_getstackaddr __P ((__const pthread_attr_t *__attr,
-- void **__stackaddr));
--extern int __pthread_attr_setstacksize __P ((pthread_attr_t *__attr,
-- size_t __stacksize));
--extern int __pthread_attr_getstacksize __P ((__const pthread_attr_t *__attr,
-- size_t *__stacksize));
--extern int __pthread_getconcurrency __P ((void));
--extern int __pthread_setconcurrency __P ((int __level));
--extern void __pthread_kill_other_threads_np __P ((void));
--
--extern void __pthread_restart_old(pthread_descr th);
--extern void __pthread_suspend_old(pthread_descr self);
--extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime);
--
--extern void __pthread_restart_new(pthread_descr th);
--extern void __pthread_suspend_new(pthread_descr self);
--extern int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstime);
-+extern int __pthread_attr_setguardsize(pthread_attr_t *__attr,
-+ size_t __guardsize) attribute_hidden;
-+extern int __pthread_attr_getguardsize(const pthread_attr_t *__attr,
-+ size_t *__guardsize) attribute_hidden;
-+extern int __pthread_attr_setstackaddr(pthread_attr_t *__attr,
-+ void *__stackaddr) attribute_hidden;
-+extern int __pthread_attr_getstackaddr(const pthread_attr_t *__attr,
-+ void **__stackaddr) attribute_hidden;
-+extern int __pthread_attr_setstacksize(pthread_attr_t *__attr,
-+ size_t __stacksize) attribute_hidden;
-+extern int __pthread_attr_getstacksize(const pthread_attr_t *__attr,
-+ size_t *__stacksize) attribute_hidden;
-+extern int __pthread_getconcurrency(void) attribute_hidden;
-+extern int __pthread_setconcurrency(int __level) attribute_hidden;
-+extern void __pthread_kill_other_threads_np(void) attribute_hidden;
-+
-+extern void __pthread_restart_old(pthread_descr th) attribute_hidden;
-+extern void __pthread_suspend_old(pthread_descr self) attribute_hidden;
-+extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime) attribute_hidden;
-+
-+extern void __pthread_restart_new(pthread_descr th) attribute_hidden;
-+extern void __pthread_suspend_new(pthread_descr self) attribute_hidden;
-+extern int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstime) attribute_hidden;
-
--extern void __pthread_wait_for_restart_signal(pthread_descr self);
-+extern void __pthread_wait_for_restart_signal(pthread_descr self) attribute_hidden;
-
- /* Global pointers to old or new suspend functions */
-
--extern void (*__pthread_restart)(pthread_descr);
--extern void (*__pthread_suspend)(pthread_descr);
-+extern void (*__pthread_restart)(pthread_descr) attribute_hidden;
-+extern void (*__pthread_suspend)(pthread_descr) attribute_hidden;
-
- #if defined NOT_IN_libc && defined IS_IN_libpthread
- extern __typeof(pthread_mutex_init) __pthread_mutex_init attribute_hidden;
-@@ -515,7 +511,7 @@
- #endif
-
- /* Prototypes for some of the new semaphore functions. */
--extern int __new_sem_post (sem_t * sem);
-+/*extern int __new_sem_post (sem_t * sem);*/
-
- /* TSD. */
- extern int __pthread_internal_tsd_set (int key, const void * pointer);
-@@ -524,12 +520,10 @@
- __pthread_internal_tsd_address (int key);
-
- /* The functions called the signal events. */
--extern void __linuxthreads_create_event (void);
--extern void __linuxthreads_death_event (void);
--extern void __linuxthreads_reap_event (void);
-+extern void __linuxthreads_create_event (void) attribute_hidden;
-+extern void __linuxthreads_death_event (void) attribute_hidden;
-+extern void __linuxthreads_reap_event (void) attribute_hidden;
-
- #include <pthread-functions.h>
-
--extern int * __libc_pthread_init (const struct pthread_functions *functions);
--
- #endif /* internals.h */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/libc_pthread_init.c uClibc-git/libpthread/linuxthreads.old/libc_pthread_init.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/libc_pthread_init.c 2014-07-25 20:36:08.013341008 +0200
-@@ -13,27 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#include <features.h>
- #include <locale.h>
--#include <stdlib.h>
- #include <string.h>
--
--/* see comment in forward.c */
--#define GCC_RENAME_BUG 1
--#ifdef GCC_RENAME_BUG
--# include <ctype.h>
--# include <signal.h>
--# include <unistd.h>
--# include <sys/time.h>
--# include <sys/wait.h>
--#endif
--
--#include "internals.h"
--#include "sysdeps/pthread/pthread-functions.h"
-+#include <linuxthreads.old/sysdeps/pthread/pthread-functions.h>
-
-
- int __libc_multiple_threads attribute_hidden __attribute__((nocommon));
-@@ -48,7 +33,7 @@
- sizeof (__libc_pthread_functions));
- #endif
-
--#if ! defined USE___THREAD && defined __UCLIBC_HAS_XLOCALE__
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_XLOCALE__
- /* Initialize thread-locale current locale to point to the global one.
- With __thread support, the variable's initializer takes care of this. */
- uselocale (LC_GLOBAL_LOCALE);
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/locale.c uClibc-git/libpthread/linuxthreads.old/locale.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/locale.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/locale.c 2014-07-25 20:36:08.013341008 +0200
-@@ -11,8 +11,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- #include <features.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/lockfile.c uClibc-git/libpthread/linuxthreads.old/lockfile.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/lockfile.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/lockfile.c 2014-07-25 20:36:08.013341008 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/Makefile.in uClibc-git/libpthread/linuxthreads.old/Makefile.in
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/Makefile.in 2014-07-25 20:36:08.009340986 +0200
-@@ -34,15 +34,12 @@
-
- libpthread_SRC := \
- attr.c cancel.c condvar.c errno.c events.c join.c lockfile.c manager.c \
-- mutex.c oldsemaphore.c pt-machine.c ptfork.c ptlongjmp.c \
-+ mutex.c pt-machine.c ptfork.c pthread.c ptlongjmp.c \
- rwlock.c semaphore.c signals.c specific.c spinlock.c wrapsyscall.c
- ifeq ($(UCLIBC_HAS_XLOCALE),y)
- libpthread_SRC += locale.c
- endif
-
--libpthread_SPEC_SRC := pthread.c
--libpthread_SPEC_SRC := $(patsubst %.c,$(libpthread_DIR)/%.c,$(libpthread_SPEC_SRC))
--
- # remove generic sources, if arch specific version is present
- ifneq ($(strip $(libpthread_ARCH_SRC)),)
- libpthread_SRC := $(filter-out $(patsubst %.c,$(libpthread_DIR)/%.c,$(notdir $(libpthread_ARCH_SRC))),$(libpthread_SRC))
-@@ -62,15 +59,12 @@
- libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
- libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
-
--libpthread-static-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SPEC_SRC))
--libpthread-shared-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.oS,$(libpthread_SPEC_SRC))
--
- ifeq ($(DOPIC),y)
--libpthread-a-y += $(libpthread_OBJ:.o=.os) $(libpthread-static-y:.o=.os)
-+libpthread-a-y += $(libpthread_OBJ:.o=.os)
- else
--libpthread-a-y += $(libpthread_OBJ) $(libpthread-static-y)
-+libpthread-a-y += $(libpthread_OBJ)
- endif
--libpthread-so-y += $(libpthread_OBJ:.o=.os) $(libpthread-shared-y)
-+libpthread-so-y += $(libpthread_OBJ:.o=.oS)
-
- lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
- lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
-@@ -93,7 +87,7 @@
- ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
- $(libpthread_OUT)/libpthread.oS: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
- endif
--$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC) $(libpthread_SPEC_SRC)
-+$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC)
- $(Q)$(RM) $@
- $(compile-m)
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/manager.c uClibc-git/libpthread/linuxthreads.old/manager.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/manager.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/manager.c 2014-07-25 20:36:08.013341008 +0200
-@@ -232,7 +232,7 @@
- break;
- case REQ_POST:
- PDEBUG("got REQ_POST\n");
-- __new_sem_post(request.req_args.post);
-+ sem_post(request.req_args.post);
- break;
- case REQ_DEBUG:
- PDEBUG("got REQ_DEBUG\n");
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/oldsemaphore.c uClibc-git/libpthread/linuxthreads.old/oldsemaphore.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/oldsemaphore.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/oldsemaphore.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,241 +0,0 @@
--/*
-- * This file contains the old semaphore code that we need to
-- * preserve for glibc-2.0 backwards compatibility. Port to glibc 2.1
-- * done by Cristian Gafton.
-- */
--
--/* Linuxthreads - a simple clone()-based implementation of Posix */
--/* threads for Linux. */
--/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */
--/* */
--/* This program is free software; you can redistribute it and/or */
--/* modify it under the terms of the GNU Library General Public License */
--/* as published by the Free Software Foundation; either version 2 */
--/* of the License, or (at your option) any later version. */
--/* */
--/* This program is distributed in the hope that it will be useful, */
--/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
--/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
--/* GNU Library General Public License for more details. */
--
--/* Semaphores a la POSIX 1003.1b */
--
--#include <errno.h>
--#include "pthread.h"
--#include "internals.h"
--#include "spinlock.h"
--#include "restart.h"
--#include "queue.h"
--
--typedef struct {
-- long int sem_status;
-- int sem_spinlock;
--} old_sem_t;
--
--/* Maximum value the semaphore can have. */
--#define SEM_VALUE_MAX ((int) ((~0u) >> 1))
--
--static __inline__ int sem_compare_and_swap(old_sem_t *sem, long oldval, long newval)
--{
-- return compare_and_swap(&sem->sem_status, oldval, newval, &sem->sem_spinlock);
--}
--
--/* The state of a semaphore is represented by a long int encoding
-- either the semaphore count if >= 0 and no thread is waiting on it,
-- or the head of the list of threads waiting for the semaphore.
-- To distinguish the two cases, we encode the semaphore count N
-- as 2N+1, so that it has the lowest bit set.
--
-- A sequence of sem_wait operations on a semaphore initialized to N
-- result in the following successive states:
-- 2N+1, 2N-1, ..., 3, 1, &first_waiting_thread, &second_waiting_thread, ...
--*/
--
--static void sem_restart_list(pthread_descr waiting);
--
--int __old_sem_init(old_sem_t *sem, int pshared, unsigned int value);
--int __old_sem_init(old_sem_t *sem, int pshared, unsigned int value)
--{
-- if (value > SEM_VALUE_MAX) {
-- errno = EINVAL;
-- return -1;
-- }
-- if (pshared) {
-- errno = ENOSYS;
-- return -1;
-- }
-- sem->sem_spinlock = 0;
-- sem->sem_status = ((long)value << 1) + 1;
-- return 0;
--}
--
--/* Function called by pthread_cancel to remove the thread from
-- waiting inside __old_sem_wait. Here we simply unconditionally
-- indicate that the thread is to be woken, by returning 1. */
--
--static int old_sem_extricate_func(void *obj attribute_unused, pthread_descr th attribute_unused)
--{
-- return 1;
--}
--
--int __old_sem_wait(old_sem_t * sem);
--int __old_sem_wait(old_sem_t * sem)
--{
-- long oldstatus, newstatus;
-- volatile pthread_descr self = thread_self();
-- pthread_descr * th;
-- pthread_extricate_if extr;
--
-- /* Set up extrication interface */
-- extr.pu_object = 0;
-- extr.pu_extricate_func = old_sem_extricate_func;
--
-- while (1) {
-- /* Register extrication interface */
-- __pthread_set_own_extricate_if(self, &extr);
-- do {
-- oldstatus = sem->sem_status;
-- if ((oldstatus & 1) && (oldstatus != 1))
-- newstatus = oldstatus - 2;
-- else {
-- newstatus = (long) self;
-- self->p_nextwaiting = (pthread_descr) oldstatus;
-- }
-- }
-- while (! sem_compare_and_swap(sem, oldstatus, newstatus));
-- if (newstatus & 1) {
-- /* We got the semaphore. */
-- __pthread_set_own_extricate_if(self, 0);
-- return 0;
-- }
-- /* Wait for sem_post or cancellation */
-- suspend(self);
-- __pthread_set_own_extricate_if(self, 0);
--
-- /* This is a cancellation point */
-- if (self->p_canceled && self->p_cancelstate == PTHREAD_CANCEL_ENABLE) {
-- /* Remove ourselves from the waiting list if we're still on it */
-- /* First check if we're at the head of the list. */
-- do {
-- oldstatus = sem->sem_status;
-- if (oldstatus != (long) self) break;
-- newstatus = (long) self->p_nextwaiting;
-- }
-- while (! sem_compare_and_swap(sem, oldstatus, newstatus));
-- /* Now, check if we're somewhere in the list.
-- There's a race condition with sem_post here, but it does not matter:
-- the net result is that at the time pthread_exit is called,
-- self is no longer reachable from sem->sem_status. */
-- if (oldstatus != (long) self && (oldstatus & 1) == 0) {
-- for (th = &(((pthread_descr) oldstatus)->p_nextwaiting);
-- *th != NULL && *th != (pthread_descr) 1;
-- th = &((*th)->p_nextwaiting)) {
-- if (*th == self) {
-- *th = self->p_nextwaiting;
-- break;
-- }
-- }
-- }
-- __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME);
-- }
-- }
--}
--
--int __old_sem_trywait(old_sem_t * sem);
--int __old_sem_trywait(old_sem_t * sem)
--{
-- long oldstatus, newstatus;
--
-- do {
-- oldstatus = sem->sem_status;
-- if ((oldstatus & 1) == 0 || (oldstatus == 1)) {
-- errno = EAGAIN;
-- return -1;
-- }
-- newstatus = oldstatus - 2;
-- }
-- while (! sem_compare_and_swap(sem, oldstatus, newstatus));
-- return 0;
--}
--
--int __old_sem_post(old_sem_t * sem);
--int __old_sem_post(old_sem_t * sem)
--{
-- long oldstatus, newstatus;
--
-- do {
-- oldstatus = sem->sem_status;
-- if ((oldstatus & 1) == 0)
-- newstatus = 3;
-- else {
-- if (oldstatus >= SEM_VALUE_MAX) {
-- /* Overflow */
-- errno = ERANGE;
-- return -1;
-- }
-- newstatus = oldstatus + 2;
-- }
-- }
-- while (! sem_compare_and_swap(sem, oldstatus, newstatus));
-- if ((oldstatus & 1) == 0)
-- sem_restart_list((pthread_descr) oldstatus);
-- return 0;
--}
--
--int __old_sem_getvalue(old_sem_t * sem, int * sval);
--int __old_sem_getvalue(old_sem_t * sem, int * sval)
--{
-- long status = sem->sem_status;
-- if (status & 1)
-- *sval = (int)((unsigned long) status >> 1);
-- else
-- *sval = 0;
-- return 0;
--}
--
--int __old_sem_destroy(old_sem_t * sem);
--int __old_sem_destroy(old_sem_t * sem)
--{
-- if ((sem->sem_status & 1) == 0) {
-- errno = EBUSY;
-- return -1;
-- }
-- return 0;
--}
--
--/* Auxiliary function for restarting all threads on a waiting list,
-- in priority order. */
--
--static void sem_restart_list(pthread_descr waiting)
--{
-- pthread_descr th, towake, *p;
--
-- /* Sort list of waiting threads by decreasing priority (insertion sort) */
-- towake = NULL;
-- while (waiting != (pthread_descr) 1) {
-- th = waiting;
-- waiting = waiting->p_nextwaiting;
-- p = &towake;
-- while (*p != NULL && th->p_priority < (*p)->p_priority)
-- p = &((*p)->p_nextwaiting);
-- th->p_nextwaiting = *p;
-- *p = th;
-- }
-- /* Wake up threads in priority order */
-- while (towake != NULL) {
-- th = towake;
-- towake = towake->p_nextwaiting;
-- th->p_nextwaiting = NULL;
-- restart(th);
-- }
--}
--
--#if defined __PIC__ && defined DO_VERSIONING
--symbol_version (__old_sem_init, sem_init, GLIBC_2.0);
--symbol_version (__old_sem_wait, sem_wait, GLIBC_2.0);
--symbol_version (__old_sem_trywait, sem_trywait, GLIBC_2.0);
--symbol_version (__old_sem_post, sem_post, GLIBC_2.0);
--symbol_version (__old_sem_getvalue, sem_getvalue, GLIBC_2.0);
--symbol_version (__old_sem_destroy, sem_destroy, GLIBC_2.0);
--#endif
--
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/ptfork.c uClibc-git/libpthread/linuxthreads.old/ptfork.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/ptfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/ptfork.c 2014-07-25 20:36:08.013341008 +0200
-@@ -93,10 +93,7 @@
- void __pthread_once_fork_child(void);
- void __pthread_once_fork_parent(void);
-
--extern __typeof(fork) __libc_fork;
--
--pid_t __fork(void) attribute_hidden;
--pid_t __fork(void)
-+static pid_t __fork(void)
- {
- pid_t pid;
- struct handler_list * prepare, * child, * parent;
-@@ -151,11 +148,7 @@
- return pid;
- }
- strong_alias(__fork,fork)
--
--pid_t vfork(void)
--{
-- return __fork();
--}
-+strong_alias(__fork,vfork)
-
- #else
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/pthread.c uClibc-git/libpthread/linuxthreads.old/pthread.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/pthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/pthread.c 2014-07-25 20:36:08.013341008 +0200
-@@ -14,8 +14,6 @@
-
- /* Thread creation, initialization, and basic low-level routines */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <errno.h>
- #include <netdb.h> /* for h_errno */
- #include <stddef.h>
-@@ -38,8 +36,6 @@
- #include <sys/types.h>
- #include <sys/syscall.h>
-
--/* mods for uClibc: __libc_sigaction is not in any standard headers */
--extern __typeof(sigaction) __libc_sigaction;
- libpthread_hidden_proto(waitpid)
- libpthread_hidden_proto(raise)
-
-@@ -260,6 +256,7 @@
- return current_rtmax;
- }
-
-+#if 0
- /* Allocate real-time signal with highest/lowest available
- priority. Please note that we don't use a lock since we assume
- this function to be called at program start. */
-@@ -272,6 +269,7 @@
- return high ? current_rtmin++ : current_rtmax--;
- }
- #endif
-+#endif
-
- /* Initialize the pthread library.
- Initialization is split in two functions:
-@@ -319,7 +317,7 @@
-
- struct pthread_functions __pthread_functions =
- {
--#ifndef USE___THREAD
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
- .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
- .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
-@@ -367,10 +365,10 @@
- .ptr_pthread_sigwait = pthread_sigwait,
- .ptr_pthread_raise = pthread_raise,
- .ptr__pthread_cleanup_push = _pthread_cleanup_push,
-- .ptr__pthread_cleanup_pop = _pthread_cleanup_pop
-+ .ptr__pthread_cleanup_pop = _pthread_cleanup_pop,
- */
- .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
-- .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
-+ .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore
- };
- #ifdef SHARED
- # define ptr_pthread_functions &__pthread_functions
-@@ -528,7 +526,7 @@
- /* On non-MMU systems we make sure that the initial thread bounds don't overlap
- * with the manager stack frame */
- NOMMU_INITIAL_THREAD_BOUNDS(__pthread_manager_thread_tos,__pthread_manager_thread_bos);
-- PDEBUG("manager stack: size=%d, bos=%p, tos=%p\n", THREAD_MANAGER_STACK_SIZE,
-+ PDEBUG("manager stack: size=%ld, bos=%p, tos=%p\n", THREAD_MANAGER_STACK_SIZE,
- __pthread_manager_thread_bos, __pthread_manager_thread_tos);
- #if 0
- PDEBUG("initial stack: estimate bos=%p, tos=%p\n",
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/ptlongjmp.c uClibc-git/libpthread/linuxthreads.old/ptlongjmp.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/ptlongjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/ptlongjmp.c 2014-07-25 20:36:08.013341008 +0200
-@@ -19,11 +19,7 @@
- #include "pthread.h"
- #include "internals.h"
- #include <bits/stackinfo.h>
--
--/* These functions are not declared anywhere since they shouldn't be
-- used at another place but here. */
--extern __typeof(siglongjmp) __libc_siglongjmp attribute_noreturn;
--extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
-+#include <jmpbuf-unwind.h>
-
- static void pthread_cleanup_upto(__jmp_buf target)
- {
-@@ -58,13 +54,13 @@
- THREAD_SETMEM(self, p_in_sighandler, NULL);
- }
-
--void attribute_noreturn siglongjmp(sigjmp_buf env, int val)
-+void siglongjmp(sigjmp_buf env, int val)
- {
- pthread_cleanup_upto(env->__jmpbuf);
- __libc_siglongjmp(env, val);
- }
-
--void attribute_noreturn longjmp(jmp_buf env, int val)
-+void longjmp(jmp_buf env, int val)
- {
- pthread_cleanup_upto(env->__jmpbuf);
- __libc_longjmp(env, val);
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/pt-machine.c uClibc-git/libpthread/linuxthreads.old/pt-machine.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/pt-machine.c 2014-07-25 20:36:08.013341008 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #define PT_EI
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/rwlock.c uClibc-git/libpthread/linuxthreads.old/rwlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/rwlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/rwlock.c 2014-07-25 20:36:08.013341008 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.c uClibc-git/libpthread/linuxthreads.old/semaphore.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/semaphore.c 2014-07-25 20:36:08.013341008 +0200
-@@ -15,6 +15,7 @@
- /* Semaphores a la POSIX 1003.1b */
-
- #include <features.h>
-+#include <limits.h>
- #include <errno.h>
- #include "pthread.h"
- #include "semaphore.h"
-@@ -23,8 +24,7 @@
- #include "restart.h"
- #include "queue.h"
-
--int __new_sem_init(sem_t *sem, int pshared, unsigned int value);
--int __new_sem_init(sem_t *sem, int pshared, unsigned int value)
-+int sem_init(sem_t *sem, int pshared, unsigned int value)
- {
- if (value > SEM_VALUE_MAX) {
- errno = EINVAL;
-@@ -41,7 +41,7 @@
- }
-
- /* Function called by pthread_cancel to remove the thread from
-- waiting inside __new_sem_wait. */
-+ waiting inside sem_wait. */
-
- static int new_sem_extricate_func(void *obj, pthread_descr th)
- {
-@@ -56,8 +56,7 @@
- return did_remove;
- }
-
--int __new_sem_wait(sem_t * sem);
--int __new_sem_wait(sem_t * sem)
-+int sem_wait(sem_t * sem)
- {
- volatile pthread_descr self = thread_self();
- pthread_extricate_if extr;
-@@ -119,8 +118,7 @@
- return 0;
- }
-
--int __new_sem_trywait(sem_t * sem);
--int __new_sem_trywait(sem_t * sem)
-+int sem_trywait(sem_t * sem)
- {
- int retval;
-
-@@ -136,8 +134,7 @@
- return retval;
- }
-
--int __new_sem_post(sem_t * sem);
--int __new_sem_post(sem_t * sem)
-+int sem_post(sem_t * sem)
- {
- pthread_descr self = thread_self();
- pthread_descr th;
-@@ -178,15 +175,13 @@
- return 0;
- }
-
--int __new_sem_getvalue(sem_t * sem, int * sval);
--int __new_sem_getvalue(sem_t * sem, int * sval)
-+int sem_getvalue(sem_t * sem, int * sval)
- {
- *sval = sem->__sem_value;
- return 0;
- }
-
--int __new_sem_destroy(sem_t * sem);
--int __new_sem_destroy(sem_t * sem)
-+int sem_destroy(sem_t * sem)
- {
- if (sem->__sem_waiting != NULL) {
- __set_errno (EBUSY);
-@@ -302,12 +297,3 @@
- /* We got the semaphore */
- return 0;
- }
--
--
--weak_alias (__new_sem_init, sem_init)
--weak_alias (__new_sem_wait, sem_wait)
--weak_alias (__new_sem_trywait, sem_trywait)
--weak_alias (__new_sem_post, sem_post)
--weak_alias (__new_sem_getvalue, sem_getvalue)
--weak_alias (__new_sem_destroy, sem_destroy)
--
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.h uClibc-git/libpthread/linuxthreads.old/semaphore.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/semaphore.h 2014-07-25 20:36:08.013341008 +0200
-@@ -17,6 +17,7 @@
-
- #include <features.h>
- #include <sys/types.h>
-+#include <limits.h>
- #ifdef __USE_XOPEN2K
- # define __need_timespec
- # include <time.h>
-@@ -42,7 +43,9 @@
- #define SEM_FAILED ((sem_t *) 0)
-
- /* Maximum value the semaphore can have. */
-+#ifndef SEM_VALUE_MAX
- #define SEM_VALUE_MAX ((int) ((~0u) >> 1))
-+#endif
-
-
- __BEGIN_DECLS
-@@ -55,13 +58,13 @@
- extern int sem_destroy (sem_t *__sem) __THROW;
-
- /* Open a named semaphore NAME with open flags OFLAG. */
--extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
-+extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
-
- /* Close descriptor for named semaphore SEM. */
- extern int sem_close (sem_t *__sem) __THROW;
-
- /* Remove named semaphore NAME. */
--extern int sem_unlink (__const char *__name) __THROW;
-+extern int sem_unlink (const char *__name) __THROW;
-
- /* Wait for SEM being posted.
-
-@@ -75,7 +78,7 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int sem_timedwait (sem_t *__restrict __sem,
-- __const struct timespec *__restrict __abstime);
-+ const struct timespec *__restrict __abstime);
- #endif
-
- /* Test whether SEM is posted. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/signals.c uClibc-git/libpthread/linuxthreads.old/signals.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/signals.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/signals.c 2014-07-25 20:36:08.013341008 +0200
-@@ -22,9 +22,6 @@
- #include "spinlock.h"
- #include <bits/sigcontextinfo.h>
-
--/* mods for uClibc: __libc_sigaction is not in any standard headers */
--extern __typeof(sigaction) __libc_sigaction;
--
- int pthread_sigmask(int how, const sigset_t * newmask, sigset_t * oldmask)
- {
- sigset_t mask;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/specific.c uClibc-git/libpthread/linuxthreads.old/specific.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/specific.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/specific.c 2014-07-25 20:36:08.013341008 +0200
-@@ -167,7 +167,7 @@
- __pthread_unlock(THREAD_GETMEM(self, p_lock));
- }
-
--#ifndef USE___THREAD
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
-
- /* Thread-specific data for libc. */
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/spinlock.c uClibc-git/libpthread/linuxthreads.old/spinlock.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/spinlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/spinlock.c 2014-07-25 20:36:08.013341008 +0200
-@@ -14,8 +14,6 @@
-
- /* Internal locks */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <errno.h>
- #include <sched.h>
- #include <time.h>
-@@ -67,7 +65,6 @@
- #if defined HAS_COMPARE_AND_SWAP
- long oldstatus, newstatus;
- int successful_seizure, spurious_wakeup_count;
-- int spin_count;
- #endif
-
- #if defined TEST_FOR_COMPARE_AND_SWAP
-@@ -87,11 +84,11 @@
- return;
-
- spurious_wakeup_count = 0;
-- spin_count = 0;
-
- /* On SMP, try spinning to get the lock. */
- #if 0
- if (__pthread_smp_kernel) {
-+ int spin_count;
- int max_count = lock->__spinlock * 2 + 10;
-
- if (max_count > MAX_ADAPTIVE_SPIN_COUNT)
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h 2014-07-25 20:36:08.025341071 +0200
-@@ -17,8 +17,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h 2014-07-25 20:36:08.025341071 +0200
-@@ -0,0 +1,42 @@
-+/*
-+ * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#ifndef _PT_MACHINE_H
-+#define _PT_MACHINE_H 1
-+#include <features.h>
-+
-+#ifndef PT_EI
-+# define PT_EI __extern_always_inline
-+#endif
-+
-+extern long int testandset (int *spinlock);
-+extern int __compare_and_swap (long int *p, long int oldval, long int newval);
-+
-+PT_EI long int
-+testandset (int *spinlock)
-+{
-+ unsigned int old = 1;
-+
-+ /* Atomically exchange @spinlock with 1 */
-+ __asm__ __volatile__(
-+ "ex %0, [%1]"
-+ : "+r" (old)
-+ : "r" (spinlock)
-+ : "memory");
-+
-+ return old;
-+
-+}
-+
-+/* Get some notion of the current stack. Need not be exactly the top
-+ of the stack, just something somewhere in the current frame.
-+ I don't trust register variables, so let's do this the safe way. */
-+#define CURRENT_STACK_FRAME \
-+__extension__ ({ char *__sp; __asm__ ("mov %0,sp" : "=r" (__sp)); __sp; })
-+
-+#else
-+#error PT_MACHINE already defined
-+#endif /* pt-machine.h */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h 2014-07-25 20:36:08.025341071 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/tls.h 2014-07-25 20:36:08.029341091 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/useldt.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/useldt.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/useldt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/useldt.h 2014-07-25 20:36:08.029341091 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef __ASSEMBLER__
- #include <stddef.h> /* For offsetof. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/tls.h 2014-07-25 20:36:08.029341091 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -18,8 +18,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h 2014-07-25 20:36:08.029341091 +0200
-@@ -15,8 +15,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
- User's Manual', by IBM and Motorola. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h 2014-07-25 20:36:08.029341091 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_LIBC_LOCK_H
- #define _BITS_LIBC_LOCK_H 1
-@@ -271,6 +270,7 @@
- _pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
- }
-
-+#if 0
- #define __libc_cleanup_push(fct, arg) \
- { struct _pthread_cleanup_buffer _buffer; \
- __libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
-@@ -278,6 +278,7 @@
- #define __libc_cleanup_pop(execute) \
- __libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \
- }
-+#endif
-
- /* Create thread-specific key. */
- #define __libc_key_create(KEY, DESTRUCTOR) \
-@@ -300,7 +301,7 @@
- library. */
-
- extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutex_attr);
-+ const pthread_mutexattr_t *__mutex_attr);
-
- extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-@@ -319,7 +320,7 @@
-
- #ifdef __USE_UNIX98
- extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-- __const pthread_rwlockattr_t *__attr);
-+ const pthread_rwlockattr_t *__attr);
-
- extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-@@ -338,7 +339,7 @@
- void (*__destr_function) (void *));
-
- extern int __pthread_setspecific (pthread_key_t __key,
-- __const void *__pointer);
-+ const void *__pointer);
-
- extern void *__pthread_getspecific (pthread_key_t __key);
-
-@@ -375,7 +376,6 @@
- weak_extern (BP_SYM (__pthread_setspecific))
- weak_extern (BP_SYM (__pthread_getspecific))
- weak_extern (BP_SYM (__pthread_once))
--weak_extern (__pthread_initialize)
- weak_extern (__pthread_atfork)
- weak_extern (BP_SYM (_pthread_cleanup_push))
- weak_extern (BP_SYM (_pthread_cleanup_pop))
-@@ -400,7 +400,6 @@
- # pragma weak __pthread_setspecific
- # pragma weak __pthread_getspecific
- # pragma weak __pthread_once
--# pragma weak __pthread_initialize
- # pragma weak __pthread_atfork
- # pragma weak _pthread_cleanup_push_defer
- # pragma weak _pthread_cleanup_pop_restore
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h 2014-07-25 20:36:08.029341091 +0200
-@@ -13,15 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_LIBC_TSD_H
- #define _BITS_LIBC_TSD_H 1
-
--#include <libc-internal.h>
--
- /* Fast thread-specific data internal to libc. */
- enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
- _LIBC_TSD_KEY_DL_ERROR,
-@@ -32,12 +29,11 @@
- _LIBC_TSD_KEY_CTYPE_TOUPPER,
- _LIBC_TSD_KEY_N };
-
--#include <sys/cdefs.h>
--#include <tls.h>
--
-+#include <features.h>
- #include <linuxthreads.old/internals.h>
-
--#if defined(USE_TLS) && USE_TLS && HAVE___THREAD
-+#ifdef __UCLIBC_HAS_TLS__
-+#include <tls.h>
-
- /* When __thread works, the generic definition is what we want. */
- # include <sysdeps/generic/bits/libc-tsd.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h 2014-07-25 20:36:08.029341091 +0200
-@@ -19,6 +19,9 @@
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-
-+#define __need_size_t
-+#include <stddef.h>
-+
- #define __need_schedparam
- #include <bits/sched.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h 2014-07-25 20:36:08.041341155 +0200
-@@ -14,18 +14,26 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <sysdep.h>
-
- /* Uncancelable open. */
-+#if defined __NR_openat && !defined __NR_open
-+#define open_not_cancel(name, flags, mode) \
-+ INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
-+ (flags), (mode))
-+#define open_not_cancel_2(name, flags) \
-+ INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), \
-+ (flags))
-+#else
- #define open_not_cancel(name, flags, mode) \
- INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
- #define open_not_cancel_2(name, flags) \
- INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
-+#endif
-
- /* Uncancelable openat. */
- #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h 2014-07-25 20:36:08.041341155 +0200
-@@ -13,25 +13,28 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTHREAD_FUNCTIONS_H
- #define _PTHREAD_FUNCTIONS_H 1
-
- #include <pthread.h>
-+#if 0
- #include <setjmp.h>
- #include <linuxthreads.old/internals.h>
-
- struct fork_block;
-+#endif
-
- /* Data type shared with libc. The libc uses it to pass on calls to
- the thread functions. Wine pokes directly into this structure,
- so if possible avoid breaking it and append new hooks to the end. */
- struct pthread_functions
- {
-+#if 0
- pid_t (*ptr_pthread_fork) (struct fork_block *);
-+#endif
- int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
- int (*ptr_pthread_attr_init) (pthread_attr_t *);
- int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
-@@ -68,26 +71,36 @@
- pthread_t (*ptr_pthread_self) (void);
- int (*ptr_pthread_setcancelstate) (int, int *);
- int (*ptr_pthread_setcanceltype) (int, int *);
-+#if 0
- void (*ptr_pthread_do_exit) (void *retval, char *currentframe);
- void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
- char *targetframe);
- pthread_descr (*ptr_pthread_thread_self) (void);
-+#endif
-+#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
- void * (*ptr_pthread_internal_tsd_get) (int key);
- void ** __attribute__ ((__const__))
- (*ptr_pthread_internal_tsd_address) (int key);
-+#endif
-+#if 0
- int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
- struct sigaction *oact);
- int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
- int (*ptr_pthread_raise) (int sig);
-+#endif
- int (*ptr_pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
- const struct timespec *);
-+#if 0
- void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer,
- void (*routine)(void *), void * arg);
-+#endif
- void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer * buffer,
- void (*routine)(void *), void * arg);
-+#if 0
- void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer,
- int execute);
-+#endif
- void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer * buffer,
- int execute);
- };
-@@ -95,4 +108,6 @@
- /* Variable in libc.so. */
- extern struct pthread_functions __libc_pthread_functions attribute_hidden;
-
-+extern int * __libc_pthread_init (const struct pthread_functions *functions);
-+
- #endif /* pthread-functions.h */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2014-07-25 20:36:08.041341155 +0200
-@@ -161,7 +161,7 @@
- if ATTR is NULL), and call function START_ROUTINE with given
- arguments ARG. */
- extern int pthread_create (pthread_t *__restrict __threadp,
-- __const pthread_attr_t *__restrict __attr,
-+ const pthread_attr_t *__restrict __attr,
- void *(*__start_routine) (void *),
- void *__restrict __arg) __THROW;
-
-@@ -201,16 +201,16 @@
- int __detachstate) __THROW;
-
- /* Return in *DETACHSTATE the `detachstate' attribute in *ATTR. */
--extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
-+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
- int *__detachstate) __THROW;
-
- /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
- extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
-- __const struct sched_param *__restrict
-+ const struct sched_param *__restrict
- __param) __THROW;
-
- /* Return in *PARAM the scheduling parameters of *ATTR. */
--extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
- __attr,
- struct sched_param *__restrict __param)
- __THROW;
-@@ -220,7 +220,7 @@
- __THROW;
-
- /* Return in *POLICY the scheduling policy of *ATTR. */
--extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
- __attr, int *__restrict __policy)
- __THROW;
-
-@@ -229,7 +229,7 @@
- int __inherit) __THROW;
-
- /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
--extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
- __attr, int *__restrict __inherit)
- __THROW;
-
-@@ -238,7 +238,7 @@
- __THROW;
-
- /* Return in *SCOPE the scheduling contention scope of *ATTR. */
--extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
-+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
- int *__restrict __scope) __THROW;
-
- #ifdef __USE_UNIX98
-@@ -247,7 +247,7 @@
- size_t __guardsize) __THROW;
-
- /* Get the size of the guard area at the bottom of the thread. */
--extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict
- __attr, size_t *__restrict __guardsize)
- __THROW;
- #endif
-@@ -261,7 +261,7 @@
- void *__stackaddr) __THROW;
-
- /* Return the previously set address for the stack. */
--extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
- __attr, void **__restrict __stackaddr)
- __THROW;
- #endif
-@@ -274,7 +274,7 @@
- size_t __stacksize) __THROW;
-
- /* Return the previously set address for the stack. */
--extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
- void **__restrict __stackaddr,
- size_t *__restrict __stacksize) __THROW;
- #endif
-@@ -286,7 +286,7 @@
- size_t __stacksize) __THROW;
-
- /* Return the currently used minimal stack size. */
--extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
- __attr, size_t *__restrict __stacksize)
- __THROW;
-
-@@ -306,7 +306,7 @@
- /* Set the scheduling parameters for TARGET_THREAD according to POLICY
- and *PARAM. */
- extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
-- __const struct sched_param *__param)
-+ const struct sched_param *__param)
- __THROW;
-
- /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
-@@ -333,7 +333,7 @@
- /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
- default values if later is NULL. */
- extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
-- __const pthread_mutexattr_t *__restrict
-+ const pthread_mutexattr_t *__restrict
- __mutex_attr) __THROW;
-
- /* Destroy MUTEX. */
-@@ -348,7 +348,7 @@
- #ifdef __USE_XOPEN2K
- /* Wait until lock becomes available, or specified time passes. */
- extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW;
- #endif
-
-@@ -366,7 +366,7 @@
- extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
-
- /* Get the process-shared flag of the mutex attribute ATTR. */
--extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
-+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -382,7 +382,7 @@
- __THROW;
-
- /* Return in *KIND the mutex kind attribute in *ATTR. */
--extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
-+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
- __attr, int *__restrict __kind) __THROW;
- #endif
-
-@@ -392,22 +392,27 @@
- /* Initialize condition variable COND using attributes ATTR, or use
- the default values if later is NULL. */
- extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
-- __const pthread_condattr_t *__restrict
-+ const pthread_condattr_t *__restrict
- __cond_attr) __THROW;
-+libpthread_hidden_proto(pthread_cond_init)
-
- /* Destroy condition variable COND. */
- extern int pthread_cond_destroy (pthread_cond_t *__cond) __THROW;
-+libpthread_hidden_proto(pthread_cond_destroy)
-
- /* Wake up one thread waiting for condition variable COND. */
- extern int pthread_cond_signal (pthread_cond_t *__cond) __THROW;
-+libpthread_hidden_proto(pthread_cond_signal)
-
- /* Wake up all threads waiting for condition variables COND. */
- extern int pthread_cond_broadcast (pthread_cond_t *__cond) __THROW;
-+libpthread_hidden_proto(pthread_cond_broadcast)
-
- /* Wait for condition variable COND to be signaled or broadcast.
- MUTEX is assumed to be locked before. */
- extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
- pthread_mutex_t *__restrict __mutex);
-+libpthread_hidden_proto(pthread_cond_wait)
-
- /* Wait for condition variable COND to be signaled or broadcast until
- ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
-@@ -415,19 +420,22 @@
- (00:00:00 GMT, January 1, 1970). */
- extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
- pthread_mutex_t *__restrict __mutex,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime);
-+libpthread_hidden_proto(pthread_cond_timedwait)
-
- /* Functions for handling condition variable attributes. */
-
- /* Initialize condition variable attribute ATTR. */
- extern int pthread_condattr_init (pthread_condattr_t *__attr) __THROW;
-+libpthread_hidden_proto(pthread_condattr_init)
-
- /* Destroy condition variable attribute ATTR. */
- extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
-+libpthread_hidden_proto(pthread_condattr_destroy)
-
- /* Get the process-shared flag of the condition variable attribute ATTR. */
--extern int pthread_condattr_getpshared (__const pthread_condattr_t *
-+extern int pthread_condattr_getpshared (const pthread_condattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -442,7 +450,7 @@
- /* Initialize read-write lock RWLOCK using attributes ATTR, or use
- the default values if later is NULL. */
- extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-- __const pthread_rwlockattr_t *__restrict
-+ const pthread_rwlockattr_t *__restrict
- __attr) __THROW;
-
- /* Destroy read-write lock RWLOCK. */
-@@ -457,7 +465,7 @@
- # ifdef __USE_XOPEN2K
- /* Try to acquire read lock for RWLOCK or return after specfied time. */
- extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW;
- # endif
-
-@@ -470,7 +478,7 @@
- # ifdef __USE_XOPEN2K
- /* Try to acquire write lock for RWLOCK or return after specfied time. */
- extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW;
- # endif
-
-@@ -487,7 +495,7 @@
- extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
-
- /* Return current setting of process-shared attribute of ATTR in PSHARED. */
--extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
-+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -496,7 +504,7 @@
- int __pshared) __THROW;
-
- /* Return current setting of reader/writer preference. */
--extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
-+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *__attr,
- int *__pref) __THROW;
-
- /* Set reader/write preference. */
-@@ -532,7 +540,7 @@
- /* Barriers are a also a new feature in 1003.1j-2000. */
-
- extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
-- __const pthread_barrierattr_t *__restrict
-+ const pthread_barrierattr_t *__restrict
- __attr, unsigned int __count) __THROW;
-
- extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
-@@ -541,7 +549,7 @@
-
- extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
-
--extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
-+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
- __restrict __attr,
- int *__restrict __pshared) __THROW;
-
-@@ -569,7 +577,7 @@
-
- /* Store POINTER in the thread-specific data slot identified by KEY. */
- extern int pthread_setspecific (pthread_key_t __key,
-- __const void *__pointer) __THROW;
-+ const void *__pointer) __THROW;
-
- /* Return current value of the thread-specific data slot identified by KEY. */
- extern void *pthread_getspecific (pthread_key_t __key) __THROW;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/tls.h 2014-07-25 20:36:08.041341155 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* By default no TLS support is available. This is signaled by the
- absence of the symbol USE_TLS. */
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h 2014-07-25 20:36:08.041341155 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/tls.h 2014-07-25 20:36:08.041341155 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c 2014-07-25 20:36:08.041341155 +0200
-@@ -19,8 +19,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include "pt-machine.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h 2014-07-25 20:36:08.041341155 +0200
-@@ -19,8 +19,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h 2014-07-25 20:36:08.065341280 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h 2014-07-25 20:36:08.073341322 +0200
-@@ -16,8 +16,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
-- not, write to the Free Software Foundation, Inc.,
-- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h 2014-07-25 20:36:08.109341510 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-@@ -33,6 +32,9 @@
- # define PT_EI __extern_always_inline
- # endif
-
-+extern long int testandset (int *);
-+extern int __compare_and_swap (long int *, long int, long int);
-+
- /* Get some notion of the current stack. Need not be exactly the top
- of the stack, just something somewhere in the current frame. */
- # define CURRENT_STACK_FRAME stack_pointer
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h 2014-07-25 20:36:08.109341510 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2014-07-25 20:36:08.129341616 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-- Boston, MA 02110-1301, USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PT_MACHINE_H
- #define _PT_MACHINE_H 1
-@@ -26,19 +25,51 @@
- #include <asm/unistd.h>
-
- #ifndef PT_EI
--# define PT_EI __extern_always_inline
-+# define PT_EI extern inline __attribute__ ((gnu_inline))
- #endif
-
--/* Memory barrier. */
- #define MEMORY_BARRIER() __asm__ ("memw" : : : "memory")
-+#define HAS_COMPARE_AND_SWAP
-+
-+extern long int testandset (int *spinlock);
-+extern int __compare_and_swap (long int *p, long int oldval, long int newval);
-
- /* Spinlock implementation; required. */
- PT_EI long int
- testandset (int *spinlock)
- {
-- int unused = 0;
-- return INTERNAL_SYSCALL (xtensa, , 4, SYS_XTENSA_ATOMIC_SET,
-- spinlock, 1, unused);
-+ unsigned long tmp;
-+ __asm__ volatile (
-+" movi %0, 0 \n"
-+" wsr %0, SCOMPARE1 \n"
-+" movi %0, 1 \n"
-+" s32c1i %0, %1, 0 \n"
-+ : "=&a" (tmp)
-+ : "a" (spinlock)
-+ : "memory"
-+ );
-+ return tmp;
-+}
-+
-+PT_EI int
-+__compare_and_swap (long int *p, long int oldval, long int newval)
-+{
-+ unsigned long tmp;
-+ unsigned long value;
-+ __asm__ volatile (
-+"1: l32i %0, %2, 0 \n"
-+" bne %0, %4, 2f \n"
-+" wsr %0, SCOMPARE1 \n"
-+" mov %1, %0 \n"
-+" mov %0, %3 \n"
-+" s32c1i %0, %2, 0 \n"
-+" bne %1, %0, 1b \n"
-+"2: \n"
-+ : "=&a" (tmp), "=&a" (value)
-+ : "a" (p), "a" (newval), "a" (oldval)
-+ : "memory" );
-+
-+ return tmp == oldval;
- }
-
- /* Get some notion of the current stack. Need not be exactly the top
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/wrapsyscall.c uClibc-git/libpthread/linuxthreads.old/wrapsyscall.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old/wrapsyscall.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old/wrapsyscall.c 2014-07-25 20:36:08.129341616 +0200
-@@ -1,4 +1,4 @@
--/* Wrapper arpund system calls to provide cancellation points.
-+/* Wrapper around system calls to provide cancellation points.
- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-@@ -15,11 +15,8 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <fcntl.h>
- #include <sys/mman.h>
- #include <pthread.h>
-@@ -83,6 +80,12 @@
- CANCELABLE_SYSCALL_VA (int, fcntl, (int fd, int cmd, ...),
- (fd, cmd, va_arg (ap, long int)), cmd)
-
-+#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
-+/* fcntl64(2). */
-+CANCELABLE_SYSCALL_VA (int, fcntl64, (int fd, int cmd, ...),
-+ (fd, cmd, va_arg (ap, long int)), cmd)
-+#endif
-+
-
- /* fsync(2). */
- CANCELABLE_SYSCALL (int, fsync, (int fd), (fd))
-@@ -230,12 +233,12 @@
- #endif /* __UCLIBC_HAS_SOCKET__ */
-
- #ifdef __UCLIBC_HAS_EPOLL__
-+# include <sys/epoll.h>
- # ifdef __NR_epoll_wait
- CANCELABLE_SYSCALL (int, epoll_wait, (int epfd, struct epoll_event *events, int maxevents, int timeout),
- (epfd, events, maxevents, timeout))
- # endif
- # ifdef __NR_epoll_pwait
--# include <signal.h>
- CANCELABLE_SYSCALL (int, epoll_pwait, (int epfd, struct epoll_event *events, int maxevents, int timeout,
- const sigset_t *set),
- (epfd, events, maxevents, timeout, set))
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/proc_service.h uClibc-git/libpthread/linuxthreads.old_db/proc_service.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/proc_service.h 2014-07-25 20:36:08.149341720 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The definitions in this file must correspond to those in the debugger. */
- #include <sys/procfs.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_init.c uClibc-git/libpthread/linuxthreads.old_db/td_init.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_init.c 2014-07-25 20:36:08.149341720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_log.c uClibc-git/libpthread/linuxthreads.old_db/td_log.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_log.c 2014-07-25 20:36:08.149341720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_symbol_list.c uClibc-git/libpthread/linuxthreads.old_db/td_symbol_list.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_symbol_list.c 2014-07-25 20:36:08.149341720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "thread_dbP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_clear_event.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_clear_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_clear_event.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,17 +14,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-
- td_err_e
--td_ta_clear_event (ta, event)
-- const td_thragent_t *ta;
-- td_thr_events_t *event;
-+td_ta_clear_event(const td_thragent_t *ta,td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_delete.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_delete.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_delete.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_enable_stats.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_enable_stats.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_enable_stats.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_addr.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_addr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_addr.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_ph.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_ph.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_ph.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_stats.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_stats.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_stats.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_new.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_new.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_new.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_reset_stats.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_reset_stats.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_reset_stats.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_set_event.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_set_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_set_event.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,17 +14,14 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-
- td_err_e
--td_ta_set_event (ta, event)
-- const td_thragent_t *ta;
-- td_thr_events_t *event;
-+td_ta_set_event(const td_thragent_t *ta,td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_thr_iter.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_thr_iter.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_thr_iter.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <alloca.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <alloca.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_clear_event.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_clear_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_clear_event.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-@@ -24,9 +23,7 @@
-
-
- td_err_e
--td_thr_clear_event (th, event)
-- const td_thrhandle_t *th;
-- td_thr_events_t *event;
-+td_thr_clear_event(const td_thrhandle_t *th,td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbresume.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbresume.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbresume.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_enable.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_enable.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_enable.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-@@ -24,9 +23,7 @@
-
-
- td_err_e
--td_thr_event_enable (th, onoff)
-- const td_thrhandle_t *th;
-- int onoff;
-+td_thr_event_enable(const td_thrhandle_t *th, int onoff)
- {
- LOG ("td_thr_event_enable");
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getfpregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getfpregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getfpregs.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getgregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getgregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getgregs.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_get_info.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_get_info.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_get_info.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregs.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregsize.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregsize.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregsize.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_set_event.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_set_event.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_set_event.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-@@ -24,9 +23,7 @@
-
-
- td_err_e
--td_thr_set_event (th, event)
-- const td_thrhandle_t *th;
-- td_thr_events_t *event;
-+td_thr_set_event(const td_thrhandle_t *th, td_thr_events_t *event)
- {
- td_thr_events_t old_event;
- int i;
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setfpregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setfpregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setfpregs.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setgregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setgregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setgregs.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setprio.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setprio.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setprio.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setsigpending.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setsigpending.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setsigpending.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setxregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setxregs.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setxregs.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <link.h>
- #include "thread_dbP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tsd.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_tsd.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_tsd.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_validate.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_validate.c
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_validate.c 2014-07-25 20:36:08.153341741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_db.h uClibc-git/libpthread/linuxthreads.old_db/thread_db.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/thread_db.h 2014-07-25 20:36:08.153341741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _THREAD_DB_H
- #define _THREAD_DB_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_dbP.h uClibc-git/libpthread/linuxthreads.old_db/thread_dbP.h
---- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_dbP.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/linuxthreads.old_db/thread_dbP.h 2014-07-25 20:36:08.153341741 +0200
-@@ -2,8 +2,6 @@
- #ifndef _THREAD_DBP_H
- #define _THREAD_DBP_H 1
-
--#define __FORCE_GLIBC
--#include <features.h>
- #include <string.h>
- #include <unistd.h>
- #include "proc_service.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/alloca_cutoff.c uClibc-git/libpthread/nptl/alloca_cutoff.c
---- uClibc-0.9.33.2/libpthread/nptl/alloca_cutoff.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/alloca_cutoff.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <alloca.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/allocatestack.c uClibc-git/libpthread/nptl/allocatestack.c
---- uClibc-0.9.33.2/libpthread/nptl/allocatestack.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/allocatestack.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-@@ -646,7 +645,7 @@
- prot) != 0)
- goto mprot_error;
- #elif defined _STACK_GROWS_UP
-- if (mprotect ((char *) pd - pd->guardsize,
-+ if (mprotect ((char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1),
- pd->guardsize - guardsize, prot) != 0)
- goto mprot_error;
- #endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/cancellation.c uClibc-git/libpthread/nptl/cancellation.c
---- uClibc-0.9.33.2/libpthread/nptl/cancellation.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/cancellation.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup.c uClibc-git/libpthread/nptl/cleanup.c
---- uClibc-0.9.33.2/libpthread/nptl/cleanup.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/cleanup.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_compat.c uClibc-git/libpthread/nptl/cleanup_compat.c
---- uClibc-0.9.33.2/libpthread/nptl/cleanup_compat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/cleanup_compat.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_defer.c uClibc-git/libpthread/nptl/cleanup_defer.c
---- uClibc-0.9.33.2/libpthread/nptl/cleanup_defer.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/cleanup_defer.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_defer_compat.c uClibc-git/libpthread/nptl/cleanup_defer_compat.c
---- uClibc-0.9.33.2/libpthread/nptl/cleanup_defer_compat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/cleanup_defer_compat.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_routine.c uClibc-git/libpthread/nptl/cleanup_routine.c
---- uClibc-0.9.33.2/libpthread/nptl/cleanup_routine.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/cleanup_routine.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,13 +13,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
-
--
-+void __pthread_cleanup_routine (struct __pthread_cleanup_frame *f);
- void
- __pthread_cleanup_routine (struct __pthread_cleanup_frame *f)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/descr.h uClibc-git/libpthread/nptl/descr.h
---- uClibc-0.9.33.2/libpthread/nptl/descr.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/descr.h 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _DESCR_H
- #define _DESCR_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/events.c uClibc-git/libpthread/nptl/events.c
---- uClibc-0.9.33.2/libpthread/nptl/events.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/events.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The functions contained here do nothing, they just return. */
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/forward.c uClibc-git/libpthread/nptl/forward.c
---- uClibc-0.9.33.2/libpthread/nptl/forward.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/forward.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/.gitignore uClibc-git/libpthread/nptl/.gitignore
---- uClibc-0.9.33.2/libpthread/nptl/.gitignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/.gitignore 2014-07-25 20:36:08.853345408 +0200
-@@ -26,3 +26,5 @@
- #
- # symlinks
- #
-+sysdeps/pthread/pt-sigfillset.c
-+sysdeps/pthread/pt-sigprocmask.c
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/herrno.c uClibc-git/libpthread/nptl/herrno.c
---- uClibc-0.9.33.2/libpthread/nptl/herrno.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/herrno.c 2014-07-25 20:36:08.865345471 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <netdb.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/init.c uClibc-git/libpthread/nptl/init.c
---- uClibc-0.9.33.2/libpthread/nptl/init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/init.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-@@ -35,7 +34,6 @@
- #include <lowlevellock.h>
- #include <bits/kernel-features.h>
- #include <stdio.h>
--extern __typeof(sigaction) __libc_sigaction;
-
- /* Size and alignment of static TLS block. */
- size_t __static_tls_size;
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/libc-cancellation.c uClibc-git/libpthread/nptl/libc-cancellation.c
---- uClibc-0.9.33.2/libpthread/nptl/libc-cancellation.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/libc-cancellation.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/linux_fsinfo.h uClibc-git/libpthread/nptl/linux_fsinfo.h
---- uClibc-0.9.33.2/libpthread/nptl/linux_fsinfo.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/linux_fsinfo.h 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LINUX_FSINFO_H
- #define _LINUX_FSINFO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/Makefile.in uClibc-git/libpthread/nptl/Makefile.in
---- uClibc-0.9.33.2/libpthread/nptl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/Makefile.in 2014-07-25 20:36:08.865345471 +0200
-@@ -145,7 +145,7 @@
- endif
-
- LDFLAGS-libpthread.so += $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so $(top_builddir)lib/libdl-$(VERSION).so \
-- -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal
-+ -Wl,-z,nodelete,-z,initfirst,-init=$(SYMBOL_PREFIX)__pthread_initialize_minimal_internal
-
- LIBS-libpthread.so := $(LIBS)
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pt-cleanup.c uClibc-git/libpthread/nptl/pt-cleanup.c
---- uClibc-0.9.33.2/libpthread/nptl/pt-cleanup.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pt-cleanup.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdlib.h>
-@@ -23,7 +22,7 @@
- #include <jmpbuf-unwind.h>
-
- void
--attribute_protected
-+/*does not apply due to hidden_proto(): attribute_protected*/
- __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
- {
- struct pthread *self = THREAD_SELF;
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_atfork.c uClibc-git/libpthread/nptl/pthread_atfork.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_atfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_atfork.c 2014-07-25 20:36:08.865345471 +0200
-@@ -30,9 +30,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <fork.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_destroy.c uClibc-git/libpthread/nptl/pthread_attr_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_destroy.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getdetachstate.c uClibc-git/libpthread/nptl/pthread_attr_getdetachstate.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getdetachstate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getdetachstate.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getguardsize.c uClibc-git/libpthread/nptl/pthread_attr_getguardsize.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getguardsize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getguardsize.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getinheritsched.c uClibc-git/libpthread/nptl/pthread_attr_getinheritsched.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getinheritsched.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getinheritsched.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedparam.c uClibc-git/libpthread/nptl/pthread_attr_getschedparam.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedparam.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getschedparam.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedpolicy.c uClibc-git/libpthread/nptl/pthread_attr_getschedpolicy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedpolicy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getschedpolicy.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getscope.c uClibc-git/libpthread/nptl/pthread_attr_getscope.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getscope.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getscope.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstackaddr.c uClibc-git/libpthread/nptl/pthread_attr_getstackaddr.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstackaddr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getstackaddr.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstack.c uClibc-git/libpthread/nptl/pthread_attr_getstack.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstack.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getstack.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstacksize.c uClibc-git/libpthread/nptl/pthread_attr_getstacksize.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstacksize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_getstacksize.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_init.c uClibc-git/libpthread/nptl/pthread_attr_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_init.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setdetachstate.c uClibc-git/libpthread/nptl/pthread_attr_setdetachstate.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setdetachstate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setdetachstate.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setguardsize.c uClibc-git/libpthread/nptl/pthread_attr_setguardsize.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setguardsize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setguardsize.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setinheritsched.c uClibc-git/libpthread/nptl/pthread_attr_setinheritsched.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setinheritsched.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setinheritsched.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedparam.c uClibc-git/libpthread/nptl/pthread_attr_setschedparam.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedparam.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setschedparam.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedpolicy.c uClibc-git/libpthread/nptl/pthread_attr_setschedpolicy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedpolicy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setschedpolicy.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setscope.c uClibc-git/libpthread/nptl/pthread_attr_setscope.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setscope.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setscope.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstackaddr.c uClibc-git/libpthread/nptl/pthread_attr_setstackaddr.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstackaddr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setstackaddr.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstack.c uClibc-git/libpthread/nptl/pthread_attr_setstack.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstack.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setstack.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstacksize.c uClibc-git/libpthread/nptl/pthread_attr_setstacksize.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstacksize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_attr_setstacksize.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_destroy.c uClibc-git/libpthread/nptl/pthread_barrierattr_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_barrierattr_destroy.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_getpshared.c uClibc-git/libpthread/nptl/pthread_barrierattr_getpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_barrierattr_getpshared.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_init.c uClibc-git/libpthread/nptl/pthread_barrierattr_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_barrierattr_init.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_setpshared.c uClibc-git/libpthread/nptl/pthread_barrierattr_setpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_barrierattr_setpshared.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cancel.c uClibc-git/libpthread/nptl/pthread_cancel.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_cancel.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_cancel.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_clock_gettime.c uClibc-git/libpthread/nptl/pthread_clock_gettime.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_clock_gettime.c 2014-07-25 20:36:08.865345471 +0200
-@@ -12,14 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
- #include <time.h>
--#include <libc-internal.h>
- #include "pthreadP.h"
-
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_clock_settime.c uClibc-git/libpthread/nptl/pthread_clock_settime.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_clock_settime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_clock_settime.c 2014-07-25 20:36:08.865345471 +0200
-@@ -12,14 +12,12 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
- #include <time.h>
--#include <libc-internal.h>
- #include "pthreadP.h"
-
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_destroy.c uClibc-git/libpthread/nptl/pthread_condattr_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_condattr_destroy.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getclock.c uClibc-git/libpthread/nptl/pthread_condattr_getclock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getclock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_condattr_getclock.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getpshared.c uClibc-git/libpthread/nptl/pthread_condattr_getpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_condattr_getpshared.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_init.c uClibc-git/libpthread/nptl/pthread_condattr_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_condattr_init.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setclock.c uClibc-git/libpthread/nptl/pthread_condattr_setclock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setclock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_condattr_setclock.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setpshared.c uClibc-git/libpthread/nptl/pthread_condattr_setpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_condattr_setpshared.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cond_destroy.c uClibc-git/libpthread/nptl/pthread_cond_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_cond_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_cond_destroy.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cond_init.c uClibc-git/libpthread/nptl/pthread_cond_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_cond_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_cond_init.c 2014-07-25 20:36:08.865345471 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_create.c uClibc-git/libpthread/nptl/pthread_create.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_create.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_create.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdbool.h>
-@@ -25,7 +24,6 @@
- #include <hp-timing.h>
- #include <ldsodefs.h>
- #include <atomic.h>
--#include <libc-internal.h>
- #include <resolv.h>
- #include <bits/kernel-features.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_detach.c uClibc-git/libpthread/nptl/pthread_detach.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_detach.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_detach.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_equal.c uClibc-git/libpthread/nptl/pthread_equal.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_equal.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_equal.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_exit.c uClibc-git/libpthread/nptl/pthread_exit.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_exit.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_exit.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include "pthreadP.h"
-
-
- void
--attribute_protected
-+attribute_protected attribute_noreturn
- __pthread_exit (void* value)
- {
- THREAD_SETMEM (THREAD_SELF, result, value);
-@@ -30,3 +29,9 @@
- __do_cancel ();
- }
- strong_alias (__pthread_exit, pthread_exit)
-+
-+/*
-+ * After a thread terminates, __uClibc_main decrements __nptl_nthreads
-+ * defined in pthread_create.c.
-+ */
-+PTHREAD_STATIC_FN_REQUIRE (pthread_create)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getattr_np.c uClibc-git/libpthread/nptl/pthread_getattr_np.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_getattr_np.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_getattr_np.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getconcurrency.c uClibc-git/libpthread/nptl/pthread_getconcurrency.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_getconcurrency.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_getconcurrency.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getschedparam.c uClibc-git/libpthread/nptl/pthread_getschedparam.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_getschedparam.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_getschedparam.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getspecific.c uClibc-git/libpthread/nptl/pthread_getspecific.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_getspecific.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_getspecific.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include "pthreadP.h"
-
-
--void *
- attribute_protected
-+void *
- __pthread_getspecific (pthread_key_t key)
- {
- struct pthread_key_data *data;
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_join.c uClibc-git/libpthread/nptl/pthread_join.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_join.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_join.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_key_create.c uClibc-git/libpthread/nptl/pthread_key_create.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_key_create.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_key_create.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_key_delete.c uClibc-git/libpthread/nptl/pthread_key_delete.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_key_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_key_delete.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_kill_other_threads.c uClibc-git/libpthread/nptl/pthread_kill_other_threads.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_kill_other_threads.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_kill_other_threads.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,11 +13,10 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
--#ifdef SHARED
-+#if 0 /*def SHARED*/
- /* This function does not serve a useful purpose in the thread library
- implementation anymore. It used to be necessary when then kernel
- could not shut down "processes" but this is not the case anymore.
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_destroy.c uClibc-git/libpthread/nptl/pthread_mutexattr_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_destroy.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprioceiling.c uClibc-git/libpthread/nptl/pthread_mutexattr_getprioceiling.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprioceiling.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_getprioceiling.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprotocol.c uClibc-git/libpthread/nptl/pthread_mutexattr_getprotocol.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprotocol.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_getprotocol.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getpshared.c uClibc-git/libpthread/nptl/pthread_mutexattr_getpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_getpshared.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getrobust.c uClibc-git/libpthread/nptl/pthread_mutexattr_getrobust.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getrobust.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_getrobust.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_gettype.c uClibc-git/libpthread/nptl/pthread_mutexattr_gettype.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_gettype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_gettype.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_init.c uClibc-git/libpthread/nptl/pthread_mutexattr_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_init.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <string.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprioceiling.c uClibc-git/libpthread/nptl/pthread_mutexattr_setprioceiling.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprioceiling.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_setprioceiling.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprotocol.c uClibc-git/libpthread/nptl/pthread_mutexattr_setprotocol.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprotocol.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_setprotocol.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setpshared.c uClibc-git/libpthread/nptl/pthread_mutexattr_setpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_setpshared.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setrobust.c uClibc-git/libpthread/nptl/pthread_mutexattr_setrobust.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setrobust.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_setrobust.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_settype.c uClibc-git/libpthread/nptl/pthread_mutexattr_settype.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_settype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutexattr_settype.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_consistent.c uClibc-git/libpthread/nptl/pthread_mutex_consistent.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_consistent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_consistent.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_destroy.c uClibc-git/libpthread/nptl/pthread_mutex_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_destroy.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_getprioceiling.c uClibc-git/libpthread/nptl/pthread_mutex_getprioceiling.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_getprioceiling.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_getprioceiling.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_init.c uClibc-git/libpthread/nptl/pthread_mutex_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_init.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_lock.c uClibc-git/libpthread/nptl/pthread_mutex_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_lock.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_setprioceiling.c uClibc-git/libpthread/nptl/pthread_mutex_setprioceiling.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_setprioceiling.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_setprioceiling.c 2014-07-25 20:36:08.869345492 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdbool.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_timedlock.c uClibc-git/libpthread/nptl/pthread_mutex_timedlock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_timedlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_timedlock.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_trylock.c uClibc-git/libpthread/nptl/pthread_mutex_trylock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_trylock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_trylock.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_unlock.c uClibc-git/libpthread/nptl/pthread_mutex_unlock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_unlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_mutex_unlock.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthreadP.h uClibc-git/libpthread/nptl/pthreadP.h
---- uClibc-0.9.33.2/libpthread/nptl/pthreadP.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthreadP.h 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTHREADP_H
- #define _PTHREADP_H 1
-@@ -221,7 +220,7 @@
- /* Cancellation test. */
- #define CANCELLATION_P(self) \
- do { \
-- int cancelhandling = THREAD_GETMEM (self, cancelhandling); \
-+ cancelhandling = THREAD_GETMEM (self, cancelhandling); \
- if (CANCEL_ENABLED_AND_CANCELED (cancelhandling)) \
- { \
- THREAD_SETMEM (self, result, PTHREAD_CANCELED); \
-@@ -411,9 +410,9 @@
- const struct sched_param *param);
- extern int __pthread_setcancelstate (int state, int *oldstate);
- extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutexattr);
-+ const pthread_mutexattr_t *__mutexattr);
- extern int __pthread_mutex_init_internal (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutexattr)
-+ const pthread_mutexattr_t *__mutexattr)
- attribute_hidden;
- extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
- extern int __pthread_mutex_destroy_internal (pthread_mutex_t *__mutex)
-@@ -452,22 +451,22 @@
- extern int __pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy);
- extern int __pthread_attr_getscope (const pthread_attr_t *attr, int *scope);
- extern int __pthread_attr_setscope (pthread_attr_t *attr, int scope);
--extern int __pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
-+extern int __pthread_attr_getstackaddr (const pthread_attr_t *__restrict
- __attr, void **__restrict __stackaddr);
- extern int __pthread_attr_setstackaddr (pthread_attr_t *__attr,
- void *__stackaddr);
--extern int __pthread_attr_getstacksize (__const pthread_attr_t *__restrict
-+extern int __pthread_attr_getstacksize (const pthread_attr_t *__restrict
- __attr,
- size_t *__restrict __stacksize);
- extern int __pthread_attr_setstacksize (pthread_attr_t *__attr,
- size_t __stacksize);
--extern int __pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-+extern int __pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
- void **__restrict __stackaddr,
- size_t *__restrict __stacksize);
- extern int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
- size_t __stacksize);
- extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-- __const pthread_rwlockattr_t *__restrict
-+ const pthread_rwlockattr_t *__restrict
- __attr);
- extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
- extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_destroy.c uClibc-git/libpthread/nptl/pthread_rwlockattr_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlockattr_destroy.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getkind_np.c uClibc-git/libpthread/nptl/pthread_rwlockattr_getkind_np.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getkind_np.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlockattr_getkind_np.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getpshared.c uClibc-git/libpthread/nptl/pthread_rwlockattr_getpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlockattr_getpshared.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_init.c uClibc-git/libpthread/nptl/pthread_rwlockattr_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlockattr_init.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setkind_np.c uClibc-git/libpthread/nptl/pthread_rwlockattr_setkind_np.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setkind_np.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlockattr_setkind_np.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setpshared.c uClibc-git/libpthread/nptl/pthread_rwlockattr_setpshared.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlockattr_setpshared.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_destroy.c uClibc-git/libpthread/nptl/pthread_rwlock_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlock_destroy.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_init.c uClibc-git/libpthread/nptl/pthread_rwlock_init.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlock_init.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <bits/kernel-features.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_tryrdlock.c uClibc-git/libpthread/nptl/pthread_rwlock_tryrdlock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_tryrdlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlock_tryrdlock.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_trywrlock.c uClibc-git/libpthread/nptl/pthread_rwlock_trywrlock.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_trywrlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_rwlock_trywrlock.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_self.c uClibc-git/libpthread/nptl/pthread_self.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_self.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_self.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setcancelstate.c uClibc-git/libpthread/nptl/pthread_setcancelstate.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_setcancelstate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_setcancelstate.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setcanceltype.c uClibc-git/libpthread/nptl/pthread_setcanceltype.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_setcanceltype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_setcanceltype.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setconcurrency.c uClibc-git/libpthread/nptl/pthread_setconcurrency.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_setconcurrency.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setschedparam.c uClibc-git/libpthread/nptl/pthread_setschedparam.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_setschedparam.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_setschedparam.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sched.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setschedprio.c uClibc-git/libpthread/nptl/pthread_setschedprio.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_setschedprio.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_setschedprio.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sched.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setspecific.c uClibc-git/libpthread/nptl/pthread_setspecific.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_setspecific.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_setspecific.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_testcancel.c uClibc-git/libpthread/nptl/pthread_testcancel.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_testcancel.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_testcancel.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include "pthreadP.h"
-@@ -24,5 +23,6 @@
- void
- pthread_testcancel (void)
- {
-+ int cancelhandling;
- CANCELLATION_P (THREAD_SELF);
- }
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_timedjoin.c uClibc-git/libpthread/nptl/pthread_timedjoin.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_timedjoin.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_timedjoin.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_tryjoin.c uClibc-git/libpthread/nptl/pthread_tryjoin.c
---- uClibc-0.9.33.2/libpthread/nptl/pthread_tryjoin.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pthread_tryjoin.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/pt-system.c uClibc-git/libpthread/nptl/pt-system.c
---- uClibc-0.9.33.2/libpthread/nptl/pt-system.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/pt-system.c 2014-07-25 20:36:08.865345471 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/res.c uClibc-git/libpthread/nptl/res.c
---- uClibc-0.9.33.2/libpthread/nptl/res.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/res.c 2014-07-25 20:36:08.869345492 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/semaphore.h uClibc-git/libpthread/nptl/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/semaphore.h 2014-07-25 20:36:08.869345492 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- #define _SEMAPHORE_H 1
-@@ -40,13 +39,13 @@
- extern int sem_destroy (sem_t *__sem) __THROW;
-
- /* Open a named semaphore NAME with open flags OFLAG. */
--extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
-+extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
-
- /* Close descriptor for named semaphore SEM. */
- extern int sem_close (sem_t *__sem) __THROW;
-
- /* Remove named semaphore NAME. */
--extern int sem_unlink (__const char *__name) __THROW;
-+extern int sem_unlink (const char *__name) __THROW;
-
- /* Wait for SEM being posted.
-
-@@ -60,7 +59,7 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int sem_timedwait (sem_t *__restrict __sem,
-- __const struct timespec *__restrict __abstime);
-+ const struct timespec *__restrict __abstime);
- #endif
-
- /* Test whether SEM is posted. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/semaphoreP.h uClibc-git/libpthread/nptl/semaphoreP.h
---- uClibc-0.9.33.2/libpthread/nptl/semaphoreP.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/semaphoreP.h 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <semaphore.h>
- #include "pthreadP.h"
-@@ -56,14 +55,3 @@
-
- /* Comparison function for search in tree with existing mappings. */
- extern int __sem_search (const void *a, const void *b) attribute_hidden;
--
--
--/* Prototypes of functions with multiple interfaces. */
--extern int __new_sem_init (sem_t *sem, int pshared, unsigned int value);
--extern int __old_sem_init (sem_t *sem, int pshared, unsigned int value);
--extern int __new_sem_destroy (sem_t *sem);
--extern int __new_sem_post (sem_t *sem);
--extern int __new_sem_wait (sem_t *sem);
--extern int __old_sem_wait (sem_t *sem);
--extern int __new_sem_trywait (sem_t *sem);
--extern int __new_sem_getvalue (sem_t *sem, int *sval);
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_close.c uClibc-git/libpthread/nptl/sem_close.c
---- uClibc-0.9.33.2/libpthread/nptl/sem_close.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sem_close.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <search.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_destroy.c uClibc-git/libpthread/nptl/sem_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/sem_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sem_destroy.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <semaphore.h>
- #include "semaphoreP.h"
-
-
- int
--__new_sem_destroy (
-+sem_destroy (
- sem_t *sem)
- {
- /* XXX Check for valid parameter. */
-@@ -30,4 +29,3 @@
- /* Nothing to do. */
- return 0;
- }
--weak_alias(__new_sem_destroy, sem_destroy)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_getvalue.c uClibc-git/libpthread/nptl/sem_getvalue.c
---- uClibc-0.9.33.2/libpthread/nptl/sem_getvalue.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sem_getvalue.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <semaphore.h>
- #include "semaphoreP.h"
-
-
- int
--__new_sem_getvalue (
-+sem_getvalue (
- sem_t *sem,
- int *sval)
- {
-@@ -34,4 +33,3 @@
-
- return 0;
- }
--weak_alias(__new_sem_getvalue, sem_getvalue)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_init.c uClibc-git/libpthread/nptl/sem_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sem_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sem_init.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-@@ -25,7 +24,7 @@
-
-
- int
--__new_sem_init (
-+sem_init (
- sem_t *sem,
- int pshared,
- unsigned int value)
-@@ -53,4 +52,3 @@
-
- return 0;
- }
--weak_alias(__new_sem_init, sem_init)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_open.c uClibc-git/libpthread/nptl/sem_open.c
---- uClibc-0.9.33.2/libpthread/nptl/sem_open.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sem_open.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_unlink.c uClibc-git/libpthread/nptl/sem_unlink.c
---- uClibc-0.9.33.2/libpthread/nptl/sem_unlink.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sem_unlink.c 2014-07-25 20:36:08.869345492 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/alpha/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/dl-tls.h 2014-07-25 20:36:08.893345617 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c 2014-07-25 20:36:08.905345680 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h 2014-07-25 20:36:08.905345680 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,6 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
--
--/* We use the normal lobngjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/alpha/libc-tls.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/libc-tls.c 2014-07-25 20:36:08.905345680 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdeps/generic/libc-tls.c>
- #include <dl-tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/Makefile uClibc-git/libpthread/nptl/sysdeps/alpha/Makefile
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/Makefile 2014-07-25 20:36:08.893345617 +0200
-@@ -12,9 +12,8 @@
- # Lesser General Public License for more details.
- #
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
- ifeq ($(subdir),csu)
- gen-as-const-headers += tcb-offsets.sym
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/alpha/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthreaddef.h 2014-07-25 20:36:08.905345680 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S 2014-07-25 20:36:08.905345680 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- .text
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S 2014-07-25 20:36:08.905345680 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/tls.h uClibc-git/libpthread/nptl/sysdeps/alpha/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/alpha/tls.h 2014-07-25 20:36:08.905345680 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/arm/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/dl-tls.h 2014-07-25 20:36:08.921345764 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h 2014-07-25 20:36:08.921345764 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -31,6 +30,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[__JMP_BUF_SP] - (_adj))
--
--/* We use the normal longjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/arm/libc-tls.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/libc-tls.c 2014-07-25 20:36:08.921345764 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdeps/generic/libc-tls.c>
- #include <dl-tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/arm/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/pthreaddef.h 2014-07-25 20:36:08.921345764 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S 2014-07-25 20:36:08.921345764 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S 2014-07-25 20:36:08.921345764 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _ERRNO_H 1
- #include <bits/errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/tls.h uClibc-git/libpthread/nptl/sysdeps/arm/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/arm/tls.h 2014-07-25 20:36:08.921345764 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/dl-tls.c uClibc-git/libpthread/nptl/sysdeps/generic/dl-tls.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/dl-tls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/generic/dl-tls.c 2014-07-25 20:36:08.937345847 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #if defined SHARED || defined NOT_IN_libc
- # error in buildsystem: This file is for libc.a
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/generic/libc-tls.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/generic/libc-tls.c 2014-07-25 20:36:08.937345847 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <ldsodefs.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/generic/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/generic/lowlevellock.h 2014-07-25 20:36:08.937345847 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <atomic.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/i386/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/dl-tls.h 2014-07-25 20:36:08.953345931 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S 2014-07-25 20:36:08.969346015 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread-errnos.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S 2014-07-25 20:36:08.989346120 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_spin_trylock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/Makefile uClibc-git/libpthread/nptl/sysdeps/i386/i686/Makefile
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/Makefile 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- # Lesser General Public License for more details.
-
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
- ifeq ($(subdir),nptl)
- # It turns out that stack coloring is in general not good on P4s. Some
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define HAVE_CMOV 1
- #include "../i486/pthread_spin_trylock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/tls.h uClibc-git/libpthread/nptl/sysdeps/i386/i686/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/tls.h 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,7 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
--
--/* We use the normal lobngjmp for unwinding. */
--extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/Makefile uClibc-git/libpthread/nptl/sysdeps/i386/Makefile
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/Makefile 2014-07-25 20:36:08.953345931 +0200
-@@ -12,9 +12,8 @@
- # Lesser General Public License for more details.
-
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
- ifeq ($(subdir),csu)
- gen-as-const-headers += tcb-offsets.sym
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/i386/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/pthreaddef.h 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_init.c 2014-07-25 20:36:08.997346163 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S 2014-07-25 20:36:08.997346163 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .globl pthread_spin_unlock
- .type pthread_spin_unlock,@function
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/tls.h uClibc-git/libpthread/nptl/sysdeps/i386/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/i386/tls.h 2014-07-25 20:36:09.001346183 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/Makefile.commonarch uClibc-git/libpthread/nptl/sysdeps/Makefile.commonarch
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/Makefile.commonarch 2014-07-25 20:36:08.869345492 +0200
-@@ -47,9 +47,8 @@
- $(libpthread_arch_OUT)/gen_tcb-offsets.s: $(libpthread_arch_OUT)/gen_tcb-offsets.c | headers
- $(compile.c)
- libpthread-generated-y += $(libpthread_arch_OUT)/gen_tcb-offsets.s
--PTHREAD_TCB_OFFSET_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
- $(libpthread_arch_OUT)/tcb-offsets.h: $(libpthread_arch_OUT)/gen_tcb-offsets.s
-- $(do_sed) $(PTHREAD_TCB_OFFSET_MANGLE) $< > $@
-+ $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
- @if test ! -s $@ ; then rm -f $@ ; false ; fi
-
- pregen-headers-$(UCLIBC_HAS_THREADS_NATIVE) += $(libpthread_arch_OUT)/tcb-offsets.h
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/metag/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/dl-tls.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/dl-tls.h 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,29 @@
-+/* Thread-local storage handling in the ELF dynamic linker. Meta version.
-+ Copyright (C) 2002 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+
-+/* Type used for the representation of TLS information in the GOT. */
-+typedef struct
-+{
-+ unsigned long int ti_module;
-+ unsigned long int ti_offset;
-+} tls_index;
-+
-+
-+extern void *__tls_get_addr (tls_index *ti);
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,36 @@
-+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <setjmp.h>
-+#include <stdint.h>
-+#include <unwind.h>
-+
-+/* Test if longjmp to JMPBUF would unwind the frame
-+ containing a local variable at ADDRESS. */
-+#undef _JMPBUF_UNWINDS
-+#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
-+ ((void *) (address) > (void *) demangle (jmpbuf[JB_SP]))
-+
-+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
-+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-+
-+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
-+ ((uintptr_t) (_address) - (_adj) > (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
-+
-+#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/metag/libc-tls.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/libc-tls.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/libc-tls.c 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,33 @@
-+/*
-+ * Thread-local storage handling in statically linked binaries. Meta version.
-+ * Copyright (C) 2009 Free Software Foundation, Inc.
-+ *
-+ * Based on GNU C Library (file: libc/sysdeps/sh/libc-tls.c)
-+ *
-+ * Copyright (C) 2010 STMicroelectronics Ltd.
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Author: Filippo Arcidiacono <filippo.arcidiacono@st.com>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#include <sysdeps/generic/libc-tls.c>
-+#include <dl-tls.h>
-+
-+#if defined (USE_TLS) && (USE_TLS)
-+
-+/* On Meta, linker optimizations are not required, so __tls_get_addr
-+ can be called even in statically linked binaries. In this case module
-+ must be always 1 and PT_TLS segment exist in the binary, otherwise it
-+ would not link. */
-+
-+void *
-+__tls_get_addr (tls_index *ti)
-+{
-+ dtv_t *dtv = THREAD_DTV ();
-+ return (char *) dtv[1].pointer.val + ti->ti_offset;
-+}
-+
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/Makefile.arch uClibc-git/libpthread/nptl/sysdeps/metag/Makefile.arch
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/Makefile.arch 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,17 @@
-+# Makefile for uClibc NPTL
-+#
-+# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+CFLAGS-pthread_spin_init.c = -DNOT_IN_libc -DIS_IN_libpthread
-+ASFLAGS-pthread_spin_lock.S = -DNOT_IN_libc -DIS_IN_libpthread
-+ASFLAGS-pthread_spin_unlock.S = -DNOT_IN_libc -DIS_IN_libpthread
-+ASFLAGS-pthread_spin_trylock.S = -DNOT_IN_libc -DIS_IN_libpthread
-+
-+ASFLAGS-pthread_spin_lock.c += -D_GNU_SOURCE
-+
-+CFLAGS-metag = $(SSP_ALL_CFLAGS)
-+
-+libc_arch_a_CSRC := libc-tls.c
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/metag_load_tp.S uClibc-git/libpthread/nptl/sysdeps/metag/metag_load_tp.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/metag_load_tp.S 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <../../../../ldso/ldso/metag/metag_load_tp.S>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/metag/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthreaddef.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/pthreaddef.h 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,40 @@
-+/* Copyright (C) 2003 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <sysdep.h>
-+
-+/* Default stack size. */
-+#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-+
-+/* Required stack pointer alignment at beginning. */
-+#define STACK_ALIGN 8
-+
-+/* Minimal stack size after allocating thread descriptor and guard size. */
-+#define MINIMAL_REST_STACK 2048
-+
-+/* Alignment requirement for TCB. */
-+#define TCB_ALIGNMENT 8
-+
-+
-+/* Location of current stack frame. */
-+#define CURRENT_STACK_FRAME __builtin_frame_address (0)
-+
-+
-+/* XXX Until we have a better place keep the definitions here. */
-+#define __exit_thread_inline(val) \
-+ INLINE_SYSCALL (exit, 1, (val))
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_init.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_init.c 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,20 @@
-+/* Copyright (C) 2002 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+/* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,20 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+ .text
-+ .global _pthread_spin_lock
-+ .type _pthread_spin_lock,function
-+_pthread_spin_lock:
-+1: LNKGETD D0Ar2, [D1Ar1]
-+ CMP D0Ar2, #0
-+ ADD D0Ar2, D0Ar2, #1
-+ LNKSETDEQ [D1Ar1], D0Ar2
-+ BNE 1b
-+ DEFR D0Ar2, TXSTAT
-+ ANDT D0Ar2, D0Ar2, #HI(0x3f000000)
-+ CMPT D0Ar2, #HI(0x02000000)
-+ BNZ 1b
-+ MOV D0Re0, #0
-+ MOV PC, D1RtP
-+ .size _pthread_spin_lock,.-_pthread_spin_lock
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,24 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+#include <pthread-errnos.h>
-+
-+ .text
-+ .global _pthread_spin_trylock
-+ .type _pthread_spin_trylock,function
-+_pthread_spin_trylock:
-+1: MOVT D0Re0, #HI(#EBUSY)
-+ ADD D0Re0, D0Re0, #LO(#EBUSY)
-+ LNKGETD D0Ar2, [D1Ar1]
-+ CMP D0Ar2, #0
-+ ADD D0Ar2, D0Ar2, #1
-+ LNKSETDEQ [D1Ar1], D0Ar2
-+ BNE 2f
-+ DEFR D0Ar2, TXSTAT
-+ ANDT D0Ar2, D0Ar2, #HI(0x3f000000)
-+ CMPT D0Ar2, #HI(0x02000000)
-+ BNZ 1b
-+ MOV D0Re0, #0
-+2: MOV PC, D1RtP
-+ .size _pthread_spin_trylock,.-_pthread_spin_trylock
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,16 @@
-+! Copyright (C) 2013 Imagination Technologies Ltd.
-+
-+! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+
-+ .text
-+ .global _pthread_spin_unlock
-+ .type _pthread_spin_unlock,function
-+_pthread_spin_unlock:
-+ MOV D0Re0, #0
-+ SETD [D1Ar1], D0Re0
-+ MOV PC, D1RtP
-+ .size _pthread_spin_unlock,.-_pthread_spin_unlock
-+
-+ /* The implementation of pthread_spin_init is identical. */
-+ .global _pthread_spin_init
-+_pthread_spin_init = _pthread_spin_unlock
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tcb-offsets.sym uClibc-git/libpthread/nptl/sysdeps/metag/tcb-offsets.sym
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tcb-offsets.sym 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/tcb-offsets.sym 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,15 @@
-+#include <sysdep.h>
-+#include <tls.h>
-+
-+RESULT offsetof (struct pthread, result)
-+TID offsetof (struct pthread, tid)
-+PID offsetof (struct pthread, pid)
-+CANCELHANDLING offsetof (struct pthread, cancelhandling)
-+CLEANUP_JMP_BUF offsetof (struct pthread, cleanup_jmp_buf)
-+MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads)
-+TLS_PRE_TCB_SIZE sizeof (struct pthread)
-+MUTEX_FUTEX offsetof (pthread_mutex_t, __data.__lock)
-+POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
-+#ifndef __ASSUME_PRIVATE_FUTEX
-+PRIVATE_FUTEX offsetof (struct pthread, header.private_futex)
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tls.h uClibc-git/libpthread/nptl/sysdeps/metag/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tls.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/metag/tls.h 2014-07-25 20:36:09.017346267 +0200
-@@ -0,0 +1,163 @@
-+/* Definition for thread-local data handling. NPTL/Meta version.
-+ Copyright (C) 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _TLS_H
-+#define _TLS_H
-+
-+#ifndef __ASSEMBLER__
-+# include <stdbool.h>
-+# include <stddef.h>
-+# include <stdint.h>
-+# include <stdlib.h>
-+# include <list.h>
-+# include <sysdep.h>
-+# include <bits/kernel-features.h>
-+
-+/* Type for the dtv. */
-+typedef union dtv
-+{
-+ size_t counter;
-+ struct
-+ {
-+ void *val;
-+ bool is_static;
-+ } pointer;
-+} dtv_t;
-+
-+typedef struct
-+{
-+ dtv_t *dtv;
-+ uintptr_t pointer_guard;
-+} tcbhead_t;
-+
-+# define TLS_MULTIPLE_THREADS_IN_TCB 1
-+
-+#else /* __ASSEMBLER__ */
-+# include <tcb-offsets.h>
-+#endif /* __ASSEMBLER__ */
-+
-+
-+/* We require TLS support in the tools. */
-+#define HAVE_TLS_SUPPORT
-+#define HAVE___THREAD 1
-+#define HAVE_TLS_MODEL_ATTRIBUTE 1
-+/* Signal that TLS support is available. */
-+# define USE_TLS 1
-+
-+#ifndef __ASSEMBLER__
-+
-+/* Get system call information. */
-+# include <sysdep.h>
-+
-+/* This is the size of the initial TCB. */
-+# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
-+
-+/* Alignment requirements for the initial TCB. */
-+# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
-+
-+/* This is the size of the TCB. */
-+# define TLS_TCB_SIZE sizeof (tcbhead_t)
-+
-+/* This is the size we need before TCB. */
-+# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
-+
-+/* Alignment requirements for the TCB. */
-+# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-+
-+/* The TLS blocks start right after the TCB. */
-+# define TLS_DTV_AT_TP 1
-+
-+/* Get the thread descriptor definition. */
-+# include <descr.h>
-+
-+/* Install the dtv pointer. The pointer passed is to the element with
-+ index -1 which contain the length. */
-+# define INSTALL_DTV(tcbp, dtvp) \
-+ ((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1
-+
-+/* Install new dtv for current thread. */
-+# define INSTALL_NEW_DTV(dtv) \
-+ (((tcbhead_t *)__builtin_thread_pointer ())->dtv = (dtv))
-+
-+/* Return dtv of given thread descriptor. */
-+# define GET_DTV(tcbp) \
-+ (((tcbhead_t *) (tcbp))->dtv)
-+
-+/* Code to initially initialize the thread pointer. This might need
-+ special attention since 'errno' is not yet available and if the
-+ operation can cause a failure 'errno' must not be touched. */
-+# define TLS_INIT_TP(tcbp, secondcall) \
-+ ({ INTERNAL_SYSCALL_DECL (err); \
-+ long result_var; \
-+ result_var = INTERNAL_SYSCALL (metag_set_tls, err, 1, (tcbp)); \
-+ INTERNAL_SYSCALL_ERROR_P (result_var, err) \
-+ ? "unknown error" : NULL; })
-+
-+/* Return the address of the dtv for the current thread. */
-+# define THREAD_DTV() \
-+ (((tcbhead_t *)__builtin_thread_pointer ())->dtv)
-+
-+/* Return the thread descriptor for the current thread.
-+ The contained asm must *not* be marked volatile since otherwise
-+ assignments like
-+ struct pthread *self = thread_self();
-+ do not get optimized away. */
-+# define THREAD_SELF \
-+ ((struct pthread *)__builtin_thread_pointer () - 1)
-+
-+/* Magic for libthread_db to know how to do THREAD_SELF. */
-+# define DB_THREAD_SELF \
-+ CONST_THREAD_AREA (32, sizeof (struct pthread))
-+
-+/* Access to data in the thread descriptor is easy. */
-+#define THREAD_GETMEM(descr, member) \
-+ descr->member
-+#define THREAD_GETMEM_NC(descr, member, idx) \
-+ descr->member[idx]
-+#define THREAD_SETMEM(descr, member, value) \
-+ descr->member = (value)
-+#define THREAD_SETMEM_NC(descr, member, idx, value) \
-+ descr->member[idx] = (value)
-+
-+/* Get and set the global scope generation counter in struct pthread. */
-+#define THREAD_GSCOPE_FLAG_UNUSED 0
-+#define THREAD_GSCOPE_FLAG_USED 1
-+#define THREAD_GSCOPE_FLAG_WAIT 2
-+#define THREAD_GSCOPE_RESET_FLAG() \
-+ do \
-+ { int __res \
-+ = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
-+ THREAD_GSCOPE_FLAG_UNUSED); \
-+ if (__res == THREAD_GSCOPE_FLAG_WAIT) \
-+ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
-+ } \
-+ while (0)
-+#define THREAD_GSCOPE_SET_FLAG() \
-+ do \
-+ { \
-+ THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
-+ atomic_write_barrier (); \
-+ } \
-+ while (0)
-+#define THREAD_GSCOPE_WAIT() \
-+ GL(dl_wait_lookup_done) ()
-+
-+#endif /* __ASSEMBLER__ */
-+
-+#endif /* tls.h */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/mips/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/dl-tls.h 2014-07-25 20:36:09.033346351 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h 2014-07-25 20:36:09.033346351 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -25,6 +24,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].__sp - (_adj))
--
--/* We use the normal longjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/mips/libc-tls.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/libc-tls.c 2014-07-25 20:36:09.033346351 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdeps/generic/libc-tls.c>
- #include <dl-tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/mips/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/pthreaddef.h 2014-07-25 20:36:09.033346351 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S 2014-07-25 20:36:09.033346351 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/asm.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S 2014-07-25 20:36:09.033346351 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/asm.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/regdef.h uClibc-git/libpthread/nptl/sysdeps/mips/regdef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/regdef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/regdef.h 2014-07-25 20:36:09.033346351 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _REGDEF_H
- #define _REGDEF_H
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/tls.h uClibc-git/libpthread/nptl/sysdeps/mips/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/mips/tls.h 2014-07-25 20:36:09.033346351 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H 1
-@@ -121,7 +120,7 @@
- operation can cause a failure 'errno' must not be touched. */
- # define TLS_INIT_TP(tcbp, secondcall) \
- ({ INTERNAL_SYSCALL_DECL (err); \
-- long result_var; \
-+ long result_var attribute_unused; \
- result_var = INTERNAL_SYSCALL (set_thread_area, err, 1, \
- (char *) (tcbp) + TLS_TCB_OFFSET); \
- INTERNAL_SYSCALL_ERROR_P (result_var, err) \
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/powerpc/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/powerpc/dl-tls.h 2014-07-25 20:36:09.045346414 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the TOC. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h 2014-07-25 20:36:09.045346414 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,6 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_GPR1] - (_adj))
--
--/* We use the normal lobngjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/powerpc/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthreaddef.h 2014-07-25 20:36:09.045346414 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c 2014-07-25 20:36:09.045346414 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c 2014-07-25 20:36:09.045346414 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/tls.h uClibc-git/libpthread/nptl/sysdeps/powerpc/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/powerpc/tls.h 2014-07-25 20:36:09.045346414 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/allocalim.h uClibc-git/libpthread/nptl/sysdeps/pthread/allocalim.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/allocalim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/allocalim.h 2014-07-25 20:36:09.061346497 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <alloca.h>
- #include <limits.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_LIBC_LOCK_H
- #define _BITS_LIBC_LOCK_H 1
-@@ -475,7 +474,7 @@
- library. */
-
- extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutex_attr);
-+ const pthread_mutexattr_t *__mutex_attr);
-
- extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-@@ -494,7 +493,7 @@
-
- #ifdef __USE_UNIX98
- extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-- __const pthread_rwlockattr_t *__attr);
-+ const pthread_rwlockattr_t *__attr);
-
- extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-@@ -513,7 +512,7 @@
- void (*__destr_function) (void *));
-
- extern int __pthread_setspecific (pthread_key_t __key,
-- __const void *__pointer);
-+ const void *__pointer);
-
- extern void *__pthread_getspecific (pthread_key_t __key);
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GENERIC_BITS_LIBC_TSD_H
- #define _GENERIC_BITS_LIBC_TSD_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h uClibc-git/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_STDIO_LOCK_H
- #define _BITS_STDIO_LOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/createthread.c uClibc-git/libpthread/nptl/sysdeps/pthread/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/createthread.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <setjmp.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/librt-cancellation.c uClibc-git/libpthread/nptl/sysdeps/pthread/librt-cancellation.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/librt-cancellation.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/librt-cancellation.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/list.h uClibc-git/libpthread/nptl/sysdeps/pthread/list.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/list.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/list.h 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LIST_H
- #define _LIST_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc-git/libpthread/nptl/sysdeps/pthread/Makefile.in
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/Makefile.in 2014-07-25 20:36:09.061346497 +0200
-@@ -33,7 +33,6 @@
- pthread_spin_init.c \
- pthread_spin_unlock.c \
- pt-longjmp.c \
-- pt-sigaction.c \
- tpp.c
- CFLAGS-pthread = $(SSP_ALL_CFLAGS) -DNOT_IN_libc -DIS_IN_libpthread
- CFLAGS-pthread_barrier_wait.c = -D_GNU_SOURCE
-@@ -49,8 +48,7 @@
- CFLAGS-rt-unwind-resume.c = -DIS_IN_librt \
- -fexceptions -fasynchronous-unwind-tables
-
--libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \
-- unwind-forcedunwind)
-+libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, unwind-forcedunwind)
-
- librt-pt-routines-y = librt-cancellation.c
- librt-pt-shared-only-routines-y = rt-unwind-resume.c
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/malloc-machine.h uClibc-git/libpthread/nptl/sysdeps/pthread/malloc-machine.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/malloc-machine.h 2014-07-25 20:36:09.081346603 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _MALLOC_MACHINE_H
- #define _MALLOC_MACHINE_H
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/posix-timer.h uClibc-git/libpthread/nptl/sysdeps/pthread/posix-timer.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/posix-timer.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/posix-timer.h 2014-07-25 20:36:09.081346603 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <endian.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <endian.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <endian.h>
- #include <errno.h>
-@@ -100,8 +99,10 @@
- {
- #ifdef __NR_clock_gettime
- INTERNAL_SYSCALL_DECL (err);
-- int ret;
-- ret = INTERNAL_SYSCALL (clock_gettime, err, 2,
-+# ifndef __ASSUME_POSIX_TIMERS
-+ int ret =
-+# endif
-+ INTERNAL_SYSCALL (clock_gettime, err, 2,
- (cond->__data.__nwaiters
- & ((1 << COND_NWAITERS_SHIFT) - 1)),
- &rt);
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <endian.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/nptl/sysdeps/pthread/pthread-functions.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread-functions.h 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTHREAD_FUNCTIONS_H
- #define _PTHREAD_FUNCTIONS_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread.h uClibc-git/libpthread/nptl/sysdeps/pthread/pthread.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread.h 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _PTHREAD_H
- #define _PTHREAD_H 1
-@@ -228,7 +227,7 @@
- getting passed ARG. Creation attributed come from ATTR. The new
- handle is stored in *NEWTHREAD. */
- extern int pthread_create (pthread_t *__restrict __newthread,
-- __const pthread_attr_t *__restrict __attr,
-+ const pthread_attr_t *__restrict __attr,
- void *(*__start_routine) (void *),
- void *__restrict __arg) __THROW __nonnull ((1, 3));
-
-@@ -258,7 +257,7 @@
- This function is a cancellation point and therefore not marked with
- __THROW. */
- extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
-- __const struct timespec *__abstime);
-+ const struct timespec *__abstime);
- #endif
-
- /* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
-@@ -287,7 +286,7 @@
- __THROW __nonnull ((1));
-
- /* Get detach state attribute. */
--extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
-+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
- int *__detachstate)
- __THROW __nonnull ((1, 2));
-
-@@ -298,7 +297,7 @@
-
-
- /* Get the size of the guard area created for stack overflow protection. */
--extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
-+extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
- size_t *__guardsize)
- __THROW __nonnull ((1, 2));
-
-@@ -309,18 +308,18 @@
-
-
- /* Return in *PARAM the scheduling parameters of *ATTR. */
--extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
- __attr,
- struct sched_param *__restrict __param)
- __THROW __nonnull ((1, 2));
-
- /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
- extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
-- __const struct sched_param *__restrict
-+ const struct sched_param *__restrict
- __param) __THROW __nonnull ((1, 2));
-
- /* Return in *POLICY the scheduling policy of *ATTR. */
--extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
- __attr, int *__restrict __policy)
- __THROW __nonnull ((1, 2));
-
-@@ -329,7 +328,7 @@
- __THROW __nonnull ((1));
-
- /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
--extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
- __attr, int *__restrict __inherit)
- __THROW __nonnull ((1, 2));
-
-@@ -340,7 +339,7 @@
-
-
- /* Return in *SCOPE the scheduling contention scope of *ATTR. */
--extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
-+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
- int *__restrict __scope)
- __THROW __nonnull ((1, 2));
-
-@@ -349,7 +348,7 @@
- __THROW __nonnull ((1));
-
- /* Return the previously set address for the stack. */
--extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
- __attr, void **__restrict __stackaddr)
- __THROW __nonnull ((1, 2)) __attribute_deprecated__;
-
-@@ -362,7 +361,7 @@
- __THROW __nonnull ((1)) __attribute_deprecated__;
-
- /* Return the currently used minimal stack size. */
--extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
-+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
- __attr, size_t *__restrict __stacksize)
- __THROW __nonnull ((1, 2));
-
-@@ -375,7 +374,7 @@
-
- #ifdef __USE_XOPEN2K
- /* Return the previously set address for the stack. */
--extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
- void **__restrict __stackaddr,
- size_t *__restrict __stacksize)
- __THROW __nonnull ((1, 2, 3));
-@@ -392,12 +391,12 @@
- the processors represented in CPUSET. */
- extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
- size_t __cpusetsize,
-- __const cpu_set_t *__cpuset)
-+ const cpu_set_t *__cpuset)
- __THROW __nonnull ((1, 3));
-
- /* Get bit set in CPUSET representing the processors threads created with
- ATTR can run on. */
--extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
-+extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
- size_t __cpusetsize,
- cpu_set_t *__cpuset)
- __THROW __nonnull ((1, 3));
-@@ -416,7 +415,7 @@
- /* Set the scheduling parameters for TARGET_THREAD according to POLICY
- and *PARAM. */
- extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
-- __const struct sched_param *__param)
-+ const struct sched_param *__param)
- __THROW __nonnull ((3));
-
- /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
-@@ -449,7 +448,7 @@
- /* Limit specified thread TH to run only on the processors represented
- in CPUSET. */
- extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
-- __const cpu_set_t *__cpuset)
-+ const cpu_set_t *__cpuset)
- __THROW __nonnull ((3));
-
- /* Get bit set in CPUSET representing the processors TH can run on. */
-@@ -581,6 +580,7 @@
- function the compiler is free to decide inlining the change when
- needed or fall back on the copy which must exist somewhere
- else. */
-+void __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame);
- __extern_inline void
- __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
- {
-@@ -724,7 +724,7 @@
-
- /* Initialize a mutex. */
- extern int pthread_mutex_init (pthread_mutex_t *__mutex,
-- __const pthread_mutexattr_t *__mutexattr)
-+ const pthread_mutexattr_t *__mutexattr)
- __THROW __nonnull ((1));
-
- /* Destroy a mutex. */
-@@ -742,7 +742,7 @@
- #ifdef __USE_XOPEN2K
- /* Wait until lock becomes available, or specified time passes. */
- extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW __nonnull ((1, 2));
- #endif
-
-@@ -752,7 +752,7 @@
-
-
- /* Get the priority ceiling of MUTEX. */
--extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
-+extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
- __restrict __mutex,
- int *__restrict __prioceiling)
- __THROW __nonnull ((1, 2));
-@@ -788,7 +788,7 @@
- __THROW __nonnull ((1));
-
- /* Get the process-shared flag of the mutex attribute ATTR. */
--extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
-+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-@@ -800,7 +800,7 @@
-
- #if defined __USE_UNIX98 || defined __USE_XOPEN2K8
- /* Return in *KIND the mutex kind attribute in *ATTR. */
--extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
-+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
- __attr, int *__restrict __kind)
- __THROW __nonnull ((1, 2));
-
-@@ -812,7 +812,7 @@
- #endif
-
- /* Return in *PROTOCOL the mutex protocol attribute in *ATTR. */
--extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
-+extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __protocol)
- __THROW __nonnull ((1, 2));
-@@ -824,7 +824,7 @@
- __THROW __nonnull ((1));
-
- /* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR. */
--extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
-+extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __prioceiling)
- __THROW __nonnull ((1, 2));
-@@ -836,11 +836,11 @@
-
- #ifdef __USE_XOPEN2K
- /* Get the robustness flag of the mutex attribute ATTR. */
--extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
-+extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
- int *__robustness)
- __THROW __nonnull ((1, 2));
- # ifdef __USE_GNU
--extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
-+extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
- int *__robustness)
- __THROW __nonnull ((1, 2));
- # endif
-@@ -863,7 +863,7 @@
- /* Initialize read-write lock RWLOCK using attributes ATTR, or use
- the default values if later is NULL. */
- extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-- __const pthread_rwlockattr_t *__restrict
-+ const pthread_rwlockattr_t *__restrict
- __attr) __THROW __nonnull ((1));
-
- /* Destroy read-write lock RWLOCK. */
-@@ -881,7 +881,7 @@
- # ifdef __USE_XOPEN2K
- /* Try to acquire read lock for RWLOCK or return after specfied time. */
- extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW __nonnull ((1, 2));
- # endif
-
-@@ -896,7 +896,7 @@
- # ifdef __USE_XOPEN2K
- /* Try to acquire write lock for RWLOCK or return after specfied time. */
- extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __THROW __nonnull ((1, 2));
- # endif
-
-@@ -916,7 +916,7 @@
- __THROW __nonnull ((1));
-
- /* Return current setting of process-shared attribute of ATTR in PSHARED. */
--extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
-+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-@@ -927,7 +927,7 @@
- __THROW __nonnull ((1));
-
- /* Return current setting of reader/writer preference. */
--extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
-+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
- __restrict __attr,
- int *__restrict __pref)
- __THROW __nonnull ((1, 2));
-@@ -943,7 +943,7 @@
- /* Initialize condition variable COND using attributes ATTR, or use
- the default values if later is NULL. */
- extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
-- __const pthread_condattr_t *__restrict
-+ const pthread_condattr_t *__restrict
- __cond_attr) __THROW __nonnull ((1));
-
- /* Destroy condition variable COND. */
-@@ -976,7 +976,7 @@
- __THROW. */
- extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
- pthread_mutex_t *__restrict __mutex,
-- __const struct timespec *__restrict
-+ const struct timespec *__restrict
- __abstime) __nonnull ((1, 2, 3));
-
- /* Functions for handling condition variable attributes. */
-@@ -990,7 +990,7 @@
- __THROW __nonnull ((1));
-
- /* Get the process-shared flag of the condition variable attribute ATTR. */
--extern int pthread_condattr_getpshared (__const pthread_condattr_t *
-+extern int pthread_condattr_getpshared (const pthread_condattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-@@ -1001,7 +1001,7 @@
-
- #ifdef __USE_XOPEN2K
- /* Get the clock selected for the conditon variable attribute ATTR. */
--extern int pthread_condattr_getclock (__const pthread_condattr_t *
-+extern int pthread_condattr_getclock (const pthread_condattr_t *
- __restrict __attr,
- __clockid_t *__restrict __clock_id)
- __THROW __nonnull ((1, 2));
-@@ -1043,7 +1043,7 @@
- /* Initialize BARRIER with the attributes in ATTR. The barrier is
- opened when COUNT waiters arrived. */
- extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
-- __const pthread_barrierattr_t *__restrict
-+ const pthread_barrierattr_t *__restrict
- __attr, unsigned int __count)
- __THROW __nonnull ((1));
-
-@@ -1065,7 +1065,7 @@
- __THROW __nonnull ((1));
-
- /* Get the process-shared flag of the barrier attribute ATTR. */
--extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
-+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-@@ -1097,7 +1097,7 @@
-
- /* Store POINTER in the thread-specific data slot identified by KEY. */
- extern int pthread_setspecific (pthread_key_t __key,
-- __const void *__pointer) __THROW ;
-+ const void *__pointer) __THROW ;
-
-
- #ifdef __USE_XOPEN2K
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_once.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c 2014-07-25 20:36:09.081346603 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c 2014-07-25 20:36:09.081346603 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <atomic.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-initfini.c 2014-07-25 20:36:09.081346603 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-longjmp.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-longjmp.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-longjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-longjmp.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,14 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdlib.h>
- #include "pthreadP.h"
-
-+extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
-+
- void
- longjmp (jmp_buf env, int val)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/setxid.h uClibc-git/libpthread/nptl/sysdeps/pthread/setxid.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/setxid.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/setxid.h 2014-07-25 20:36:09.081346603 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigfillset.c uClibc-git/libpthread/nptl/sysdeps/pthread/sigfillset.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigfillset.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/sigfillset.c 2014-07-25 20:36:09.081346603 +0200
-@@ -0,0 +1,20 @@
-+/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <pthreadP.h>
-+
-+#include <../../../../libc/signal/sigfillset.c>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigprocmask.c uClibc-git/libpthread/nptl/sysdeps/pthread/sigprocmask.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigprocmask.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/sigprocmask.c 2014-07-25 20:36:09.081346603 +0200
-@@ -0,0 +1,21 @@
-+/* Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <pthreadP.h>
-+#undef _LARGEFILE64_SOURCE
-+
-+#include <../../../../libc/sysdeps/linux/common/sigprocmask.c>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_create.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_create.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_create.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_create.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_delete.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_delete.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_delete.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_getoverr.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_getoverr.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_getoverr.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_gettime.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_gettime.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_gettime.c 2014-07-25 20:36:09.081346603 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_routines.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_routines.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_routines.c 2014-07-25 20:36:09.081346603 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_settime.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_settime.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_settime.c 2014-07-25 20:36:09.085346623 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/tpp.c uClibc-git/libpthread/nptl/sysdeps/pthread/tpp.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/tpp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/tpp.c 2014-07-25 20:36:09.085346623 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <atomic.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c 2014-07-25 20:36:09.085346623 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <stdio.h>
-@@ -112,6 +111,11 @@
- _Unwind_Reason_Code
- __gcc_personality_v0 (int version, _Unwind_Action actions,
- _Unwind_Exception_Class exception_class,
-+ struct _Unwind_Exception *ue_header,
-+ struct _Unwind_Context *context);
-+_Unwind_Reason_Code
-+__gcc_personality_v0 (int version, _Unwind_Action actions,
-+ _Unwind_Exception_Class exception_class,
- struct _Unwind_Exception *ue_header,
- struct _Unwind_Context *context)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-resume.c uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-resume.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-resume.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-resume.c 2014-07-25 20:36:09.085346623 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <stdio.h>
-@@ -66,6 +65,11 @@
- _Unwind_Reason_Code
- __gcc_personality_v0 (int version, _Unwind_Action actions,
- _Unwind_Exception_Class exception_class,
-+ struct _Unwind_Exception *ue_header,
-+ struct _Unwind_Context *context);
-+_Unwind_Reason_Code
-+__gcc_personality_v0 (int version, _Unwind_Action actions,
-+ _Unwind_Exception_Class exception_class,
- struct _Unwind_Exception *ue_header,
- struct _Unwind_Context *context)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/sh/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/dl-tls.h 2014-07-25 20:36:09.109346749 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h 2014-07-25 20:36:09.109346749 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,8 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \
- ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj))
--
--extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
--
--/* We use the normal lobngjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sh/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/pthreaddef.h 2014-07-25 20:36:09.109346749 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_init.c 2014-07-25 20:36:09.109346749 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c 2014-07-25 20:36:09.109346749 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S 2014-07-25 20:36:09.109346749 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread-errnos.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S 2014-07-25 20:36:09.109346749 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .globl pthread_spin_unlock
- .type pthread_spin_unlock,@function
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/tls.h uClibc-git/libpthread/nptl/sysdeps/sh/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sh/tls.h 2014-07-25 20:36:09.113346770 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/sparc/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/dl-tls.h 2014-07-25 20:36:09.121346811 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,7 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
--
--/* We use the normal longjmp for unwinding. */
--extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c 2014-07-25 20:36:09.133346875 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
- int
- pthread_spin_lock (pthread_spinlock_t *lock)
- {
-- __asm__ __volatile
-+ __asm__ __volatile__
- ("1: ldstub [%0], %%g2\n"
- " orcc %%g2, 0x0, %%g0\n"
- " bne,a 2f\n"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c 2014-07-25 20:36:09.133346875 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
- int
- pthread_spin_lock (pthread_spinlock_t *lock)
- {
-- __asm__ __volatile
-+ __asm__ __volatile__
- ("1: ldstub [%0], %%g2\n"
- " brnz,pn %%g2, 2f\n"
- " membar #StoreLoad | #StoreStore\n"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,6 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
--
--/* We use the normal lobngjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c 2014-07-25 20:36:09.133346875 +0200
-@@ -13,16 +13,15 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
-
- int
- pthread_spin_lock (pthread_spinlock_t *lock)
- {
-- __asm__ __volatile
-+ __asm__ __volatile__
- ("1: ldstub [%0], %%g5\n"
- " brnz,pn %%g5, 2f\n"
- " membar #StoreLoad | #StoreStore\n"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-@@ -24,7 +23,7 @@
- pthread_spin_trylock (pthread_spinlock_t *lock)
- {
- int res;
-- __asm__ __volatile
-+ __asm__ __volatile__
- ("ldstub [%1], %0\n"
- "membar #StoreLoad | #StoreStore"
- : "=r" (res)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c 2014-07-25 20:36:09.133346875 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <atomic.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/tls.h uClibc-git/libpthread/nptl/sysdeps/sparc/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/sparc/tls.h 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2014-07-25 20:36:09.133346875 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h 2014-07-25 20:36:09.133346875 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Value passed to 'clone' for initialization of the thread register. */
- #define TLS_VALUE (pd + 1)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Libr \ary; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2014-07-25 20:36:09.133346875 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Value passed to 'clone' for initialization of the thread register. */
- #define TLS_VALUE (pd + 1)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* No difference to lowlevellock.c, except we lose a couple of functions. */
- #include "lowlevellock.c"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tcb-offsets.h>
-
-@@ -35,4 +34,4 @@
- cmp r0, #0; /* If we are the parent... */ \
- strne r3, [r2, #PID_OFFSET] /* ... restore the saved PID. */
-
--#INCLUDE <../../../../../../../LIBC/SYSDEPS/LINUX/ARM/VFORK.S>
-+#include "../../../../../../../libc/sysdeps/linux/arm/vfork.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tcb-offsets.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_POSIX_OPT_H
- #define _BITS_POSIX_OPT_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Value passed to 'clone' for initialization of the thread register. */
- #define TLS_VALUE pd
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <stdlib.h>
-@@ -58,9 +57,15 @@
- #endif
- }
-
--extern __typeof(fork) __libc_fork;
- pid_t
--__libc_fork (void)
-+#if defined __arm__ && defined __thumb__ && __GNUC_PREREQ (4,6)
-+/* GCC PR target/53735
-+ * In thumb1 we run out of registers when compiling with Os so relax that
-+ * to have more registers available for spilling by using O2 here.
-+ */
-+attribute_optimize("O2")
-+#endif
-+fork (void)
- {
- pid_t pid;
- struct used_handler
-@@ -223,7 +228,4 @@
-
- return pid;
- }
--weak_alias(__libc_fork,__fork)
--libc_hidden_proto(fork)
--weak_alias(__libc_fork,fork)
--libc_hidden_weak(fork)
-+libc_hidden_def(fork)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <lowlevellock.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,14 +13,17 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <tls.h>
- #include <sysdep.h>
-
-+#ifdef __NR_getxpid
-+# undef __NR_getpid
-+# define __NR_getpid __NR_getxpid
-+#endif
-
- #ifndef NOT_IN_libc
- static inline __attribute__((always_inline)) pid_t really_getpid (pid_t oldval);
-@@ -46,8 +49,7 @@
- }
- #endif
-
--extern __typeof(getpid) __getpid;
--pid_t
-+static pid_t
- __getpid (void)
- {
- #ifdef NOT_IN_libc
-@@ -60,6 +62,8 @@
- #endif
- return result;
- }
--libc_hidden_proto(getpid)
- weak_alias(__getpid, getpid)
- libc_hidden_weak(getpid)
-+#if !defined NOT_IN_libc && !defined __NR_getppid
-+strong_alias(getpid,getppid)
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h 2014-07-25 20:36:09.137346895 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The "thread register" gets initialized from a segment descriptor.
- Initialize such a descriptor first. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S 2014-07-25 20:36:09.137346895 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "lowlevellock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2014-07-25 20:36:09.137346895 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-@@ -23,6 +22,7 @@
- #include <pthread-errnos.h>
- #include <pthread-pi-defines.h>
- #include <bits/kernel-features.h>
-+#include <tcb-offsets.h>
-
-
- .text
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-@@ -25,10 +24,10 @@
-
- .text
-
-- .globl __new_sem_post
-- .type __new_sem_post,@function
-+ .globl sem_post
-+ .type sem_post,@function
- .align 16
--__new_sem_post:
-+sem_post:
- cfi_startproc
- pushl %ebx
- cfi_adjust_cfa_offset(4)
-@@ -126,9 +125,7 @@
- cfi_restore(%ebx)
- ret
- cfi_endproc
-- .size __new_sem_post,.-__new_sem_post
--weak_alias(__new_sem_post, sem_post)
--
-+ .size sem_post,.-sem_post
-
- #ifdef __PIC__
- .section .gnu.linkonce.t.__x86.get_pc_thunk.bx,"ax",@progbits
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-@@ -23,10 +22,10 @@
-
- .text
-
-- .globl __new_sem_trywait
-- .type __new_sem_trywait,@function
-+ .globl sem_trywait
-+ .type sem_trywait,@function
- .align 16
--__new_sem_trywait:
-+sem_trywait:
- movl 4(%esp), %ecx
-
- movl (%ecx), %eax
-@@ -63,9 +62,7 @@
- #endif
- orl $-1, %eax
- ret
-- .size __new_sem_trywait,.-__new_sem_trywait
--weak_alias(__new_sem_trywait, sem_trywait)
--
-+ .size sem_trywait,.-sem_trywait
-
- #ifdef __PIC__
- .section .gnu.linkonce.t.__x86.get_pc_thunk.cx,"ax",@progbits
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-@@ -29,10 +28,10 @@
-
- .text
-
-- .globl __new_sem_wait
-- .type __new_sem_wait,@function
-+ .globl sem_wait
-+ .type sem_wait,@function
- .align 16
--__new_sem_wait:
-+sem_wait:
- .LSTARTCODE:
- pushl %ebx
- .Lpush_ebx:
-@@ -129,8 +128,7 @@
- orl $-1, %eax
-
- jmp 9b
-- .size __new_sem_wait,.-__new_sem_wait
--weak_alias(__new_sem_wait, sem_wait)
-+ .size sem_wait,.-sem_wait
-
-
- .type sem_wait_cleanup,@function
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/lowlevellock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/lowlevelrobustlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_barrier_wait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_broadcast.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_signal.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_timedwait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_wait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_rdlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_timedrdlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_timedwrlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_unlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_wrlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_post.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_timedwait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_trywait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_wait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/lowlevellock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/lowlevelrobustlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_barrier_wait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_broadcast.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_signal.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define HAVE_CMOV 1
- #include "../i486/pthread_cond_timedwait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_cond_wait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_rdlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_timedrdlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_timedwrlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define HAVE_CMOV 1
- #include "../i486/pthread_rwlock_unlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/pthread_rwlock_wrlock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_post.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_timedwait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_trywait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "../i486/sem_wait.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unwindbuf.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2014-07-25 20:36:09.141346917 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S 2014-07-25 20:36:09.141346917 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tcb-offsets.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _INTERNALTYPES_H
- #define _INTERNALTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stddef.h>
-@@ -25,7 +24,6 @@
- #pragma weak __pthread_cleanup_upto
-
-
--void _longjmp_unwind (jmp_buf env, int val);
- void
- _longjmp_unwind (jmp_buf env, int val)
- {
-@@ -38,3 +36,4 @@
- __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
- #endif
- }
-+libc_hidden_def(_longjmp_unwind)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* No difference to lowlevellock.c, except we lose a couple of functions. */
- #include "lowlevellock.c"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2014-07-25 20:36:09.141346917 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <list.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2014-07-25 20:36:09.145346937 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c 2014-07-25 20:36:09.145346937 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch 2014-07-25 20:36:09.133346875 +0200
-@@ -62,22 +62,24 @@
- pthread_getcpuclockid.c pthread_kill.c \
- pthread_mutex_cond_lock.c pthread_yield.c \
- sem_post.c sem_timedwait.c sem_trywait.c sem_wait.c \
-- pt-fork.c pt-sleep.c pthread_sigqueue.c pt-tempname.c \
-- sigtimedwait.c sigwaitinfo.c sigwait.c \
-+ pt-tempname.c \
-+ pthread_sigqueue.c \
- lowlevellock.c lowlevelrobustlock.c
-+# pt-sleep.c pt-fork.c sigtimedwait.c sigwaitinfo.c sigwait.c
-
- libpthread_linux_SSRC := #ptw-close.S ptw-open.S ptw-waitid.S ptw-waidpid.S ptw-write.S
-
- libc_linux_CSRC += libc_pthread_init.c libc_multiple_threads.c \
- register-atfork.c unregister-atfork.c getpid.c \
-- raise.c sleep.c jmp-unwind.c libc-lowlevellock.c
-+ raise.c jmp-unwind.c libc-lowlevellock.c
-+ #sleep.c
-
- librt_linux_CSRC += mq_notify.c timer_create.c timer_delete.c \
- timer_getoverr.c timer_gettime.c timer_routines.c \
- timer_settime.c
-
- # These provide both a cancellable and a not cancellable implementation
--libc_linux_SSRC = close.S open.S write.S read.S waitpid.S
-+libc_linux_SSRC = #close.S open.S write.S read.S waitpid.S
- libc_linux_SSRC := $(filter-out $(libc_linux_arch_SSRC-OMIT),$(libc_linux_SSRC))
-
- libpthread_linux_CSRC := $(filter-out $(notdir $(libpthread_linux_arch_OBJS:.o=.c)),$(libpthread_linux_CSRC))
-@@ -141,13 +143,14 @@
- CFLAGS-OMIT-getpid.c = -DNOT_IN_libc -DIS_IN_libpthread
- CFLAGS-OMIT-raise.c = -DNOT_IN_libc -DIS_IN_libpthread
- CFLAGS-OMIT-sleep.c = -DNOT_IN_libc -DIS_IN_libpthread
-+CFLAGS-OMIT-jmp-unwind.c = -DNOT_IN_libc -DIS_IN_libpthread
- CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
-
--CFLAGS-OMIT-close.S = -DNOT_IN_libc -DIS_IN_libpthread
--CFLAGS-OMIT-open.S = -DNOT_IN_libc -DIS_IN_libpthread
--CFLAGS-OMIT-read.S = -DNOT_IN_libc -DIS_IN_libpthread
--CFLAGS-OMIT-write.S = -DNOT_IN_libc -DIS_IN_libpthread
--CFLAGS-OMIT-waitpid.S = -DNOT_IN_libc -DIS_IN_libpthread
-+#CFLAGS-OMIT-close.S = -DNOT_IN_libc -DIS_IN_libpthread
-+#CFLAGS-OMIT-open.S = -DNOT_IN_libc -DIS_IN_libpthread
-+#CFLAGS-OMIT-read.S = -DNOT_IN_libc -DIS_IN_libpthread
-+#CFLAGS-OMIT-write.S = -DNOT_IN_libc -DIS_IN_libpthread
-+#CFLAGS-OMIT-waitpid.S = -DNOT_IN_libc -DIS_IN_libpthread
-
- CFLAGS-OMIT-mq_notify.c = -DIS_IN_libpthread
- CFLAGS-OMIT-timer_create.c = -DIS_IN_libpthread
-@@ -157,11 +160,11 @@
- CFLAGS-OMIT-timer_routines.c = -DIS_IN_libpthread
- CFLAGS-OMIT-timer_settime.c = -DIS_IN_libpthread
-
--ASFLAGS-open.S = -D_LIBC_REENTRANT
--ASFLAGS-close.S = -D_LIBC_REENTRANT
--ASFLAGS-read.S = -D_LIBC_REENTRANT
--ASFLAGS-write.S = -D_LIBC_REENTRANT
--ASFLAGS-waitpid.S = -D_LIBC_REENTRANT
-+#ASFLAGS-open.S = -D_LIBC_REENTRANT
-+#ASFLAGS-close.S = -D_LIBC_REENTRANT
-+#ASFLAGS-read.S = -D_LIBC_REENTRANT
-+#ASFLAGS-write.S = -D_LIBC_REENTRANT
-+#ASFLAGS-waitpid.S = -D_LIBC_REENTRANT
-
- #
- # Create header files.
-@@ -174,8 +177,6 @@
- CFLAGS-gen_structsem.c = -S
- CFLAGS-gen_unwindbuf.c = -S
-
--PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
--
- PTHREAD_LINUX_SYM := $(notdir $(wildcard $(libpthread_linux_DIR)/*.sym))
- PTHREAD_LINUX_SYM_C := $(addprefix $(libpthread_linux_OUT)/gen_,$(PTHREAD_LINUX_SYM:.sym=.c))
- PTHREAD_LINUX_SYM_S := $(PTHREAD_LINUX_SYM_C:.c=.s)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,181 @@
-+/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _BITS_PTHREADTYPES_H
-+#define _BITS_PTHREADTYPES_H 1
-+
-+#include <endian.h>
-+
-+#define __SIZEOF_PTHREAD_ATTR_T 36
-+#define __SIZEOF_PTHREAD_MUTEX_T 24
-+#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-+#define __SIZEOF_PTHREAD_COND_T 48
-+#define __SIZEOF_PTHREAD_COND_COMPAT_T 12
-+#define __SIZEOF_PTHREAD_CONDATTR_T 4
-+#define __SIZEOF_PTHREAD_RWLOCK_T 32
-+#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-+#define __SIZEOF_PTHREAD_BARRIER_T 20
-+#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-+
-+
-+/* Thread identifiers. The structure of the attribute type is not
-+ exposed on purpose. */
-+typedef unsigned long int pthread_t;
-+
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_PTHREAD_ATTR_T];
-+ long int __align;
-+} pthread_attr_t;
-+
-+
-+typedef struct __pthread_internal_slist
-+{
-+ struct __pthread_internal_slist *__next;
-+} __pthread_slist_t;
-+
-+
-+/* Data structures for mutex handling. The structure of the attribute
-+ type is not exposed on purpose. */
-+typedef union
-+{
-+ struct __pthread_mutex_s
-+ {
-+ int __lock;
-+ unsigned int __count;
-+ int __owner;
-+ /* KIND must stay at this position in the structure to maintain
-+ binary compatibility. */
-+ int __kind;
-+ unsigned int __nusers;
-+ __extension__ union
-+ {
-+ int __spins;
-+ __pthread_slist_t __list;
-+ };
-+ } __data;
-+ char __size[__SIZEOF_PTHREAD_MUTEX_T];
-+ long int __align;
-+} pthread_mutex_t;
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
-+ long int __align;
-+} pthread_mutexattr_t;
-+
-+
-+/* Data structure for conditional variable handling. The structure of
-+ the attribute type is not exposed on purpose. */
-+typedef union
-+{
-+ struct
-+ {
-+ int __lock;
-+ unsigned int __futex;
-+ __extension__ unsigned long long int __total_seq;
-+ __extension__ unsigned long long int __wakeup_seq;
-+ __extension__ unsigned long long int __woken_seq;
-+ void *__mutex;
-+ unsigned int __nwaiters;
-+ unsigned int __broadcast_seq;
-+ } __data;
-+ char __size[__SIZEOF_PTHREAD_COND_T];
-+ __extension__ long long int __align;
-+} pthread_cond_t;
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_PTHREAD_CONDATTR_T];
-+ long int __align;
-+} pthread_condattr_t;
-+
-+
-+/* Keys for thread-specific data */
-+typedef unsigned int pthread_key_t;
-+
-+
-+/* Once-only execution */
-+typedef int pthread_once_t;
-+
-+
-+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-+/* Data structure for read-write lock variable handling. The
-+ structure of the attribute type is not exposed on purpose. */
-+typedef union
-+{
-+ struct
-+ {
-+ int __lock;
-+ unsigned int __nr_readers;
-+ unsigned int __readers_wakeup;
-+ unsigned int __writer_wakeup;
-+ unsigned int __nr_readers_queued;
-+ unsigned int __nr_writers_queued;
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+ unsigned char __pad1;
-+ unsigned char __pad2;
-+ unsigned char __shared;
-+ /* FLAGS must stay at this position in the structure to maintain
-+ binary compatibility. */
-+ unsigned char __flags;
-+#else
-+ /* FLAGS must stay at this position in the structure to maintain
-+ binary compatibility. */
-+ unsigned char __flags;
-+ unsigned char __shared;
-+ unsigned char __pad1;
-+ unsigned char __pad2;
-+#endif
-+ int __writer;
-+ } __data;
-+ char __size[__SIZEOF_PTHREAD_RWLOCK_T];
-+ long int __align;
-+} pthread_rwlock_t;
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
-+ long int __align;
-+} pthread_rwlockattr_t;
-+#endif
-+
-+
-+#ifdef __USE_XOPEN2K
-+/* POSIX spinlock data type. */
-+typedef volatile int pthread_spinlock_t;
-+
-+
-+/* POSIX barriers data type. The structure of the type is
-+ deliberately not exposed. */
-+typedef union
-+{
-+ char __size[__SIZEOF_PTHREAD_BARRIER_T];
-+ long int __align;
-+} pthread_barrier_t;
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
-+ int __align;
-+} pthread_barrierattr_t;
-+#endif
-+
-+
-+#endif /* bits/pthreadtypes.h */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,35 @@
-+/* Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _SEMAPHORE_H
-+# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-+#endif
-+
-+
-+#define __SIZEOF_SEM_T 16
-+
-+
-+/* Value returned if `sem_open' failed. */
-+#define SEM_FAILED ((sem_t *) 0)
-+
-+
-+typedef union
-+{
-+ char __size[__SIZEOF_SEM_T];
-+ long int __align;
-+} sem_t;
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,9 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#define RESET_PID
-+#include <tcb-offsets.h>
-+#include "../../../../../../../libc/sysdeps/linux/metag/clone.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,23 @@
-+/* Copyright (C) 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+/* Value passed to 'clone' for initialization of the thread register. */
-+#define TLS_VALUE (pd + 1)
-+
-+/* Get the real implementation. */
-+#include <sysdeps/pthread/createthread.c>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Phil Blundell <pb@nexus.co.uk>, 2005
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <sched.h>
-+#include <signal.h>
-+#include <sysdep.h>
-+#include <tls.h>
-+
-+
-+#define ARCH_FORK() \
-+ INLINE_SYSCALL (clone, 5, \
-+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
-+ NULL, NULL, &THREAD_SELF->tid, NULL)
-+
-+#include "../fork.c"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,21 @@
-+/* Copyright (C) 2003 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+/* No difference to lowlevellock.c, except we lose a couple of functions. */
-+#include "lowlevellock.c"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,134 @@
-+/* low level locking for pthread library. Generic futex-using version.
-+ Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <errno.h>
-+#include <sysdep.h>
-+#include <lowlevellock.h>
-+#include <sys/time.h>
-+#include <tls.h>
-+
-+void
-+__lll_lock_wait_private (int *futex)
-+{
-+ do
-+ {
-+ int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
-+ if (oldval != 0)
-+ lll_futex_wait (futex, 2, LLL_PRIVATE);
-+ }
-+ while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
-+}
-+
-+
-+/* These functions don't get included in libc.so */
-+#ifdef IS_IN_libpthread
-+void
-+__lll_lock_wait (int *futex, int private)
-+{
-+ do
-+ {
-+ int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
-+ if (oldval != 0)
-+ lll_futex_wait (futex, 2, private);
-+ }
-+ while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
-+}
-+
-+
-+int
-+__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
-+{
-+ struct timespec rt;
-+
-+ /* Reject invalid timeouts. */
-+ if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-+ return EINVAL;
-+
-+ /* Upgrade the lock. */
-+ if (atomic_exchange_acq (futex, 2) == 0)
-+ return 0;
-+
-+ do
-+ {
-+ struct timeval tv;
-+
-+ /* Get the current time. */
-+ (void) gettimeofday (&tv, NULL);
-+
-+ /* Compute relative timeout. */
-+ rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-+ rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-+ if (rt.tv_nsec < 0)
-+ {
-+ rt.tv_nsec += 1000000000;
-+ --rt.tv_sec;
-+ }
-+
-+ /* Already timed out? */
-+ if (rt.tv_sec < 0)
-+ return ETIMEDOUT;
-+
-+ // XYZ: Lost the lock to check whether it was private.
-+ lll_futex_timed_wait (futex, 2, &rt, private);
-+ }
-+ while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
-+
-+ return 0;
-+}
-+
-+
-+int
-+__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
-+{
-+ int tid;
-+
-+ if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-+ return EINVAL;
-+
-+ /* Repeat until thread terminated. */
-+ while ((tid = *tidp) != 0)
-+ {
-+ struct timeval tv;
-+ struct timespec rt;
-+
-+ /* Get the current time. */
-+ (void) gettimeofday (&tv, NULL);
-+
-+ /* Compute relative timeout. */
-+ rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-+ rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-+ if (rt.tv_nsec < 0)
-+ {
-+ rt.tv_nsec += 1000000000;
-+ --rt.tv_sec;
-+ }
-+
-+ /* Already timed out? */
-+ if (rt.tv_sec < 0)
-+ return ETIMEDOUT;
-+
-+ /* Wait until thread terminates. */
-+ // XYZ: Lost the lock to check whether it was private.
-+ if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
-+ return ETIMEDOUT;
-+ }
-+
-+ return 0;
-+}
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,279 @@
-+/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _LOWLEVELLOCK_H
-+#define _LOWLEVELLOCK_H 1
-+
-+#include <time.h>
-+#include <sys/param.h>
-+#include <bits/pthreadtypes.h>
-+#include <atomic.h>
-+#include <sysdep.h>
-+#include <bits/kernel-features.h>
-+
-+#define FUTEX_WAIT 0
-+#define FUTEX_WAKE 1
-+#define FUTEX_REQUEUE 3
-+#define FUTEX_CMP_REQUEUE 4
-+#define FUTEX_WAKE_OP 5
-+#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
-+#define FUTEX_LOCK_PI 6
-+#define FUTEX_UNLOCK_PI 7
-+#define FUTEX_TRYLOCK_PI 8
-+#define FUTEX_WAIT_BITSET 9
-+#define FUTEX_WAKE_BITSET 10
-+#define FUTEX_PRIVATE_FLAG 128
-+#define FUTEX_CLOCK_REALTIME 256
-+
-+#define FUTEX_BITSET_MATCH_ANY 0xffffffff
-+
-+/* Values for 'private' parameter of locking macros. Yes, the
-+ definition seems to be backwards. But it is not. The bit will be
-+ reversed before passing to the system call. */
-+#define LLL_PRIVATE 0
-+#define LLL_SHARED FUTEX_PRIVATE_FLAG
-+
-+
-+#if !defined NOT_IN_libc || defined IS_IN_rtld
-+/* In libc.so or ld.so all futexes are private. */
-+# ifdef __ASSUME_PRIVATE_FUTEX
-+# define __lll_private_flag(fl, private) \
-+ ((fl) | FUTEX_PRIVATE_FLAG)
-+# else
-+# define __lll_private_flag(fl, private) \
-+ ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))
-+# endif
-+#else
-+# ifdef __ASSUME_PRIVATE_FUTEX
-+# define __lll_private_flag(fl, private) \
-+ (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
-+# else
-+# define __lll_private_flag(fl, private) \
-+ (__builtin_constant_p (private) \
-+ ? ((private) == 0 \
-+ ? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex)) \
-+ : (fl)) \
-+ : ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
-+ & THREAD_GETMEM (THREAD_SELF, header.private_futex))))
-+# endif
-+#endif
-+
-+
-+#define lll_futex_wait(futexp, val, private) \
-+ lll_futex_timed_wait(futexp, val, NULL, private)
-+
-+#define lll_futex_timed_wait(futexp, val, timespec, private) \
-+ ({ \
-+ INTERNAL_SYSCALL_DECL (__err); \
-+ long int __ret; \
-+ __ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
-+ __lll_private_flag (FUTEX_WAIT, private), \
-+ (val), (timespec)); \
-+ __ret; \
-+ })
-+
-+#define lll_futex_wake(futexp, nr, private) \
-+ ({ \
-+ INTERNAL_SYSCALL_DECL (__err); \
-+ long int __ret; \
-+ __ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
-+ __lll_private_flag (FUTEX_WAKE, private), \
-+ (nr), 0); \
-+ __ret; \
-+ })
-+
-+#define lll_robust_dead(futexv, private) \
-+ do \
-+ { \
-+ int *__futexp = &(futexv); \
-+ atomic_or (__futexp, FUTEX_OWNER_DIED); \
-+ lll_futex_wake (__futexp, 1, private); \
-+ } \
-+ while (0)
-+
-+/* Returns non-zero if error happened, zero if success. */
-+#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
-+ ({ \
-+ INTERNAL_SYSCALL_DECL (__err); \
-+ long int __ret; \
-+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
-+ __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
-+ (nr_wake), (nr_move), (mutex), (val)); \
-+ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
-+ })
-+
-+
-+/* Returns non-zero if error happened, zero if success. */
-+#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
-+ ({ \
-+ INTERNAL_SYSCALL_DECL (__err); \
-+ long int __ret; \
-+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
-+ __lll_private_flag (FUTEX_WAKE_OP, private), \
-+ (nr_wake), (nr_wake2), (futexp2), \
-+ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
-+ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
-+ })
-+
-+
-+#define lll_trylock(lock) \
-+ atomic_compare_and_exchange_val_acq(&(lock), 1, 0)
-+
-+#define lll_cond_trylock(lock) \
-+ atomic_compare_and_exchange_val_acq(&(lock), 2, 0)
-+
-+#define __lll_robust_trylock(futex, id) \
-+ (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0)
-+#define lll_robust_trylock(lock, id) \
-+ __lll_robust_trylock (&(lock), id)
-+
-+extern void __lll_lock_wait_private (int *futex) attribute_hidden;
-+extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
-+extern int __lll_robust_lock_wait (int *futex, int private) attribute_hidden;
-+
-+#define __lll_lock(futex, private) \
-+ ((void) ({ \
-+ int *__futex = (futex); \
-+ if (unlikely(atomic_compare_and_exchange_val_acq (__futex, 1, 0))) \
-+ { \
-+ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
-+ __lll_lock_wait_private (__futex); \
-+ else \
-+ __lll_lock_wait (__futex, private); \
-+ } \
-+ }))
-+#define lll_lock(futex, private) __lll_lock (&(futex), private)
-+
-+
-+#define __lll_robust_lock(futex, id, private) \
-+ ({ \
-+ int *__futex = (futex); \
-+ int __val = 0; \
-+ \
-+ if (unlikely(atomic_compare_and_exchange_bool_acq (__futex, id, 0))) \
-+ __val = __lll_robust_lock_wait (__futex, private); \
-+ __val; \
-+ })
-+#define lll_robust_lock(futex, id, private) \
-+ __lll_robust_lock (&(futex), id, private)
-+
-+
-+#define __lll_cond_lock(futex, private) \
-+ ((void) ({ \
-+ int *__futex = (futex); \
-+ if (unlikely(atomic_exchange_acq (__futex, 2))) \
-+ __lll_lock_wait (__futex, private); \
-+ }))
-+#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
-+
-+
-+#define lll_robust_cond_lock(futex, id, private) \
-+ __lll_robust_lock (&(futex), (id) | FUTEX_WAITERS, private)
-+
-+
-+extern int __lll_timedlock_wait (int *futex, const struct timespec *,
-+ int private) attribute_hidden;
-+extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *,
-+ int private) attribute_hidden;
-+
-+#define __lll_timedlock(futex, abstime, private) \
-+ ({ \
-+ int *__futex = (futex); \
-+ int __val = 0; \
-+ \
-+ if (unlikely(atomic_exchange_acq (__futex, 1))) \
-+ __val = __lll_timedlock_wait (__futex, abstime, private); \
-+ __val; \
-+ })
-+#define lll_timedlock(futex, abstime, private) \
-+ __lll_timedlock (&(futex), abstime, private)
-+
-+
-+#define __lll_robust_timedlock(futex, abstime, id, private) \
-+ ({ \
-+ int *__futex = (futex); \
-+ int __val = 0; \
-+ \
-+ if (unlikely(atomic_compare_and_exchange_bool_acq (__futex, id, 0))) \
-+ __val = __lll_robust_timedlock_wait (__futex, abstime, private); \
-+ __val; \
-+ })
-+#define lll_robust_timedlock(futex, abstime, id, private) \
-+ __lll_robust_timedlock (&(futex), abstime, id, private)
-+
-+
-+#define __lll_unlock(futex, private) \
-+ (void) \
-+ ({ int *__futex = (futex); \
-+ int __oldval = atomic_exchange_rel (__futex, 0); \
-+ if (unlikely(__oldval > 1)) \
-+ lll_futex_wake (__futex, 1, private); \
-+ })
-+#define lll_unlock(futex, private) __lll_unlock(&(futex), private)
-+
-+
-+#define __lll_robust_unlock(futex, private) \
-+ (void) \
-+ ({ int *__futex = (futex); \
-+ int __oldval = atomic_exchange_rel (__futex, 0); \
-+ if (unlikely(__oldval & FUTEX_WAITERS)) \
-+ lll_futex_wake (__futex, 1, private); \
-+ })
-+#define lll_robust_unlock(futex, private) \
-+ __lll_robust_unlock(&(futex), private)
-+
-+
-+#define lll_islocked(futex) \
-+ (futex != 0)
-+
-+
-+/* Our internal lock implementation is identical to the binary-compatible
-+ mutex implementation. */
-+
-+/* Initializers for lock. */
-+#define LLL_LOCK_INITIALIZER (0)
-+#define LLL_LOCK_INITIALIZER_LOCKED (1)
-+
-+/* The states of a lock are:
-+ 0 - untaken
-+ 1 - taken by one user
-+ >1 - taken by more users */
-+
-+/* The kernel notifies a process which uses CLONE_CLEARTID via futex
-+ wakeup when the clone terminates. The memory location contains the
-+ thread ID while the clone is running and is reset to zero
-+ afterwards. */
-+#define lll_wait_tid(tid) \
-+ do { \
-+ __typeof (tid) __tid; \
-+ while ((__tid = (tid)) != 0) \
-+ lll_futex_wait (&(tid), __tid, LLL_SHARED);\
-+ } while (0)
-+
-+extern int __lll_timedwait_tid (int *, const struct timespec *)
-+ attribute_hidden;
-+
-+#define lll_timedwait_tid(tid, abstime) \
-+ ({ \
-+ int __res = 0; \
-+ if ((tid) != 0) \
-+ __res = __lll_timedwait_tid (&(tid), (abstime)); \
-+ __res; \
-+ })
-+
-+#endif /* lowlevellock.h */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,13 @@
-+# Makefile for uClibc NPTL
-+#
-+# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+top_srcdir=../../../../../../../
-+top_builddir=../../../../../../../
-+all: objs
-+include $(top_builddir)Rules.mak
-+include Makefile.arch
-+include $(top_srcdir)Makerules
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,31 @@
-+# Makefile for uClibc NPTL
-+#
-+# Copyright (C) 2006 Steven J. Hill <sjhill@uclibc.org>
-+#
-+# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+#
-+
-+libpthread_linux_arch_SSRC = pt-vfork.S
-+libpthread_linux_arch_CSRC = pthread_once.c \
-+ pt-__syscall_rt_sigaction.c pt-__syscall_error.c \
-+ lowlevellock.c
-+
-+libc_linux_arch_CSRC = fork.c libc-lowlevellock.c
-+libc_linux_arch_SSRC = clone.S vfork.S
-+libc_linux_arch_SSRC-OMIT = waitpid.S
-+
-+CFLAGS += $(SSP_ALL_CFLAGS)
-+
-+CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread
-+CFLAGS-pt-__syscall_rt_sigaction.c = -DNOT_IN_libc -DIS_IN_libpthread
-+CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
-+CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread
-+ASFLAGS-vfork.S = -DIS_IN_libc -DNOT_IN_libpthread
-+ASFLAGS-clone.S = -DIS_IN_libc -DNOT_IN_libpthread
-+ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread
-+
-+ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y)
-+CFLAGS-fork.c = -D__USE_STDIO_FUTEXES__
-+endif
-+CFLAGS-OMIT-fork.c = -DNOT_IN_libc -DIS_IN_libpthread
-+CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,11 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <sys/time.h>
-+
-+int gettimeofday (struct timeval *, struct timezone *) attribute_hidden;
-+_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz);
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,100 @@
-+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include "pthreadP.h"
-+#include <lowlevellock.h>
-+
-+unsigned long int __fork_generation attribute_hidden;
-+
-+static void
-+clear_once_control (void *arg)
-+{
-+ pthread_once_t *once_control = (pthread_once_t *) arg;
-+
-+ *once_control = 0;
-+ lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
-+}
-+
-+int
-+attribute_protected
-+__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
-+{
-+ for (;;)
-+ {
-+ int oldval;
-+ int newval;
-+
-+ /* Pseudo code:
-+ newval = __fork_generation | 1;
-+ oldval = *once_control;
-+ if ((oldval & 2) == 0)
-+ *once_control = newval;
-+ Do this atomically.
-+ */
-+ do
-+ {
-+ newval = __fork_generation | 1;
-+ oldval = *once_control;
-+ if (oldval & 2)
-+ break;
-+ } while (atomic_compare_and_exchange_val_acq (once_control, newval, oldval) != oldval);
-+
-+ /* Check if the initializer has already been done. */
-+ if ((oldval & 2) != 0)
-+ return 0;
-+
-+ /* Check if another thread already runs the initializer. */
-+ if ((oldval & 1) == 0)
-+ break;
-+
-+ /* Check whether the initializer execution was interrupted by a fork. */
-+ if (oldval != newval)
-+ break;
-+
-+ /* Same generation, some other thread was faster. Wait. */
-+ lll_futex_wait (once_control, oldval, LLL_PRIVATE);
-+ }
-+
-+ /* This thread is the first here. Do the initialization.
-+ Register a cleanup handler so that in case the thread gets
-+ interrupted the initialization can be restarted. */
-+ pthread_cleanup_push (clear_once_control, once_control);
-+
-+ init_routine ();
-+
-+ pthread_cleanup_pop (0);
-+
-+ /* Say that the initialisation is done. */
-+ *once_control = __fork_generation | 2;
-+
-+ /* Wake up all other threads. */
-+ lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
-+
-+ return 0;
-+}
-+weak_alias (__pthread_once, pthread_once)
-+strong_alias (__pthread_once, __pthread_once_internal)
-+
-+#if defined(__USING_SJLJ_EXCEPTIONS__) && !defined(__PIC__)
-+/* When statically linked, if pthread_create is used, this file
-+ will be brought in. The exception handling code in GCC assumes
-+ that if pthread_create is available, so are these. */
-+const void *include_pthread_getspecific attribute_hidden = pthread_getspecific;
-+const void *include_pthread_setspecific attribute_hidden = pthread_setspecific;
-+const void *include_pthread_key_create attribute_hidden = pthread_key_create;
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <../../../../../../../libc/sysdeps/linux/metag/__syscall_error.c>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,7 @@
-+/*
-+ * Copyright (C) 2013 Imagination Technologies Ltd.
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <../../../../../../../libc/sysdeps/linux/common/__syscall_rt_sigaction.c>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,51 @@
-+/* Copyright (C) 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <tcb-offsets.h>
-+#include <asm/unistd.h>
-+
-+#ifdef __PIC__
-+#define __VFORK_METAG_LOAD_TP ___metag_load_tp@PLT
-+#else
-+#define __VFORK_METAG_LOAD_TP ___metag_load_tp
-+#endif
-+
-+/* Save the PID value. */
-+#define SAVE_PID \
-+ SETL [A0StP++], D0FrT, D1RtP; \
-+ CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
-+ SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
-+ GETD D0FrT, [D0Re0 + #PID]; \
-+ NEG D0FrT, D0FrT; \
-+ SETD [D0Re0 + #PID], D0FrT; \
-+ GETL D0FrT, D1RtP, [--A0StP];
-+
-+#define RESTORE_PID \
-+ CMP D0Re0, #0; \
-+ BEQ 1f; \
-+ MSETL [A0StP++], D0Re0, D0FrT; \
-+ CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
-+ SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
-+ GETD D0FrT, [D0Re0 + #PID]; \
-+ NEG D0FrT, D0FrT; \
-+ SETD [D0Re0 + #PID], D0FrT; \
-+ GETL D0FrT, D1RtP, [--A0StP]; \
-+ GETL D0Re0, D1Re0, [--A0StP]; \
-+1:
-+
-+#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,152 @@
-+/* Copyright (C) 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <tls.h>
-+#include <sysdep.h>
-+#ifndef __ASSEMBLER__
-+# include <pthreadP.h>
-+#endif
-+
-+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-+
-+/* NOTE: We do mark syscalls with unwind annotations, for the benefit of
-+ cancellation; but they're really only accurate at the point of the
-+ syscall. The ARM unwind directives are not rich enough without adding
-+ a custom personality function. */
-+
-+#ifdef __ASSEMBLER__
-+#undef ret
-+#define ret \
-+ CMP D0Re0, #-4095; \
-+ MOVLO PC, D1RtP; \
-+ MOV D1Ar1, D0Re0; \
-+ B SYSCALL_ERROR;
-+#endif /* __ASSEMBLER__ */
-+
-+# undef PSEUDO
-+# define PSEUDO(name, syscall_name, args) \
-+ .section ".text"; \
-+ .type ___##syscall_name##_nocancel,%function; \
-+ .globl ___##syscall_name##_nocancel; \
-+ ___##syscall_name##_nocancel: \
-+ cfi_startproc; \
-+ DO_CALL (syscall_name, args); \
-+ MOV PC, D1RtP; \
-+ cfi_endproc; \
-+ .size ___##syscall_name##_nocancel,.-___##syscall_name##_nocancel; \
-+ .globl _##name; \
-+ .type _##name, @function; \
-+name##: \
-+_##name##: \
-+ DOCARGS_##args; \
-+ SINGLE_THREAD_P; \
-+ UNDOCARGS_##args; \
-+ BNE .Lpseudo_cancel; \
-+ cfi_remember_state; \
-+ DO_CALL (syscall_name, 0); \
-+ ret \
-+ cfi_restore_state; \
-+ .Lpseudo_cancel: \
-+ MSETL [A0StP++], D0FrT, D0.5; \
-+ DOCARGS_##args; /* save syscall args etc. around CENABLE. */ \
-+ CENABLE; \
-+ MOV D0FrT, D0Re0; /* put mask in safe place. */ \
-+ UNDOCARGS_##args; /* restore syscall args. */ \
-+ DO_CALL(syscall_name, 0); /* do the call. */ \
-+ MOV D0.5, D0Re0; /* save syscall return value. */ \
-+ MOV D1Ar1, D0FrT; /* get mask back. */ \
-+ CDISABLE; \
-+ MOV D0Re0, D0.5; /* retrieve return value. */ \
-+ GETL D0.5, D1.5, [--A0StP]; \
-+ GETL D0FrT, D1RtP, [--A0StP];
-+
-+# define DOCARGS_0
-+# define UNDOCARGS_0
-+
-+# define DOCARGS_1 \
-+ SETL [A0StP++], D1Ar1, D0Ar2
-+# define UNDOCARGS_1 \
-+ GETL D1Ar1, D0Ar2, [--A0StP]
-+
-+# define DOCARGS_2 DOCARGS_1
-+
-+# define UNDOCARGS_2 UNDOCARGS_2
-+
-+# define DOCARGS_3 \
-+ MSETL [A0StP++], D1Ar1, D1Ar3
-+
-+# define UNDOCARGS_3 \
-+ GETL D1Ar1, D0Ar2, [--A0StP]; \
-+ GETL D1Ar3, D0Ar4, [--A0StP]
-+
-+# define DOCARGS_4 DOCARGS_3
-+# define UNDOCARGS_4 UNDOCARGS_3
-+
-+# define DOCARGS_5 \
-+ MSETL [A0StP++], D1Ar1, D1Ar3, D1Ar5
-+# define UNDOCARGS_5 \
-+ GETL D1Ar1, D0Ar2, [--A0StP]; \
-+ GETL D1Ar3, D0Ar4, [--A0StP]; \
-+ GETL D1Ar5, D0Ar6, [--A0StP]
-+
-+# define DOCARGS_6 DOCARGS_5
-+# define UNDOCARGS_6 UNDOCARGS_5
-+
-+# ifdef IS_IN_libpthread
-+# define CENABLE CALLR D1RtP, ___pthread_enable_asynccancel@PLT
-+# define CDISABLE CALLR D1RtP, ___pthread_disable_asynccancel@PLT
-+# define __local_multiple_threads __pthread_multiple_threads
-+# elif !defined NOT_IN_libc
-+# define CENABLE CALLR D1RtP, ___libc_enable_asynccancel@PLT
-+# define CDISABLE CALLR D1RtP, ___libc_disable_asynccancel@PLT
-+# define __local_multiple_threads __libc_multiple_threads
-+# elif defined IS_IN_librt
-+# define CENABLE CALLR D1RtP, ___librt_enable_asynccancel@PLT
-+# define CDISABLE CALLR D1RtP, ___librt_disable_asynccancel@PLT
-+# else
-+# error Unsupported library
-+# endif
-+
-+#ifndef __ASSEMBLER__
-+# define SINGLE_THREAD_P \
-+ likely(THREAD_GETMEM (THREAD_SELF, \
-+ header.multiple_threads) == 0)
-+#else
-+# define SINGLE_THREAD_P \
-+ SETL [A0StP++], D0FrT, D1RtP; \
-+ CALLR D1RtP, ___metag_load_tp@PLT; \
-+ SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
-+ GETD D0Re0, [D0Re0 + #MULTIPLE_THREADS_OFFSET]; \
-+ CMP D0Re0, #0; \
-+ GETL D0FrT, D1RtP, [--A0StP]
-+#endif
-+
-+
-+#elif !defined __ASSEMBLER__
-+
-+/* For rtld, et cetera. */
-+# define SINGLE_THREAD_P 1
-+# define NO_CANCELLATION 1
-+
-+#endif
-+
-+#ifndef __ASSEMBLER__
-+# define RTLD_SINGLE_THREAD_P \
-+ likely(THREAD_GETMEM (THREAD_SELF, \
-+ header.multiple_threads) == 0)
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S 2014-07-25 20:36:09.145346937 +0200
-@@ -0,0 +1,56 @@
-+/* Copyright (C) 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <tcb-offsets.h>
-+#include <asm/unistd.h>
-+
-+#ifdef __PIC__
-+#define __VFORK_METAG_LOAD_TP ___metag_load_tp@PLT
-+#else
-+#define __VFORK_METAG_LOAD_TP ___metag_load_tp
-+#endif
-+
-+/* Save the PID value. */
-+#define SAVE_PID \
-+ SETL [A0StP++], D0FrT, D1RtP; \
-+ CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
-+ SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
-+ GETD D0FrT, [D0Re0 + #PID]; \
-+ NEGS D0FrT, D0FrT; \
-+ BNZ 1f; \
-+ MOVT D0FrT, #0x8000; \
-+1: SETD [D0Re0 + #PID], D0FrT; \
-+ GETL D0FrT, D1RtP, [--A0StP];
-+
-+#define RESTORE_PID \
-+ CMP D0Re0, #0; \
-+ BEQ 1f; \
-+ MSETL [A0StP++], D0Re0, D0FrT; \
-+ CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
-+ SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
-+ GETD D0FrT, [D0Re0 + #PID]; \
-+ NEG D0FrT, D0FrT; \
-+ MOVT D1Re0, #0x8000; \
-+ CMP D0FrT, D1Re0; \
-+ XOREQ D0FrT, D0FrT, D0FrT; \
-+ SETD [D0Re0 + #PID], D0FrT; \
-+ GETL D0FrT, D1RtP, [--A0StP]; \
-+ GETL D0Re0, D1Re0, [--A0StP]; \
-+1:
-+
-+#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h 2014-07-25 20:36:09.145346937 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h 2014-07-25 20:36:09.145346937 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c 2014-07-25 20:36:09.145346937 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Value passed to 'clone' for initialization of the thread register. */
- #define TLS_VALUE ((void *) (pd) \
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h 2014-07-25 20:36:09.145346937 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-@@ -81,7 +80,7 @@
- #define lll_futex_timed_wait(futexp, val, timespec, private) \
- ({ \
- INTERNAL_SYSCALL_DECL (__err); \
-- long int __ret; \
-+ long int __ret attribute_unused; \
- __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
- __lll_private_flag (FUTEX_WAIT, private), \
- (val), (timespec)); \
-@@ -91,7 +90,7 @@
- #define lll_futex_wake(futexp, nr, private) \
- ({ \
- INTERNAL_SYSCALL_DECL (__err); \
-- long int __ret; \
-+ long int __ret attribute_unused; \
- __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
- __lll_private_flag (FUTEX_WAKE, private), \
- (nr), 0); \
-@@ -111,7 +110,7 @@
- #define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
- ({ \
- INTERNAL_SYSCALL_DECL (__err); \
-- long int __ret; \
-+ long int __ret attribute_unused; \
- __ret = INTERNAL_SYSCALL (futex, __err, 6, (long) (futexp), \
- __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
- (nr_wake), (nr_move), (mutex), (val)); \
-@@ -122,7 +121,7 @@
- #define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
- ({ \
- INTERNAL_SYSCALL_DECL (__err); \
-- long int __ret; \
-+ long int __ret attribute_unused; \
- \
- __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
- __lll_private_flag (FUTEX_WAKE_OP, private), \
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S 2014-07-25 20:36:09.149346959 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2014-07-25 20:36:09.149346959 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S 2014-07-25 20:36:09.149346959 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <features.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h 2014-07-25 20:36:09.149346959 +0200
-@@ -14,18 +14,26 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <sysdep.h>
-
- /* Uncancelable open. */
-+#if defined __NR_openat && !defined __NR_open
-+#define open_not_cancel(name, flags, mode) \
-+ INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
-+ (flags), (mode))
-+#define open_not_cancel_2(name, flags) \
-+ INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), \
-+ (flags))
-+#else
- #define open_not_cancel(name, flags, mode) \
- INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
- #define open_not_cancel_2(name, flags) \
- INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
-+#endif
-
- /* Uncancelable openat. */
- #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2014-07-25 20:36:09.149346959 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h 2014-07-25 20:36:09.149346959 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Value passed to 'clone' for initialization of the thread register. */
- #define TLS_VALUE ((void *) (pd) \
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2014-07-25 20:36:09.149346959 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
-- 02110-1301 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S 2014-07-25 20:36:09.149346959 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2014-07-25 20:36:09.149346959 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
-- 02110-1301 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2014-07-25 20:36:09.161347021 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c 2014-07-25 20:36:09.161347021 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c 2014-07-25 20:36:09.161347021 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c 2014-07-25 20:36:09.161347021 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c 2014-07-25 20:36:09.161347021 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -25,7 +24,7 @@
- #include <semaphore.h>
-
- int
--__new_sem_post (sem_t *sem)
-+sem_post (sem_t *sem)
- {
- struct new_sem *isem = (struct new_sem *) sem;
-
-@@ -44,4 +43,3 @@
- }
- return 0;
- }
--weak_alias(__new_sem_post, sem_post)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c 2014-07-25 20:36:09.161347021 +0200
-@@ -13,17 +13,16 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
-
--extern int __libc_fork (void);
--
--pid_t
-+#if 0
-+static pid_t
- __fork (void)
- {
- return __libc_fork ();
- }
- strong_alias (__fork, fork)
-+#endif
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <limits.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <alloca.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <sched.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c 2014-07-25 20:36:09.169347063 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <limits.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -26,7 +25,7 @@
- #include <tls.h>
-
- int
--__new_sem_post (sem_t *sem)
-+sem_post (sem_t *sem)
- {
- struct new_sem *isem = (struct new_sem *) sem;
-
-@@ -55,4 +54,3 @@
- }
- return 0;
- }
--weak_alias(__new_sem_post, sem_post)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -26,7 +25,7 @@
-
-
- int
--__new_sem_trywait (sem_t *sem)
-+sem_trywait (sem_t *sem)
- {
- int *futex = (int *) sem;
- int val;
-@@ -41,4 +40,3 @@
- __set_errno (EAGAIN);
- return -1;
- }
--weak_alias(__new_sem_trywait, sem_trywait)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -38,7 +37,7 @@
-
-
- int
--__new_sem_wait (sem_t *sem)
-+sem_wait (sem_t *sem)
- {
- struct new_sem *isem = (struct new_sem *) sem;
- int err;
-@@ -81,4 +80,3 @@
-
- return err;
- }
--weak_alias(__new_sem_wait, sem_wait)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Value passed to 'clone' for initialization of the thread register. */
- #define TLS_VALUE (pd + 1)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,8 +12,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "lowlevellock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifdef __ASSEMBLER__
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-@@ -396,9 +395,9 @@
-
- #define lll_wait_tid(tid) \
- do { \
-- __typeof (tid) *__tid = &(tid); \
-- while (*__tid != 0) \
-- lll_futex_wait (__tid, *__tid, LLL_SHARED); \
-+ __typeof (tid) __tid; \
-+ while ((__tid = (tid)) != 0) \
-+ lll_futex_wait (&(tid), __tid, LLL_SHARED); \
- } while (0)
-
- extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unwindbuf.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2014-07-25 20:36:09.173347084 +0200
-@@ -23,8 +23,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-@@ -25,10 +24,10 @@
-
- .text
-
-- .globl __new_sem_post
-- .type __new_sem_post,@function
-+ .globl sem_post
-+ .type sem_post,@function
- .align 5
--__new_sem_post:
-+sem_post:
- mov.l @(VALUE,r4), r2
- 0:
- mov.l .Lmax, r1
-@@ -106,5 +105,4 @@
- .Lerrloc3:
- .long __errno_location@PLT-(.Lerrloc3b-.)
- #endif
-- .size __new_sem_post,.-__new_sem_post
-- weak_alias(__new_sem_post, sem_post)
-+ .size sem_post,.-sem_post
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-@@ -24,10 +23,10 @@
-
- .text
-
-- .globl __new_sem_trywait
-- .type __new_sem_trywait,@function
-+ .globl sem_trywait
-+ .type sem_trywait,@function
- .align 5
--__new_sem_trywait:
-+sem_trywait:
- mov.l r12, @-r15
- mov.l r8, @-r15
- sts.l pr, @-r15
-@@ -86,5 +85,4 @@
- .Lerrloc1:
- .long __errno_location@PLT-(.Lerrloc1b-.)
- #endif
-- .size __new_sem_trywait,.-__new_sem_trywait
-- weak_alias(__new_sem_trywait, sem_trywait)
-+ .size sem_trywait,.-sem_trywait
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-@@ -30,10 +29,10 @@
-
- .text
-
-- .globl __new_sem_wait
-- .type __new_sem_wait,@function
-+ .globl sem_wait
-+ .type sem_wait,@function
- .align 5
--__new_sem_wait:
-+sem_wait:
- .LSTARTCODE:
- mov.l r8, @-r15
- .Lpush_r8:
-@@ -161,8 +160,7 @@
- .long __pthread_enable_asynccancel-.Lenable0b
- .Ldisable0:
- .long __pthread_disable_asynccancel-.Ldisable0b
-- .size __new_sem_wait,.-__new_sem_wait
-- weak_alias(__new_sem_wait, sem_wait)
-+ .size sem_wait,.-sem_wait
-
-
- .type sem_wait_cleanup,@function
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h 2014-07-25 20:36:09.173347084 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- static inline int
- is_smp_system (void)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tls.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #define _ERRNO_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
- #include <errno.h>
-@@ -67,7 +66,7 @@
-
-
- /* Return any pending signal or wait for one for the given time. */
--int attribute_hidden
-+int
- __sigtimedwait (const sigset_t *set, siginfo_t *info,
- const struct timespec *timeout)
- {
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c 2014-07-25 20:36:09.173347084 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h 2014-07-25 20:36:09.173347084 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* Test whether the machine has more than one processor. This is not the
- best test but good enough. More complicated tests would require `malloc'
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2014-07-25 20:36:09.173347084 +0200
-@@ -14,8 +14,7 @@
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ see <http://www.gnu.org/licenses/>. */
-
- /* The kernel header pollutes the namespace with the NR_OPEN symbol
- and defines LINK_MAX although filesystems have different maxima. A
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h 2014-07-25 20:36:09.173347084 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c 2014-07-25 20:36:09.173347084 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* No difference to lowlevellock.c, except we lose a couple of functions. */
- #include "lowlevellock.c"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c 2014-07-25 20:36:09.177347105 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h 2014-07-25 20:36:09.177347105 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Libr \ary; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include "pthreadP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "pthreadP.h"
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <string.h>
-@@ -26,7 +25,7 @@
-
-
- int
--__new_sem_init (sem, pshared, value)
-+sem_init (sem, pshared, value)
- sem_t *sem;
- int pshared;
- unsigned int value;
-@@ -53,5 +52,3 @@
-
- return 0;
- }
--weak_alias(__new_sem_init, sem_init)
--
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c 2014-07-25 20:36:09.177347105 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -25,7 +24,7 @@
- #include <semaphore.h>
-
- int
--__new_sem_post (sem_t *sem)
-+sem_post (sem_t *sem)
- {
- struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
- int nr;
-@@ -51,5 +50,3 @@
- }
- return 0;
- }
--weak_alias(__new_sem_post, sem_post)
--
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c 2014-07-25 20:36:09.177347105 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c 2014-07-25 20:36:09.177347105 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -26,7 +25,7 @@
-
-
- int
--__new_sem_trywait (sem_t *sem)
-+sem_trywait (sem_t *sem)
- {
- struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
- int val;
-@@ -50,5 +49,3 @@
- __set_errno (EAGAIN);
- return -1;
- }
--weak_alias(__new_sem_trywait, sem_trywait)
--
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c 2014-07-25 20:36:09.177347105 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <sysdep.h>
-@@ -45,7 +44,7 @@
-
-
- int
--__new_sem_wait (sem_t *sem)
-+sem_wait (sem_t *sem)
- {
- struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
- int err;
-@@ -123,5 +122,3 @@
-
- return err;
- }
--weak_alias(__new_sem_wait, sem_wait)
--
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tls.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2014-07-25 20:36:09.177347105 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <time.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <setjmp.h>
-@@ -49,7 +48,7 @@
- surprising for user code, although valid. We unblock all
- signals. */
- sigset_t ss;
-- sigemptyset (&ss);
-+ __sigemptyset (&ss);
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
-
-@@ -69,13 +68,13 @@
-
-
- /* Helper function to support starting threads for SIGEV_THREAD. */
--static void *
-+static attribute_noreturn void *
- timer_helper_thread (void *arg)
- {
- /* Wait for the SIGTIMER signal, allowing the setXid signal, and
- none else. */
- sigset_t ss;
-- sigemptyset (&ss);
-+ __sigemptyset (&ss);
- __sigaddset (&ss, SIGTIMER);
-
- /* Endless loop of waiting for signals. The loop is only ended when
-@@ -175,7 +174,7 @@
- sigset_t ss;
- sigset_t oss;
- sigfillset (&ss);
-- /*__sigaddset (&ss, SIGCANCEL); - already done by sigfillset */
-+ __sigaddset (&ss, SIGCANCEL);
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c 2014-07-25 20:36:09.193347189 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _BITS_PTHREADTYPES_H
- #define _BITS_PTHREADTYPES_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _SEMAPHORE_H
- # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tcb-offsets.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <signal.h>
- #include <time.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __pthread_enable_asynccancel __libc_enable_asynccancel
- #define __pthread_disable_asynccancel __libc_disable_asynccancel
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,8 +13,7 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "lowlevellock.S"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define __pthread_enable_asynccancel __librt_enable_asynccancel
- #define __pthread_disable_asynccancel __librt_disable_asynccancel
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _LOWLEVELLOCK_H
- #define _LOWLEVELLOCK_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2014-07-25 20:36:09.221347335 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <pthread-errnos.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2014-07-25 20:36:09.221347335 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2014-07-25 20:36:09.221347335 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <bits/kernel-features.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S 2014-07-25 20:36:09.221347335 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <tcb-offsets.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <bits/kernel-features.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <lowlevellock.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2014-07-25 20:36:09.225347357 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S 2014-07-25 20:36:09.225347357 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* We want an #include_next, but we are the main source file.
- So, #include ourselves and in that incarnation we can use #include_next. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/x86_64/dl-tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/x86_64/dl-tls.h 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
-
- /* Type used for the representation of TLS information in the GOT. */
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdint.h>
-@@ -26,6 +25,3 @@
-
- #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_RSP] - (_adj))
--
--/* We use the normal lobngjmp for unwinding. */
--#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/x86_64/pthreaddef.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthreaddef.h 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Default stack size. */
- #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread-errnos.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- .globl pthread_spin_unlock
- .type pthread_spin_unlock,@function
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/tls.h uClibc-git/libpthread/nptl/sysdeps/x86_64/tls.h
---- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/sysdeps/x86_64/tls.h 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _TLS_H
- #define _TLS_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/unwind.c uClibc-git/libpthread/nptl/unwind.c
---- uClibc-0.9.33.2/libpthread/nptl/unwind.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/unwind.c 2014-07-25 20:36:09.237347419 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <stdlib.h>
-@@ -99,7 +98,7 @@
- }
-
-
--static void
-+static attribute_noreturn void
- unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc)
- {
- /* When we get here a C++ catch block didn't rethrow the object. We
-@@ -115,7 +114,7 @@
-
-
- void
--attribute_protected
-+/*does not apply due to hidden_proto(): attribute_protected*/
- __cleanup_fct_attribute __attribute ((noreturn))
- #if !defined SHARED && !defined IS_IN_libpthread
- weak_function
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/vars.c uClibc-git/libpthread/nptl/vars.c
---- uClibc-0.9.33.2/libpthread/nptl/vars.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/vars.c 2014-07-25 20:36:09.237347419 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthreadP.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl/version.c uClibc-git/libpthread/nptl/version.c
---- uClibc-0.9.33.2/libpthread/nptl/version.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl/version.c 2014-07-25 20:36:09.237347419 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
- #include <sysdep.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/db_info.c uClibc-git/libpthread/nptl_db/db_info.c
---- uClibc-0.9.33.2/libpthread/nptl_db/db_info.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/db_info.c 2014-07-25 20:36:09.381348174 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <tls.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/fetch-value.c uClibc-git/libpthread/nptl_db/fetch-value.c
---- uClibc-0.9.33.2/libpthread/nptl_db/fetch-value.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/fetch-value.c 2014-07-25 20:36:09.381348174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <byteswap.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/proc_service.h uClibc-git/libpthread/nptl_db/proc_service.h
---- uClibc-0.9.33.2/libpthread/nptl_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/proc_service.h 2014-07-25 20:36:09.381348174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* The definitions in this file must correspond to those in the debugger. */
- #include <sys/procfs.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/structs.def uClibc-git/libpthread/nptl_db/structs.def
---- uClibc-0.9.33.2/libpthread/nptl_db/structs.def 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/structs.def 2014-07-25 20:36:09.381348174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef DB_STRUCT_ARRAY_FIELD
- # define DB_STRUCT_ARRAY_FIELD(type, field) DB_STRUCT_FIELD (type, field)
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_init.c uClibc-git/libpthread/nptl_db/td_init.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_init.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_log.c uClibc-git/libpthread/nptl_db/td_log.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_log.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_symbol_list.c uClibc-git/libpthread/nptl_db/td_symbol_list.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_symbol_list.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <assert.h>
- #ifndef __UCLIBC__
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_clear_event.c uClibc-git/libpthread/nptl_db/td_ta_clear_event.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_clear_event.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_delete.c uClibc-git/libpthread/nptl_db/td_ta_delete.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_delete.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_enable_stats.c uClibc-git/libpthread/nptl_db/td_ta_enable_stats.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_enable_stats.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_addr.c uClibc-git/libpthread/nptl_db/td_ta_event_addr.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_event_addr.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_getmsg.c uClibc-git/libpthread/nptl_db/td_ta_event_getmsg.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_event_getmsg.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_nthreads.c uClibc-git/libpthread/nptl_db/td_ta_get_nthreads.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_get_nthreads.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_ph.c uClibc-git/libpthread/nptl_db/td_ta_get_ph.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_get_ph.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_stats.c uClibc-git/libpthread/nptl_db/td_ta_get_stats.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_get_stats.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_id2thr.c uClibc-git/libpthread/nptl_db/td_ta_map_id2thr.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_map_id2thr.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_lwp2thr.c uClibc-git/libpthread/nptl_db/td_ta_map_lwp2thr.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_map_lwp2thr.c 2014-07-25 20:36:09.381348174 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_new.c uClibc-git/libpthread/nptl_db/td_ta_new.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_new.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_reset_stats.c uClibc-git/libpthread/nptl_db/td_ta_reset_stats.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_reset_stats.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_setconcurrency.c uClibc-git/libpthread/nptl_db/td_ta_setconcurrency.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_setconcurrency.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_set_event.c uClibc-git/libpthread/nptl_db/td_ta_set_event.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_set_event.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_thr_iter.c uClibc-git/libpthread/nptl_db/td_ta_thr_iter.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_thr_iter.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_tsd_iter.c uClibc-git/libpthread/nptl_db/td_ta_tsd_iter.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_ta_tsd_iter.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <alloca.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_clear_event.c uClibc-git/libpthread/nptl_db/td_thr_clear_event.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_clear_event.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbresume.c uClibc-git/libpthread/nptl_db/td_thr_dbresume.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_dbresume.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbsuspend.c uClibc-git/libpthread/nptl_db/td_thr_dbsuspend.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_dbsuspend.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_enable.c uClibc-git/libpthread/nptl_db/td_thr_event_enable.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_event_enable.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_getmsg.c uClibc-git/libpthread/nptl_db/td_thr_event_getmsg.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_event_getmsg.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <assert.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getfpregs.c uClibc-git/libpthread/nptl_db/td_thr_getfpregs.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_getfpregs.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getgregs.c uClibc-git/libpthread/nptl_db/td_thr_getgregs.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_getgregs.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_get_info.c uClibc-git/libpthread/nptl_db/td_thr_get_info.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_get_info.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregs.c uClibc-git/libpthread/nptl_db/td_thr_getxregs.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_getxregs.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregsize.c uClibc-git/libpthread/nptl_db/td_thr_getxregsize.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_getxregsize.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_set_event.c uClibc-git/libpthread/nptl_db/td_thr_set_event.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_set_event.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stddef.h>
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setfpregs.c uClibc-git/libpthread/nptl_db/td_thr_setfpregs.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_setfpregs.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setgregs.c uClibc-git/libpthread/nptl_db/td_thr_setgregs.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_setgregs.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setprio.c uClibc-git/libpthread/nptl_db/td_thr_setprio.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_setprio.c 2014-07-25 20:36:09.381348174 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setsigpending.c uClibc-git/libpthread/nptl_db/td_thr_setsigpending.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_setsigpending.c 2014-07-25 20:36:09.385348195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setxregs.c uClibc-git/libpthread/nptl_db/td_thr_setxregs.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_setxregs.c 2014-07-25 20:36:09.385348195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_sigsetmask.c uClibc-git/libpthread/nptl_db/td_thr_sigsetmask.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_sigsetmask.c 2014-07-25 20:36:09.385348195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tlsbase.c uClibc-git/libpthread/nptl_db/td_thr_tlsbase.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tlsbase.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_tlsbase.c 2014-07-25 20:36:09.385348195 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tls_get_addr.c uClibc-git/libpthread/nptl_db/td_thr_tls_get_addr.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_tls_get_addr.c 2014-07-25 20:36:09.385348195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <link.h>
- #include "thread_dbP.h"
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tsd.c uClibc-git/libpthread/nptl_db/td_thr_tsd.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_tsd.c 2014-07-25 20:36:09.385348195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
-
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_validate.c uClibc-git/libpthread/nptl_db/td_thr_validate.c
---- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/td_thr_validate.c 2014-07-25 20:36:09.385348195 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include "thread_dbP.h"
- #include <stdbool.h>
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/thread_db.h uClibc-git/libpthread/nptl_db/thread_db.h
---- uClibc-0.9.33.2/libpthread/nptl_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/thread_db.h 2014-07-25 20:36:09.385348195 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _THREAD_DB_H
- #define _THREAD_DB_H 1
-diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/thread_dbP.h uClibc-git/libpthread/nptl_db/thread_dbP.h
---- uClibc-0.9.33.2/libpthread/nptl_db/thread_dbP.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libpthread/nptl_db/thread_dbP.h 2014-07-25 20:36:09.385348195 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _THREAD_DBP_H
- #define _THREAD_DBP_H 1
-diff -Nur uClibc-0.9.33.2/libresolv/resolv.c uClibc-git/libresolv/resolv.c
---- uClibc-0.9.33.2/libresolv/resolv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libresolv/resolv.c 2014-07-25 20:36:09.605349347 +0200
-@@ -7,8 +7,6 @@
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-
--#include <features.h>
--
- void __stub1(void);
- void __stub1(void)
- {
-diff -Nur uClibc-0.9.33.2/librt/clock_getcpuclockid.c uClibc-git/librt/clock_getcpuclockid.c
---- uClibc-0.9.33.2/librt/clock_getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/clock_getcpuclockid.c 2014-07-25 20:36:09.605349347 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <time.h>
-diff -Nur uClibc-0.9.33.2/librt/clock_gettime.c uClibc-git/librt/clock_gettime.c
---- uClibc-0.9.33.2/librt/clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/clock_gettime.c 2014-07-25 20:36:09.605349347 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sysdep.h>
- #include <errno.h>
-@@ -186,7 +185,6 @@
- #include <stdint.h>
- #include <time.h>
- #include <sys/time.h>
--#include <libc-internal.h>
- #include <ldsodefs.h>
-
-
-diff -Nur uClibc-0.9.33.2/librt/clock_nanosleep.c uClibc-git/librt/clock_nanosleep.c
---- uClibc-0.9.33.2/librt/clock_nanosleep.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/clock_nanosleep.c 2014-07-25 20:36:09.605349347 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <time.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/librt/Makefile.in uClibc-git/librt/Makefile.in
---- uClibc-0.9.33.2/librt/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/Makefile.in 2014-07-25 20:36:09.605349347 +0200
-@@ -28,11 +28,20 @@
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
- librt_filter_SRC += mq_notify.c timer_create.c timer_delete.c \
- timer_getoverr.c timer_gettime.c timer_settime.c
-+# these should really be guarded by ADVANCED_REALTIME, we use them in mq_send.c/mq_receive.c
- librt_SSRC := $(wildcard $(librt_DIR)/*.S)
- else
- librt_filter_SRC += clock_nanosleep.c clock_getcpuclockid.c clock_gettime.c
- librt_SSRC :=
- endif
-+
-+librt_filter_SRC += $(if $(UCLIBC_HAS_ADVANCED_REALTIME),, \
-+ spawn.c \
-+ spawn_faction_addclose.c \
-+ spawn_faction_adddup2.c \
-+ spawn_faction_addopen.c \
-+ spawn_faction_init.c)
-+
- librt_SRC := $(filter-out $(librt_filter_SRC),$(librt_SRC))
-
- librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_SRC))
-diff -Nur uClibc-0.9.33.2/librt/mq_receive.c uClibc-git/librt/mq_receive.c
---- uClibc-0.9.33.2/librt/mq_receive.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/mq_receive.c 2014-07-25 20:36:09.605349347 +0200
-@@ -10,13 +10,18 @@
- #include <mqueue.h>
-
- #ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+# ifndef __UCLIBC_HAS_ADVANCED_REALTIME__
-+extern ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len,
-+ unsigned int *msg_prio,
-+ const struct timespec *abs_timeout);
-+# endif
- librt_hidden_proto(mq_timedreceive)
- #else
-
- # define __NR___syscall_mq_timedreceive __NR_mq_timedreceive
- static _syscall5(int, __syscall_mq_timedreceive, int, mqdes,
- char *, msg_ptr, size_t, msg_len, unsigned int *,
-- msg_prio, const void *, abs_timeout);
-+ msg_prio, const void *, abs_timeout)
-
- # ifdef __UCLIBC_HAS_ADVANCED_REALTIME__
- /*
-diff -Nur uClibc-0.9.33.2/librt/mq_send.c uClibc-git/librt/mq_send.c
---- uClibc-0.9.33.2/librt/mq_send.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/mq_send.c 2014-07-25 20:36:09.605349347 +0200
-@@ -10,13 +10,17 @@
- #include <mqueue.h>
-
- #ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+# ifndef __UCLIBC_HAS_ADVANCED_REALTIME__
-+extern int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
-+ unsigned int msg_prio, const struct timespec *abs_timeout);
-+# endif
- librt_hidden_proto(mq_timedsend)
- #else
-
- # define __NR___syscall_mq_timedsend __NR_mq_timedsend
- static _syscall5(int, __syscall_mq_timedsend, int, mqdes,
- const char *, msg_ptr, size_t, msg_len, unsigned int,
-- msg_prio, const void *, abs_timeout);
-+ msg_prio, const void *, abs_timeout)
-
- # ifdef __UCLIBC_HAS_ADVANCED_REALTIME__
- /*
-diff -Nur uClibc-0.9.33.2/librt/mq_timedreceive.S uClibc-git/librt/mq_timedreceive.S
---- uClibc-0.9.33.2/librt/mq_timedreceive.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/mq_timedreceive.S 2014-07-25 20:36:09.605349347 +0200
-@@ -2,9 +2,7 @@
- #ifndef __NR_mq_timedreceive
- #error Missing definition of NR_timedreceive needed for cancellation.
- #endif
--PSEUDO (__mq_timedreceive, mq_timedreceive, 5)
--ret
--PSEUDO_END(__mq_timedreceive)
--librt_hidden_def (__mq_timedreceive)
--weak_alias (__mq_timedreceive, mq_timedreceive)
--librt_hidden_weak (mq_timedreceive)
-+PSEUDO(mq_timedreceive, mq_timedreceive, 5)
-+ret_ERRVAL
-+PSEUDO_END(mq_timedreceive)
-+librt_hidden_def(mq_timedreceive)
-diff -Nur uClibc-0.9.33.2/librt/mq_timedsend.S uClibc-git/librt/mq_timedsend.S
---- uClibc-0.9.33.2/librt/mq_timedsend.S 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/mq_timedsend.S 2014-07-25 20:36:09.605349347 +0200
-@@ -2,9 +2,7 @@
- #ifndef __NR_mq_timedsend
- #error Missing definition of NR_timedsend needed for cancellation.
- #endif
--PSEUDO (__mq_timedsend, mq_timedsend, 5)
--ret
--PSEUDO_END(__mq_timedsend)
--librt_hidden_def (__mq_timedsend)
--weak_alias (__mq_timedsend, mq_timedsend)
--librt_hidden_weak (mq_timedsend)
-+PSEUDO(mq_timedsend, mq_timedsend, 5)
-+ret_ERRVAL
-+PSEUDO_END(mq_timedsend)
-+librt_hidden_def(mq_timedsend)
-diff -Nur uClibc-0.9.33.2/librt/spawn.c uClibc-git/librt/spawn.c
---- uClibc-0.9.33.2/librt/spawn.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/librt/spawn.c 2014-07-25 20:36:09.605349347 +0200
-@@ -0,0 +1,266 @@
-+/* Copyright (C) 2000, 2011 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <errno.h>
-+#include <alloca.h>
-+#include <unistd.h>
-+#include <signal.h>
-+#include <stdbool.h>
-+#include <fcntl.h>
-+
-+#include <sys/resource.h>
-+#include <not-cancel.h>
-+
-+#include <spawn.h>
-+#include "spawn_int.h"
-+
-+/* The Unix standard contains a long explanation of the way to signal
-+ an error after the fork() was successful. Since no new wait status
-+ was wanted there is no way to signal an error using one of the
-+ available methods. The committee chose to signal an error by a
-+ normal program exit with the exit code 127. */
-+#define SPAWN_ERROR 127
-+
-+/* Execute file actions.
-+ * Returns true on error.
-+ */
-+inline static bool execute_file_actions(const posix_spawn_file_actions_t *fa)
-+{
-+ struct rlimit64 fdlimit;
-+ bool have_fdlimit = false;
-+ int cnt;
-+
-+ for (cnt = 0; cnt < fa->__used; ++cnt) {
-+ struct __spawn_action *action = &fa->__actions[cnt];
-+
-+ switch (action->tag) {
-+ case spawn_do_close:
-+ if (close_not_cancel(action->action.close_action.fd) != 0) {
-+ if (!have_fdlimit) {
-+ getrlimit64(RLIMIT_NOFILE, &fdlimit);
-+ have_fdlimit = true;
-+ }
-+
-+ /* Only signal errors for file descriptors out of range. */
-+ if (0 > action->action.close_action.fd
-+ || action->action.close_action.fd >= fdlimit.rlim_cur)
-+ /* Signal the error. */
-+ return true;
-+ }
-+ break;
-+
-+ case spawn_do_open:;
-+ int new_fd = open_not_cancel(action->action.open_action.path,
-+ action->action.open_action.oflag
-+ | O_LARGEFILE,
-+ action->action.open_action.mode);
-+
-+ if (new_fd == -1)
-+ return true;
-+
-+ /* Make sure the desired file descriptor is used. */
-+ if (new_fd != action->action.open_action.fd) {
-+ if (dup2(new_fd, action->action.open_action.fd)
-+ != action->action.open_action.fd)
-+ return true;
-+
-+ if (close_not_cancel(new_fd) != 0)
-+ return true;
-+ }
-+ break;
-+
-+ case spawn_do_dup2:
-+ if (dup2(action->action.dup2_action.fd,
-+ action->action.dup2_action.newfd)
-+ != action->action.dup2_action.newfd)
-+ return true;
-+ break;
-+ }
-+ }
-+
-+ return false;
-+}
-+
-+#define DANGEROUS (POSIX_SPAWN_SETSIGMASK \
-+ | POSIX_SPAWN_SETSIGDEF \
-+ | POSIX_SPAWN_SETSCHEDPARAM \
-+ | POSIX_SPAWN_SETSCHEDULER \
-+ | POSIX_SPAWN_SETPGROUP \
-+ | POSIX_SPAWN_RESETIDS)
-+inline static bool is_vfork_safe(short int flags)
-+{
-+ return ((flags & POSIX_SPAWN_USEVFORK) || !(flags & DANGEROUS));
-+}
-+
-+
-+/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
-+ Before running the process perform the actions described in FILE-ACTIONS. */
-+static int
-+__spawni(pid_t *pid, const char *file,
-+ const posix_spawn_file_actions_t *fa,
-+ const posix_spawnattr_t *attrp, char *const argv[],
-+ char *const envp[], const char *path)
-+{
-+ short int flags = attrp ? attrp->__flags : 0;
-+
-+ pid_t new_pid;
-+ if (is_vfork_safe(flags) && !fa)
-+ new_pid = vfork();
-+ else {
-+#ifdef __ARCH_USE_MMU__
-+ new_pid = fork();
-+#else
-+ return ENOSYS;
-+#endif
-+ }
-+
-+ if (new_pid) {
-+ if (new_pid < 0)
-+ return errno;
-+
-+ if (pid)
-+ *pid = new_pid;
-+
-+ return 0;
-+ }
-+
-+ if (flags & POSIX_SPAWN_SETSIGMASK) {
-+ if (sigprocmask(SIG_SETMASK, &attrp->__ss, NULL) != 0)
-+ goto error;
-+ }
-+
-+ if (flags & POSIX_SPAWN_SETSIGDEF) {
-+ /* We have to iterate over all signals. This could possibly be
-+ done better but it requires system specific solutions since
-+ the sigset_t data type can be very different on different
-+ architectures. */
-+ struct sigaction sa;
-+ int sig;
-+
-+ memset(&sa, 0, sizeof(sa));
-+ sa.sa_handler = SIG_DFL;
-+
-+ for (sig = 1; sig <= _NSIG; ++sig) {
-+ if (sigismember(&attrp->__sd, sig)) {
-+ if (sigaction(sig, &sa, NULL) != 0)
-+ goto error;
-+ }
-+ }
-+ }
-+
-+ if (flags & POSIX_SPAWN_SETSCHEDULER) {
-+ if (sched_setscheduler(0, attrp->__policy, &attrp->__sp) == -1)
-+ goto error;
-+ } else if (flags & POSIX_SPAWN_SETSCHEDPARAM) {
-+ if (sched_setparam(0, &attrp->__sp) == -1)
-+ goto error;
-+ }
-+
-+ if (flags & POSIX_SPAWN_SETPGROUP) {
-+ if (setpgid(0, attrp->__pgrp) != 0)
-+ goto error;
-+ }
-+
-+ if (flags & POSIX_SPAWN_RESETIDS) {
-+ if (seteuid(getuid()) || setegid(getgid()))
-+ goto error;
-+ }
-+
-+ if (fa && execute_file_actions(fa))
-+ goto error;
-+
-+ if (!path || strchr(file, '/')) {
-+ execve(file, argv, envp);
-+ goto error;
-+ }
-+
-+
-+ char *name;
-+ {
-+ size_t filelen = strlen(file) + 1;
-+ size_t pathlen = strlen(path) + 1;
-+ name = alloca(pathlen + filelen);
-+
-+ /* Copy the file name at the top. */
-+ name = (char *) memcpy(name + pathlen, file, filelen);
-+
-+ /* And add the slash. */
-+ *--name = '/';
-+ }
-+
-+ char *p;
-+ do {
-+ char *startp;
-+ p = strchrnul(path, ':');
-+
-+ /* Two adjacent colons, or a colon at the beginning or the end
-+ of `PATH' means to search the current directory. */
-+ if (p == path)
-+ startp = name + 1;
-+ else
-+ startp = (char *) memcpy(name - (p - path), path, p - path);
-+
-+ execve(startp, argv, envp);
-+
-+ switch (errno) {
-+ case EACCES:
-+ case ENOENT:
-+ case ESTALE:
-+ case ENOTDIR:
-+ /* Those errors indicate the file is missing or not
-+ executable by us, in which case we want to just try
-+ the next path directory. */
-+ break;
-+ default:
-+ /* Some other error means we found an executable file,
-+ but something went wrong executing it; return the
-+ error to our caller. */
-+ goto error;
-+ }
-+
-+ path = p;
-+ } while (*p++ != '\0');
-+
-+error:
-+ _exit(SPAWN_ERROR);
-+}
-+
-+/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
-+ Before running the process perform the actions described in FILE-ACTIONS. */
-+int posix_spawn (pid_t *pid, const char *path,
-+ const posix_spawn_file_actions_t *fa,
-+ const posix_spawnattr_t *attrp, char *const argv[],
-+ char *const envp[])
-+{
-+ return __spawni(pid, path, fa, attrp, argv, envp, NULL);
-+}
-+
-+/* Spawn a new process executing FILE with the attributes describes in *ATTRP.
-+ Before running the process perform the actions described in FILE-ACTIONS. */
-+int
-+posix_spawnp(pid_t *pid, const char *file,
-+ const posix_spawn_file_actions_t *fa,
-+ const posix_spawnattr_t *attrp, char *const argv[],
-+ char *const envp[])
-+{
-+ const char *path = getenv("PATH");
-+
-+ if (!path)
-+ path = ":/bin:/usr/bin";
-+
-+ return __spawni(pid, file, fa, attrp, argv, envp, path);
-+}
-diff -Nur uClibc-0.9.33.2/librt/spawn_faction_addclose.c uClibc-git/librt/spawn_faction_addclose.c
---- uClibc-0.9.33.2/librt/spawn_faction_addclose.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/librt/spawn_faction_addclose.c 2014-07-25 20:36:09.605349347 +0200
-@@ -0,0 +1,51 @@
-+/* Copyright (C) 2000 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <errno.h>
-+#include <spawn.h>
-+#include <unistd.h>
-+
-+#include "spawn_int.h"
-+
-+/* Add an action to FILE-ACTIONS which tells the implementation to call
-+ `close' for the given file descriptor during the `spawn' call. */
-+int
-+posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *file_actions,
-+ int fd)
-+{
-+ int maxfd = sysconf(_SC_OPEN_MAX);
-+ struct __spawn_action *rec;
-+
-+ /* Test for the validity of the file descriptor. */
-+ if (fd < 0 || fd >= maxfd)
-+ return EBADF;
-+
-+ /* Allocate more memory if needed. */
-+ if (file_actions->__used == file_actions->__allocated
-+ && __posix_spawn_file_actions_realloc(file_actions) != 0)
-+ /* This can only mean we ran out of memory. */
-+ return ENOMEM;
-+
-+ /* Add the new value. */
-+ rec = &file_actions->__actions[file_actions->__used];
-+ rec->tag = spawn_do_close;
-+ rec->action.open_action.fd = fd;
-+
-+ /* Account for the new entry. */
-+ ++file_actions->__used;
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/librt/spawn_faction_adddup2.c uClibc-git/librt/spawn_faction_adddup2.c
---- uClibc-0.9.33.2/librt/spawn_faction_adddup2.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/librt/spawn_faction_adddup2.c 2014-07-25 20:36:09.605349347 +0200
-@@ -0,0 +1,52 @@
-+/* Copyright (C) 2000 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <errno.h>
-+#include <spawn.h>
-+#include <unistd.h>
-+
-+#include "spawn_int.h"
-+
-+/* Add an action to FILE-ACTIONS which tells the implementation to call
-+ `dup2' for the given file descriptors during the `spawn' call. */
-+int
-+posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *file_actions,
-+ int fd, int newfd)
-+{
-+ int maxfd = sysconf(_SC_OPEN_MAX);
-+ struct __spawn_action *rec;
-+
-+ /* Test for the validity of the file descriptor. */
-+ if (fd < 0 || newfd < 0 || fd >= maxfd || newfd >= maxfd)
-+ return EBADF;
-+
-+ /* Allocate more memory if needed. */
-+ if (file_actions->__used == file_actions->__allocated
-+ && __posix_spawn_file_actions_realloc (file_actions) != 0)
-+ /* This can only mean we ran out of memory. */
-+ return ENOMEM;
-+
-+ /* Add the new value. */
-+ rec = &file_actions->__actions[file_actions->__used];
-+ rec->tag = spawn_do_dup2;
-+ rec->action.dup2_action.fd = fd;
-+ rec->action.dup2_action.newfd = newfd;
-+
-+ /* Account for the new entry. */
-+ ++file_actions->__used;
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/librt/spawn_faction_addopen.c uClibc-git/librt/spawn_faction_addopen.c
---- uClibc-0.9.33.2/librt/spawn_faction_addopen.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/librt/spawn_faction_addopen.c 2014-07-25 20:36:09.605349347 +0200
-@@ -0,0 +1,55 @@
-+/* Copyright (C) 2000 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <errno.h>
-+#include <spawn.h>
-+#include <unistd.h>
-+
-+#include "spawn_int.h"
-+
-+/* Add an action to FILE-ACTIONS which tells the implementation to call
-+ `open' for the given file during the `spawn' call. */
-+int
-+posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *file_actions,
-+ int fd, const char *path, int oflag,
-+ mode_t mode)
-+{
-+ int maxfd = sysconf(_SC_OPEN_MAX);
-+ struct __spawn_action *rec;
-+
-+ /* Test for the validity of the file descriptor. */
-+ if (fd < 0 || fd >= maxfd)
-+ return EBADF;
-+
-+ /* Allocate more memory if needed. */
-+ if (file_actions->__used == file_actions->__allocated
-+ && __posix_spawn_file_actions_realloc (file_actions) != 0)
-+ /* This can only mean we ran out of memory. */
-+ return ENOMEM;
-+
-+ /* Add the new value. */
-+ rec = &file_actions->__actions[file_actions->__used];
-+ rec->tag = spawn_do_open;
-+ rec->action.open_action.fd = fd;
-+ rec->action.open_action.path = path;
-+ rec->action.open_action.oflag = oflag;
-+ rec->action.open_action.mode = mode;
-+
-+ /* Account for the new entry. */
-+ ++file_actions->__used;
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/librt/spawn_faction_init.c uClibc-git/librt/spawn_faction_init.c
---- uClibc-0.9.33.2/librt/spawn_faction_init.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/librt/spawn_faction_init.c 2014-07-25 20:36:09.605349347 +0200
-@@ -0,0 +1,42 @@
-+/* Copyright (C) 2000 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#include <errno.h>
-+#include <spawn.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include "spawn_int.h"
-+
-+
-+/* Function used to increase the size of the allocated array. This
-+ function is called from the `add'-functions. */
-+int
-+__posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *file_actions)
-+{
-+ int newalloc = file_actions->__allocated + 8;
-+ void *newmem = realloc(file_actions->__actions,
-+ newalloc * sizeof(struct __spawn_action));
-+
-+ if (newmem == NULL)
-+ /* Not enough memory. */
-+ return ENOMEM;
-+
-+ file_actions->__actions = (struct __spawn_action *)newmem;
-+ file_actions->__allocated = newalloc;
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/librt/spawn_int.h uClibc-git/librt/spawn_int.h
---- uClibc-0.9.33.2/librt/spawn_int.h 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/librt/spawn_int.h 2014-07-25 20:36:09.605349347 +0200
-@@ -0,0 +1,35 @@
-+/* Data structure to contain the action information. */
-+struct __spawn_action {
-+ enum {
-+ spawn_do_close,
-+ spawn_do_dup2,
-+ spawn_do_open
-+ } tag;
-+
-+ union {
-+ struct {
-+ int fd;
-+ } close_action;
-+ struct {
-+ int fd;
-+ int newfd;
-+ } dup2_action;
-+ struct {
-+ int fd;
-+ const char *path;
-+ int oflag;
-+ mode_t mode;
-+ } open_action;
-+ } action;
-+};
-+
-+int __posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *fa);
-+
-+/* handle !LFS */
-+#ifndef __UCLIBC_HAS_LFS__
-+# define rlimit64 rlimit
-+# define getrlimit64 getrlimit
-+#endif
-+#ifndef O_LARGEFILE
-+# define O_LARGEFILE 0
-+#endif
-diff -Nur uClibc-0.9.33.2/librt/timer_create.c uClibc-git/librt/timer_create.c
---- uClibc-0.9.33.2/librt/timer_create.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/librt/timer_create.c 2014-07-25 20:36:09.605349347 +0200
-@@ -2,6 +2,7 @@
- * timer_create.c - create a per-process timer.
- */
-
-+#include <stddef.h>
- #include <errno.h>
- #include <signal.h>
- #include <stdlib.h>
-@@ -13,10 +14,6 @@
-
- #ifdef __NR_timer_create
-
--#ifndef offsetof
--# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
--#endif
--
- #define __NR___syscall_timer_create __NR_timer_create
- static __inline__ _syscall3(int, __syscall_timer_create, clockid_t, clock_id,
- struct sigevent *, evp, kernel_timer_t *, ktimerid);
-diff -Nur uClibc-0.9.33.2/libubacktrace/arm/backtrace.c uClibc-git/libubacktrace/arm/backtrace.c
---- uClibc-0.9.33.2/libubacktrace/arm/backtrace.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libubacktrace/arm/backtrace.c 2014-07-25 20:36:09.949351149 +0200
-@@ -12,6 +12,7 @@
- *
- */
-
-+#include <libgcc_s.h>
- #include <execinfo.h>
- #include <dlfcn.h>
- #include <stdlib.h>
-@@ -25,6 +26,7 @@
- int cnt, size;
- };
-
-+#ifdef SHARED
- static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
- static _Unwind_VRS_Result (*unwind_vrs_get) (_Unwind_Context *,
- _Unwind_VRS_RegClass,
-@@ -34,14 +36,18 @@
-
- static void backtrace_init (void)
- {
-- void *handle = dlopen ("libgcc_s.so.1", RTLD_LAZY);
-+ void *handle = dlopen (LIBGCC_S_SO, RTLD_LAZY);
- if (handle == NULL
- || ((unwind_backtrace = dlsym (handle, "_Unwind_Backtrace")) == NULL)
- || ((unwind_vrs_get = dlsym (handle, "_Unwind_VRS_Get")) == NULL)) {
-- printf("libgcc_s.so.1 must be installed for backtrace to work\n");
-+ printf(LIBGCC_S_SO " must be installed for backtrace to work\n");
- abort();
- }
- }
-+#else
-+# define unwind_backtrace _Unwind_Backtrace
-+# define unwind_vrs_get _Unwind_VRS_Get
-+#endif
- /* This function is identical to "_Unwind_GetGR", except that it uses
- "unwind_vrs_get" instead of "_Unwind_VRS_Get". */
- static inline _Unwind_Word
-@@ -62,7 +68,7 @@
- {
- struct trace_arg *arg = a;
-
-- assert (unwind_getip != NULL);
-+ assert (unwind_getip(ctx) != NULL);
-
- /* We are first called with address in the __backtrace function. Skip it. */
- if (arg->cnt != -1)
-@@ -80,8 +86,10 @@
- {
- struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
-
-+#ifdef SHARED
- if (unwind_backtrace == NULL)
- backtrace_init();
-+#endif
-
- if (size >= 1)
- unwind_backtrace (backtrace_helper, &arg);
-diff -Nur uClibc-0.9.33.2/libubacktrace/arm/Makefile.arch uClibc-git/libubacktrace/arm/Makefile.arch
---- uClibc-0.9.33.2/libubacktrace/arm/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libubacktrace/arm/Makefile.arch 2014-07-25 20:36:09.829350520 +0200
-@@ -14,4 +14,4 @@
- else
- libubacktrace-a-y+=$(libubacktrace_ARCH_OBJS)
- endif
--libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.os)
-+libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.oS)
-diff -Nur uClibc-0.9.33.2/libubacktrace/backtrace.c uClibc-git/libubacktrace/backtrace.c
---- uClibc-0.9.33.2/libubacktrace/backtrace.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libubacktrace/backtrace.c 2014-07-25 20:36:09.949351149 +0200
-@@ -20,6 +20,7 @@
- *
- */
-
-+#include <libgcc_s.h>
- #include <execinfo.h>
- #include <dlfcn.h>
- #include <stdlib.h>
-@@ -33,20 +34,25 @@
- int cnt, size;
- };
-
-+#ifdef SHARED
- static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
- static _Unwind_Ptr (*unwind_getip) (struct _Unwind_Context *);
-
- static void backtrace_init (void)
- {
-- void *handle = dlopen ("libgcc_s.so.1", RTLD_LAZY);
-+ void *handle = dlopen (LIBGCC_S_SO, RTLD_LAZY);
-
- if (handle == NULL
- || ((unwind_backtrace = dlsym (handle, "_Unwind_Backtrace")) == NULL)
- || ((unwind_getip = dlsym (handle, "_Unwind_GetIP")) == NULL)) {
-- printf("libgcc_s.so.1 must be installed for backtrace to work\n");
-+ printf(LIBGCC_S_SO " must be installed for backtrace to work\n");
- abort();
- }
- }
-+#else
-+# define unwind_backtrace _Unwind_Backtrace
-+# define unwind_getip _Unwind_GetIP
-+#endif
-
- static _Unwind_Reason_Code
- backtrace_helper (struct _Unwind_Context *ctx, void *a)
-@@ -71,8 +77,10 @@
- {
- struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
-
-+#ifdef SHARED
- if (unwind_backtrace == NULL)
- backtrace_init();
-+#endif
-
- if (size >= 1)
- unwind_backtrace (backtrace_helper, &arg);
-diff -Nur uClibc-0.9.33.2/libubacktrace/backtracesyms.c uClibc-git/libubacktrace/backtracesyms.c
---- uClibc-0.9.33.2/libubacktrace/backtracesyms.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libubacktrace/backtracesyms.c 2014-07-25 20:36:09.949351149 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>.
-
- Based on glibc/sysdeps/generic/elf/backtracesyms.c
-
-diff -Nur uClibc-0.9.33.2/libubacktrace/backtracesymsfd.c uClibc-git/libubacktrace/backtracesymsfd.c
---- uClibc-0.9.33.2/libubacktrace/backtracesymsfd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libubacktrace/backtracesymsfd.c 2014-07-25 20:36:09.949351149 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA.
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>.
-
- Based on glibc/sysdeps/generic/elf/backtracesymsfd.c
-
-diff -Nur uClibc-0.9.33.2/libubacktrace/Makefile.in uClibc-git/libubacktrace/Makefile.in
---- uClibc-0.9.33.2/libubacktrace/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libubacktrace/Makefile.in 2014-07-25 20:36:09.829350520 +0200
-@@ -25,11 +25,13 @@
- -include $(libubacktrace_ARCH_DIR)/Makefile.arch
-
- libubacktrace_SRC-y :=
--libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtrace.c backtracesyms.c backtracesymsfd.c
-+libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtracesyms.c backtracesymsfd.c
-+libubacktrace_SRC_SHARED-$(UCLIBC_HAS_BACKTRACE) := backtrace.c
-
- # remove generic sources, if arch specific version is present
- ifneq ($(strip $(libubacktrace_ARCH_SRC-y)),)
- libubacktrace_SRC-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC-y))
-+libubacktrace_SRC_SHARED-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC_SHARED-y))
- endif
-
- # -fasynchronous-unwind-tables is required for backtrace to work using dwarf2
-@@ -43,12 +45,19 @@
- libubacktrace_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC-y))
- libubacktrace_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SRCS))
-
-+libubacktrace_SHARED_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC_SHARED-y))
-+libubacktrace_SHARED_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SHARED_SRCS))
-+
-+libubacktrace-shared-y := $(libubacktrace_SHARED_OBJS:.o=.oS)
-+libubacktrace-static-y := $(libubacktrace_SHARED_OBJS)
-+
- ifeq ($(DOPIC),y)
--libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os)
-+libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-static-y:.o=.os)
- else
--libubacktrace-a-y += $(libubacktrace_OBJS)
-+libubacktrace-a-y += $(libubacktrace_OBJS) $(libubacktrace-static-y)
- endif
--libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os)
-+libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-shared-y)
-+
-
- lib-a-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.a
- lib-so-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.so
-@@ -56,11 +65,7 @@
- objclean-y += CLEAN_libubacktrace
-
- ifeq ($(DOMULTI),n)
--ifeq ($(DOPIC),y)
--$(top_builddir)lib/libubacktrace.so: $(top_builddir)lib/libubacktrace.a $(libdl.depend)
--else
- $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace_so.a $(libdl.depend)
--endif
- $(call link.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
- else
- $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace.oS | $(libdl.depend)
-@@ -71,7 +76,7 @@
- $(Q)$(RM) $@
- $(do_ar)
-
--$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS)
-+$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS) $(libubacktrace_SHARED_SRCS)
- $(Q)$(RM) $@
- $(compile-m)
-
-diff -Nur uClibc-0.9.33.2/libutil/forkpty.c uClibc-git/libutil/forkpty.c
---- uClibc-0.9.33.2/libutil/forkpty.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libutil/forkpty.c 2014-07-25 20:36:09.949351149 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <termios.h>
-diff -Nur uClibc-0.9.33.2/libutil/logout.c uClibc-git/libutil/logout.c
---- uClibc-0.9.33.2/libutil/logout.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libutil/logout.c 2014-07-25 20:36:09.949351149 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/libutil/openpty.c uClibc-git/libutil/openpty.c
---- uClibc-0.9.33.2/libutil/openpty.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/libutil/openpty.c 2014-07-25 20:36:09.949351149 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/Makefile.help uClibc-git/Makefile.help
---- uClibc-0.9.33.2/Makefile.help 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/Makefile.help 2014-07-25 20:36:04.409322131 +0200
-@@ -27,6 +27,7 @@
- @echo ' menuconfig - interactive curses-based configurator'
- @echo ' oldconfig - resolve any unresolved symbols in .config'
- @echo ' silentoldconfig - resolve any unresolved symbols in .config, silently'
-+ @echo ' savedefconfig - Save current config (minimal config)'
- @echo ' randconfig - generate a random .config'
- @$(if $(arch-defconfigs), \
- @echo ''; \
-@@ -58,7 +59,7 @@
- @echo ' ARCH= - Use given arch for config targets'
- @echo ' SHELL= - Shell to use for make'
- @echo ' BUILD_CFLAGS= - extra CFLAGS for compiling host binaries'
-- @echo ' BUILD_LFLAGS= - extra LDFLAGS for linking host binaries'
-+ @echo ' BUILD_LDFLAGS= - extra LDFLAGS for linking host binaries'
- @echo ' CONFIG_SHELL= - Shell to use for menuconfig'
- @echo
- @echo ' PREFIX= - Prepended prefix'
-diff -Nur uClibc-0.9.33.2/Makefile.in uClibc-git/Makefile.in
---- uClibc-0.9.33.2/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/Makefile.in 2014-07-25 20:36:04.409322131 +0200
-@@ -8,18 +8,8 @@
- #--------------------------------------------------------------
- # You shouldn't need to mess with anything beyond this point...
- #--------------------------------------------------------------
--clean_targets := clean realclean distclean \
-- objclean-y headers_clean-y CLEAN_utils
--noconfig_targets := menuconfig config oldconfig silentoldconfig randconfig \
-- defconfig allyesconfig allnoconfig \
-- release dist tags help
--
- include $(top_srcdir)Rules.mak
- sub_headers := headers
--ifndef KCONFIG_CONFIG
--KCONFIG_CONFIG := $(top_builddir).config
--endif
--export KCONFIG_CONFIG
-
- ifeq ($(HAVE_DOT_CONFIG),y)
-
-@@ -56,6 +46,7 @@
-
- conf := $(top_builddir)extra/config/conf
- mconf := $(top_builddir)extra/config/mconf
-+nconf := $(top_builddir)extra/config/nconf
-
- ifeq ($(HAVE_DOT_CONFIG),y)
- # If the .config changes then we have to make sure that our includes are
-@@ -63,9 +54,9 @@
- # have uClibc_config.h as prerequisite but since we _symlink_ the headers
- # and do not (?) want to rely on 'make -L' we better update them right here,
- # on spot to save us from alot of hazzle.
--$(top_builddir)include/bits/uClibc_config.h: $(conf) $(KCONFIG_CONFIG) $(top_srcdir)extra/scripts/conf-header.sh | $(top_builddir)include/bits $(top_builddir)include/config
-+$(top_builddir)include/bits/uClibc_config.h: $(conf) $(KCONFIG_CONFIG) $(top_srcdir)extra/scripts/conf-header.sh | $(top_builddir)include/bits
- @$(disp_gen)
-- $(Q)@$< -s $(top_srcdir)extra/Configs/Config.in
-+ $(Q)$< -s $(Kconfig)
- $(Q)$(top_srcdir)extra/scripts/conf-header.sh $(KCONFIG_CONFIG) > $@
- $(Q)$(MAKE) headers-y
-
-@@ -76,6 +67,10 @@
- $(top_builddir)include/config/linuxthreads/old.h $(top_builddir)include/config/linuxthreads/new.h:
- @true
-
-+$(top_builddir)include/generated/unifdef_config.h: $(top_builddir)include/bits/uClibc_config.h | $(top_builddir)include/generated
-+ @$(disp_gen)
-+ $(Q)$(SED) -e '1,3d' $^ > $@
-+
- # For the moment, we have to keep re-running this target
- # because the fix includes scripts rely on pre-processers
- # in order to generate the headers correctly :(. That
-@@ -87,11 +82,21 @@
- export header_extra_args = -n
- endif
- HEADERS_BITS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/bits/*.h))
-+ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
-+HEADERS_BITS_COMMON_NO_LEGACY := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common-generic/bits/*.h))
-+HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_COMMON_NO_LEGACY),$(HEADERS_BITS_COMMON))
-+ALL_HEADERS_BITS_COMMON_NO_LEGACY := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON_NO_LEGACY))
-+endif
-+
- HEADERS_BITS_ARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/*.h))
- HEADERS_BITS_SUBARCH :=
- ifneq ($(TARGET_SUBARCH),)
- HEADERS_BITS_SUBARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/*.h))
- endif
-+ifneq ($(HEADERS_BITS_PTHREAD),)
-+HEADERS_BITS_ARCH := $(filter-out $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_ARCH))
-+HEADERS_BITS_SUBARCH:= $(filter-out $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_SUBARCH))
-+endif
- HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_ARCH) $(HEADERS_BITS_SUBARCH) $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_COMMON))
-
- HEADERS_SYS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/sys/*.h))
-@@ -99,8 +104,11 @@
- HEADERS_SYS_COMMON := $(filter-out $(HEADERS_SYS_ARCH),$(HEADERS_SYS_COMMON))
-
- ALL_HEADERS_COMMON := $(top_builddir)include/fpu_control.h \
-+ $(top_builddir)include/jmpbuf-offsets.h \
-+ $(top_builddir)include/jmpbuf-unwind.h \
- $(top_builddir)include/dl-osinfo.h \
-- $(top_builddir)include/hp-timing.h
-+ $(top_builddir)include/hp-timing.h \
-+ $(top_builddir)include/not-cancel.h
- ALL_HEADERS_BITS_COMMON := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON))
- ALL_HEADERS_BITS_ARCH := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_ARCH))
- ifneq ($(TARGET_SUBARCH),)
-@@ -120,13 +128,17 @@
- $(ALL_HEADERS_SYS_ARCH) \
- $(ALL_HEADERS_BITS_PTHREAD)
-
--$(top_builddir)include/fpu_control.h:
-+ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
-+ target-headers-sysdep += $(ALL_HEADERS_BITS_COMMON_NO_LEGACY)
-+endif
-+
-+$(top_builddir)include/fpu_control.h $(top_builddir)include/jmpbuf-offsets.h $(top_builddir)include/jmpbuf-unwind.h:
- @$(disp_ln)
- $(Q)[ -r $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) ] && \
- $(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) $@ || \
- $(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
-
--$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h:
-+$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h $(top_builddir)include/not-cancel.h:
- $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
-
- $(ALL_HEADERS_BITS_COMMON):
-@@ -135,6 +147,11 @@
- $(ALL_HEADERS_BITS_ARCH):
- $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(@F) $@
-
-+ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
-+$(ALL_HEADERS_BITS_COMMON_NO_LEGACY):
-+ $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common-generic/bits/$(@F) $@
-+endif
-+
- ifneq ($(TARGET_SUBARCH),)
- $(ALL_HEADERS_BITS_SUBARCH):
- $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/$(@F) $@
-@@ -155,6 +172,9 @@
- HEADERCLEAN_common:
- $(do_rm) $(ALL_HEADERS_COMMON)
- headers_clean-y += HEADERCLEAN_common
-+HEADERCLEAN_config:
-+ $(do_rm) -r $(addprefix $(top_builddir)include/,config generated)
-+menuconfig-clean-y: HEADERCLEAN_config
-
- # The headers. Arch specific headers are specified via ARCH_HEADERS in
- # libc/sysdeps/linux/$(TARGET_ARCH)/Makefile.arch which appends those via
-@@ -170,27 +190,22 @@
- $(top_builddir)include/bits/sysnum.h: $(top_srcdir)extra/scripts/gen_bits_syscall_h.sh | $(top_builddir)include/bits
- @$(disp_gen)
- $(Q)set -e; \
-- tmp=`mktemp $(top_builddir)include/bits/sysnum.h.XXXXXX 2>/dev/null || true`; \
-- [ -z "$$tmp" ] && tmp='$(top_builddir)include/bits/sysnum.h.new'; \
-- KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir="$(top_builddir)" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $$tmp; \
-- if cmp $(top_builddir)include/bits/sysnum.h $$tmp >/dev/null 2>&1; then \
-- $(RM) $$tmp; \
-- else \
-- mv -f $$tmp $(top_builddir)include/bits/sysnum.h; \
-- fi
-+ KERNEL_HEADERS="${KERNEL_HEADERS}" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $@.new; \
-+ cmp -s $@ $@.new && $(RM) $@.new || mv -f $@.new $@
- @# Ugly linux specific hack..
- $(Q)if grep -q __NR_ $@; then true; else \
- rm -f $@; \
- echo "ERROR: Could not generate syscalls."; \
-- echo "Make sure that you have proper kernel headers."; \
-- echo "Your .config in KERNEL_HEADERS=\"\" was set to:"; \
-+ echo "Make sure that you have properly installed kernel headers."; \
-+ echo "Your .config KERNEL_HEADERS=\"\" was set to:"; \
- echo "${KERNEL_HEADERS}"; \
- exit 1; \
- fi
-
- .PHONY: $(LOCAL_INSTALL_PATH)
- $(LOCAL_INSTALL_PATH):
-- $(Q)$(MAKE) PREFIX=$(shell pwd)/$(LOCAL_INSTALL_PATH) RUNTIME_PREFIX=/ \
-+ $(Q)$(MAKE) PREFIX=$(LOCAL_INSTALL_PATH) \
-+ RUNTIME_PREFIX=/ \
- DEVEL_PREFIX=/usr/ \
- HOSTCC="$(HOSTCC)" \
- install
-@@ -210,21 +225,34 @@
- # a "y" here means the feature is enabled and so we should *not* rm it.
- # if the option expands to nothing though, we can punt the headers.
- HEADERS_RM- := \
-+ config \
-+ generated \
-+ internal \
-+ cancel.h \
- dl-osinfo.h \
-+ jmpbuf-offsets.h \
-+ jmpbuf-unwind.h \
- hp-timing.h \
-+ not-cancel.h \
- _lfs_64.h \
- bits/uClibc_arch_features.h \
- bits/kernel_sigaction.h \
- bits/kernel_stat.h \
- bits/kernel_types.h \
-+ bits/libc-lock.h \
-+ bits/stdio-lock.h \
- bits/syscalls.h \
- bits/syscalls-common.h \
- bits/uClibc_fpmax.h \
-+ bits/uClibc_mutex.h \
-+ bits/uClibc_pthread.h \
- bits/uClibc_uintmaxtostr.h \
- bits/uClibc_uwchar.h \
- bits/uClibc_va_copy.h \
- bits/sigcontextinfo.h \
- bits/stackinfo.h \
-+ atomic.h \
-+ bits/atomic.h \
- tls.h \
- rpc/des_crypt.h \
- rpc/key_prot.h \
-@@ -259,18 +287,23 @@
- HEADERS_RM-$(UCLIBC_HAS_REGEX) += regex.h regexp.h
- HEADERS_RM-$(UCLIBC_HAS_RPC) += rpc
- HEADERS_RM-$(UCLIBC_HAS_SHADOW) += shadow.h
--HEADERS_RM-$(UCLIBC_HAS_SOCKET) += sys/socket.h bits/socket.h sys/socketvar.h
-+HEADERS_RM-$(UCLIBC_HAS_SOCKET) += sys/socket.h bits/socket.h sys/socketvar.h bits/socket_type.h
- HEADERS_RM-$(UCLIBC_HAS_SYSLOG) += syslog.h sys/syslog.h bits/syslog*.h
- HEADERS_RM-$(UCLIBC_HAS_THREADS) += *thread*.h semaphore.h \
- bits/*thread*.h \
- bits/initspin.h
- HEADERS_RM-$(UCLIBC_HAS_THREADS_NATIVE) += atomic.h bits/atomic.h
-+HEADERS_RM-$(UCLIBC_HAS_OBSTACK) += obstack.h
- HEADERS_RM-$(UCLIBC_HAS_UTMPX) += bits/utmpx.h utmpx.h
- HEADERS_RM-$(UCLIBC_HAS_WCHAR) += wchar.h wctype.h
- HEADERS_RM-$(UCLIBC_HAS_WORDEXP) += wordexp.h
- HEADERS_RM-$(UCLIBC_HAS_XATTR) += sys/xattr.h
- HEADERS_RM-$(UCLIBC_HAS_XLOCALE) += xlocale.h
--HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += sys/eventfd.h sys/fsuid.h \
-+HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += \
-+ sys/cachectl.h \
-+ bits/eventfd.h \
-+ sys/eventfd.h \
-+ sys/fsuid.h \
- bits/inotify.h \
- sys/inotify.h \
- sys/kdaemon.h \
-@@ -288,11 +321,13 @@
- sys/sysinfo.h \
- bits/timerfd.h \
- sys/timerfd.h \
-+ sys/sysmips.h \
- sys/vfs.h
- HEADERS_RM-$(UCLIBC_SUPPORT_AI_ADDRCONFIG) += ifaddrs.h
- HEADERS_RM-$(UCLIBC_SV4_DEPRECATED) += ustat.h sys/ustat.h bits/ustat.h
- HEADERS_RM-$(UCLIBC_SUSV3_LEGACY) += sys/timeb.h regexp.h
- HEADERS_RM-$(UCLIBC_SUSV4_LEGACY) += utime.h ucontext.h
-+HEADERS_RM-$(UCLIBC_HAS_ADVANCED_REALTIME) += spawn.h
-
- ifneq ($(findstring install,$(MAKECMDGOALS)),)
- $(addprefix $(PREFIX)$(DEVEL_PREFIX),include $(MULTILIB_DIR)):
-@@ -303,7 +338,9 @@
- $(do_mkdir)
- endif
- endif
--install_headers: headers $(top_builddir)extra/scripts/unifdef | $(PREFIX)$(DEVEL_PREFIX)include
-+
-+
-+install_headers: headers $(top_builddir)extra/scripts/unifdef $(top_builddir)include/generated/unifdef_config.h | $(PREFIX)$(DEVEL_PREFIX)include
- @$(call disp_install,"include -> $(PREFIX)$(DEVEL_PREFIX)include")
- $(Q)top_builddir=$(top_builddir) \
- $(top_srcdir)extra/scripts/install_headers.sh \
-@@ -346,12 +383,7 @@
- else
- -$(INSTALL) -m 755 $(top_builddir)lib/libc.so $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
- endif
--ifeq ($(UCLIBC_HAS_BACKTRACE),y)
--# Add the AS_NEEDED entry for libubacktrace.so
-- if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_LIBNAME) ] ; then \
-- echo "GROUP ( $(UBACKTRACE_ASNEEDED) )" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
-- fi
--endif
-+ echo "$(UBACKTRACE_ASNEEDED)" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so
- ifeq ($(UCLIBC_HAS_THREADS),y)
- ifneq ($(LINUXTHREADS_OLD),y)
- ifeq ($(HARDWIRED_ABSPATH),y)
-@@ -422,49 +454,55 @@
- install_hostutils: hostutils
- $(Q)$(MAKE) CROSS_COMPILE="$(CROSS_COMPILE)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils utils_install
-
--$(addprefix $(top_builddir),include include/bits include/sys include/config lib extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
-+$(addprefix $(top_builddir),include include/bits include/sys include/config include/generated lib extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
- $(do_mkdir)
-
- # configuration
- # ---------------------------------------------------------------------------
--$(conf) $(mconf): | $(top_builddir)include/config $(top_builddir)extra/config/lxdialog
-+$(conf) $(mconf) $(nconf): | $(top_builddir)include/config $(top_builddir)include/generated $(top_builddir)extra/config/lxdialog
- $(Q)$(MAKE) -C extra/config $(@F)
-
- arch-defconfigs := $(notdir $(wildcard $(top_srcdir)extra/Configs/defconfigs/$(ARCH)/*_defconfig))
-
- menuconfig: $(mconf)
-- $(Q)$< extra/Configs/Config.in
--
-+ $(Q)$< $(Kconfig)
- config: $(conf)
-- $(Q)$< extra/Configs/Config.in
--
--oldconfig: $(conf)
-- $(Q)$< -o extra/Configs/Config.in
-+ $(Q)$< $(Kconfig)
-+nconfig: $(nconf)
-+ $(Q)$< $(Kconfig)
-
-+oldaskconfig: $(conf)
-+ $(Q)$< -a $(Kconfig)
- silentoldconfig: $(conf)
-- $(Q)$< -s extra/Configs/Config.in
--
--randconfig: $(conf)
-- $(Q)$< -r extra/Configs/Config.in
--
-+ $(Q)$< -s $(Kconfig)
-+oldconfig: $(conf)
-+ $(Q)$< -o $(Kconfig)
-+allnoconfig: $(conf)
-+ $(Q)$< -n $(Kconfig)
- allyesconfig: $(conf)
-- $(Q)$< -y extra/Configs/Config.in
-+ $(Q)$< -y $(Kconfig)
- $(SED) -i -e "s/^DODEBUG=.*/# DODEBUG is not set/" \
- -e "s/^DOASSERTS=.*/# DOASSERTS is not set/" \
- -e "s/^SUPPORT_LD_DEBUG_EARLY=.*/# SUPPORT_LD_DEBUG_EARLY is not set/" \
- -e "s/^SUPPORT_LD_DEBUG=.*/# SUPPORT_LD_DEBUG is not set/" \
- -e "s/^UCLIBC_MJN3_ONLY=.*/# UCLIBC_MJN3_ONLY is not set/" \
- $(KCONFIG_CONFIG)
-- $(Q)$< -o extra/Configs/Config.in
--
--allnoconfig: $(conf)
-- $(Q)$< -n extra/Configs/Config.in
--
--defconfig: $(conf)
-- $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in
-+ $(Q)$< -o $(Kconfig)
-+alldefconfig: $(conf)
-+ $(Q)$< -A $(Kconfig)
-+randconfig: $(conf)
-+ $(Q)$< -r $(Kconfig)
-
--%_defconfig: $(conf)
-- $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in
-+cmd_defconfig = $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ $(Kconfig)
-+defconfig: $(conf) ; $(cmd_defconfig)
-+%_defconfig: $(conf) ; $(cmd_defconfig)
-+
-+savedefconfig: $(conf)
-+ $(Q)$< -S defconfig $(Kconfig)
-+listnewconfig: $(conf)
-+ $(Q)$< -l $(Kconfig)
-+olddefconfig: $(conf)
-+ $(Q)$< -d $(Kconfig)
-
- menuconfig-clean-y:
- $(Q)$(MAKE) -C extra/config CLEAN_extra/config
-@@ -484,11 +522,11 @@
- $(Q)$(RM) $(top_builddir)extra/scripts/unifdef
- $(Q)$(RM) -r $(LOCAL_INSTALL_PATH)
-
--distclean: clean
-+distclean: realclean
- -find . \( -name core -o -name \*.orig -o -name \*~ -o -name .\*.dep \) -exec $(RM) {} \;
- $(RM) $(top_builddir).config $(top_builddir).config.old $(top_builddir).config.cmd
-- $(RM) $(top_builddir)extra/locale/*.tgz
-- $(MAKE) -C extra/config distclean
-+ $(Q)$(RM) $(top_builddir)extra/locale/*.tgz
-+ @$(MAKE) -C extra/config distclean
-
- dist release:
- $(RM) ../uClibc-$(VERSION).tar
-@@ -499,7 +537,9 @@
- du -b ../uClibc-$(VERSION).tar.{bz2,xz}
-
- test check: test_compile
-- $(Q)$(MAKE) -C test
-+ $(Q)$(MAKE) -C test \
-+ $(if $(O),top_builddir=$(O)/)
-
- test_compile: $(LOCAL_INSTALL_PATH)
-- $(Q)$(MAKE) -C test compile
-+ $(Q)$(MAKE) -C test compile \
-+ $(if $(O),top_builddir=$(O)/)
-diff -Nur uClibc-0.9.33.2/Makerules uClibc-git/Makerules
---- uClibc-0.9.33.2/Makerules 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/Makerules 2014-07-25 20:36:04.409322131 +0200
-@@ -50,6 +50,10 @@
- endif
- $(shared_objs) $(ar_objs): | $(sub_headers)
-
-+define objects_with_syms
-+ $(foreach o,$(2),$(if $(shell $(NM) $(1) $(o) | grep .),$(o)))
-+endef
-+
- headers-y: $(headers-y)
- @true
-
-@@ -243,7 +247,7 @@
- cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@)) $(sort $(foreach d,$(^:$(top_srcdir)=),$(collect_multi_flags)))
- cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^
- cmd_t_strip = $(STRIPTOOL) $(STRIP_FLAGS) $@
--cmd_ar = $(AR) $(ARFLAGS) $@ $^
-+cmd_ar = $(AR) $(ARFLAGS) $@ $(call objects_with_syms,,$^)
-
- define do_ln
- @$(disp_ln)
-@@ -300,7 +304,7 @@
- -Wl,-z,relro -Wl,--hash-style=gnu -Wl,-z,defs \
- -Wl,--verbose 2>&1 | LC_ALL=C \
- sed -e '/^=========/,/^=========/!d;/^=========/d' \
-- -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' > $@.lds
-+ -e 's/\. = .* + SIZEOF_HEADERS;/& $(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds
- endef
-
- define link.so
-@@ -373,14 +377,9 @@
- $(top_builddir)lib/interp.c: | $(top_builddir)lib
- $(Q)echo "/* Force shared libraries to know about the correct library loader */" > $@.tmp
- $(Q)echo "#include <features.h>" >> $@.tmp
--ifeq ($(HARDWIRED_ABSPATH),y)
- $(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
- "(\".interp\"))) =\""$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UCLIBC_LDSO)"\";" >> $@.tmp
- $(Q)$(SED) -i -e 's://:/:g' $@.tmp
--else
-- $(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
-- "(\".interp\"))) =\""$(UCLIBC_LDSO)"\";" >> $@.tmp
--endif
- $(Q)mv $@.tmp $@
-
- $(interp): $(top_builddir)lib/interp.c | $(sub_headers)
-@@ -470,6 +469,8 @@
- $(libm-a-y) $(libm-so-y) \
- $(libpthread-a-y) $(libpthread-so-y) $(libpthread-nonshared-y) \
- $(libthread_db-a-y) $(libthread_db-so-y) $(libpthread-generated-y) \
-+ $(START_FILE-libpthread.so) $(END_FILE-libpthread.so) \
-+ $(PTHREAD_INITFINI:.c=.s) \
- $(librt-a-y) $(librt-so-y) $(libresolv-a-y) $(libresolv-so-y) \
- $(libcrypt-a-y) $(libcrypt-so-y) $(libutil-a-y) $(libutil-so-y) \
- $(libnsl-a-y) $(libnsl-so-y) $(ldso-y) $(libdl-a-y) $(libdl-so-y) \
-diff -Nur uClibc-0.9.33.2/Rules.mak uClibc-git/Rules.mak
---- uClibc-0.9.33.2/Rules.mak 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/Rules.mak 2014-07-25 20:36:04.409322131 +0200
-@@ -27,6 +27,15 @@
- # file named ".config". Don't mess with this file unless
- # you know what you are doing.
-
-+clean_targets := clean realclean distclean \
-+ objclean-y headers_clean-y CLEAN_utils
-+noconfig_targets := menuconfig config nconfig \
-+ oldaskconfig silentoldconfig oldconfig allnoconfig allyesconfig \
-+ alldefconfig randconfig defconfig savedefconfig listnewconfig \
-+ olddefconfig \
-+ xconfig gconfig update-po-config mconf qconf gconf nconf conf \
-+ release dist tags help
-+
-
- #-----------------------------------------------------------
- # If you are running a cross compiler, you will want to set
-@@ -63,7 +72,7 @@
-
- # Select the compiler needed to build binaries for your development system
- HOSTCC = gcc
--BUILD_CFLAGS = -Os -Wall
-+BUILD_CFLAGS = -Os
-
- #---------------------------------------------------------
- # Nothing beyond this point should ever be touched by mere
-@@ -74,10 +83,25 @@
- qstrip = $(strip $(subst ",,$(1)))
- #"))
-
-+# kconfig stuff
-+KCONFIG_CONFIG ?= $(top_builddir).config
-+KCONFIG_CONFIG := $(abspath $(KCONFIG_CONFIG))
-+export KCONFIG_CONFIG
-+KCONFIG_AUTOCONFIG := $(dir $(KCONFIG_CONFIG))include/config/auto.conf
-+export KCONFIG_AUTOCONFIG
-+KCONFIG_TRISTATE := $(dir $(KCONFIG_CONFIG))include/config/tristate.conf
-+export KCONFIG_TRISTATE
-+srctree := $(abspath $(top_srcdir))
-+export srctree
-+KCONFIG_AUTOHEADER := $(dir $(KCONFIG_CONFIG))include/generated/autoconf.h
-+export KCONFIG_AUTOHEADER
-+Kconfig := $(abspath $(top_srcdir)extra/Configs/Config.in)
-+
- # Pull in the user's uClibc configuration
--ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
---include $(top_builddir).config
-+ifeq ($(filter $(noconfig_targets) clean CLEAN_%,$(MAKECMDGOALS)),)
-+-include $(KCONFIG_CONFIG)
- endif
-+
- TARGET_ARCH:=$(call qstrip,$(TARGET_ARCH))
- ifeq ($(TARGET_ARCH),)
- ARCH ?= $(shell uname -m | $(SED) -e s/i.86/i386/ \
-@@ -93,19 +117,20 @@
- export ARCH
-
- # Make certain these contain a final "/", but no "//"s.
--TARGET_SUBARCH:=$(call qstrip,$(TARGET_SUBARCH))
--RUNTIME_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(RUNTIME_PREFIX)))))
--DEVEL_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(DEVEL_PREFIX)))))
--MULTILIB_DIR:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(MULTILIB_DIR)))))
--KERNEL_HEADERS:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(KERNEL_HEADERS)))))
-+scrub_path = $(strip $(subst //,/, $(subst ,/, $(call qstrip,$(1)))))
-+TARGET_SUBARCH := $(call qstrip,$(TARGET_SUBARCH))
-+RUNTIME_PREFIX := $(call scrub_path,$(RUNTIME_PREFIX))
-+DEVEL_PREFIX := $(call scrub_path,$(DEVEL_PREFIX))
-+MULTILIB_DIR := $(call scrub_path,$(MULTILIB_DIR))
-+KERNEL_HEADERS := $(call scrub_path,$(KERNEL_HEADERS))
- export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
-
-
- # Now config hard core
- MAJOR_VERSION := 0
- MINOR_VERSION := 9
--SUBLEVEL := 33
--EXTRAVERSION :=.2
-+SUBLEVEL := 34
-+EXTRAVERSION :=-git
- VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
- ABI_VERSION := $(MAJOR_VERSION)
- ifneq ($(EXTRAVERSION),)
-@@ -118,13 +143,19 @@
- LIBC := libc
- SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
- UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION)
--ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
-+
-+UCLIBC_LDSO_NAME := ld-uClibc
-+ARCH_NATIVE_BIT := 32
-+ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),)
- UCLIBC_LDSO_NAME := ld64-uClibc
- ARCH_NATIVE_BIT := 64
- else
--UCLIBC_LDSO_NAME := ld-uClibc
--ARCH_NATIVE_BIT := 32
-+ifeq ($(CONFIG_MIPS_N64_ABI),y)
-+UCLIBC_LDSO_NAME := ld64-uClibc
-+ARCH_NATIVE_BIT := 64
-+endif
- endif
-+
- UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
- NONSHARED_LIBNAME := uclibc_nonshared.a
- libc := $(top_builddir)lib/$(SHARED_LIBNAME)
-@@ -170,7 +201,7 @@
- if $(CC) -Wa,$(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; \
- then echo "-Wa,$(1)"; fi)
- check_ld=$(shell \
-- if $(LD) $(1) -o /dev/null -b binary /dev/null > /dev/null 2>&1; \
-+ if $(CC) $(LDFLAG-fuse-ld) -Wl,$(1) $(CFLAG_-nostdlib) -o /dev/null -Wl,-b,binary /dev/null > /dev/null 2>&1; \
- then echo "$(1)"; fi)
-
- # Use variable indirection here so that we can have variable
-@@ -221,6 +252,10 @@
-
- ARFLAGS:=cr
-
-+# Note: The check for -nostdlib has to be before all calls to check_ld
-+$(eval $(call check-gcc-var,-nostdlib))
-+LDFLAG-fuse-ld := $(filter -fuse-ld=%,$(EXTRA_UCLIBC_FLAGS))
-+# deliberately not named CFLAG-fuse-ld since unchecked and from user
-
- # Flags in OPTIMIZATION are used only for non-debug builds
-
-@@ -246,6 +281,7 @@
- GCC_MAJOR_VER ?= $(word 1,$(GCC_VER))
- #GCC_MINOR_VER ?= $(word 2,$(GCC_VER))
-
-+ifneq ($(TARGET_ARCH),arc)
- ifeq ($(GCC_MAJOR_VER),4)
- # shrinks code, results are from 4.0.2
- # 0.36%
-@@ -258,7 +294,7 @@
- $(eval $(call check-gcc-var,-fno-strength-reduce))
- OPTIMIZATION += $(CFLAG_-fno-strength-reduce)
- endif
--
-+endif
-
- # CPU_CFLAGS-y contain options which are not warnings,
- # not include or library paths, and not optimizations.
-@@ -311,7 +347,9 @@
- $(eval $(call check-gcc-var,-fomit-frame-pointer))
- OPTIMIZATION += $(CFLAG_-fomit-frame-pointer)
-
--ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586)$(CONFIG_586MMX),y)
-+ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586),y)
-+ # TODO: Change this to a gcc version check. This bug
-+ # should be fixed with at least gcc-4.3.
- # Non-SSE capable processor.
- # NB: this may make SSE insns segfault!
- # -O1 -march=pentium3, -Os -msse etc are known to be affected.
-@@ -330,18 +368,6 @@
- # -falign-jumps: reachable only by a jump
- # Generic: no alignment at all (smallest code)
- GCC_FALIGN=$(call check_gcc,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,-malign-jumps=1 -malign-loops=1)
--ifeq ($(CONFIG_K7),y)
-- # Align functions to four bytes, use default for jumps and loops (why?)
-- GCC_FALIGN=$(call check_gcc,-falign-functions=4 -falign-labels=1,-malign-functions=4)
--endif
--ifeq ($(CONFIG_CRUSOE),y)
-- # Use compiler's default for functions, jumps and loops (why?)
-- GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0)
--endif
--ifeq ($(CONFIG_CYRIXIII),y)
-- # Use compiler's default for functions, jumps and loops (why?)
-- GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0)
--endif
- OPTIMIZATION+=$(GCC_FALIGN)
-
- # Putting each function and data object into its own section
-@@ -366,22 +392,6 @@
-
- CPU_LDFLAGS-y+=-m32
- CPU_CFLAGS-y+=-m32
-- CPU_CFLAGS-$(CONFIG_386)+=-march=i386
-- CPU_CFLAGS-$(CONFIG_486)+=-march=i486
-- CPU_CFLAGS-$(CONFIG_ELAN)+=-march=i486
-- CPU_CFLAGS-$(CONFIG_586)+=-march=i586
-- CPU_CFLAGS-$(CONFIG_586MMX)+=$(call check_gcc,-march=pentium-mmx,-march=i586)
-- CPU_CFLAGS-$(CONFIG_686)+=-march=i686
-- CPU_CFLAGS-$(CONFIG_PENTIUMII)+=$(call check_gcc,-march=pentium2,-march=i686)
-- CPU_CFLAGS-$(CONFIG_PENTIUMIII)+=$(call check_gcc,-march=pentium3,-march=i686)
-- CPU_CFLAGS-$(CONFIG_PENTIUM4)+=$(call check_gcc,-march=pentium4,-march=i686)
-- CPU_CFLAGS-$(CONFIG_K6)+=$(call check_gcc,-march=k6,-march=i586)
-- CPU_CFLAGS-$(CONFIG_K7)+=$(call check_gcc,-march=athlon,-march=i686)
-- CPU_CFLAGS-$(CONFIG_CRUSOE)+=-march=i686
-- CPU_CFLAGS-$(CONFIG_WINCHIPC6)+=$(call check_gcc,-march=winchip-c6,-march=i586)
-- CPU_CFLAGS-$(CONFIG_WINCHIP2)+=$(call check_gcc,-march=winchip2,-march=i586)
-- CPU_CFLAGS-$(CONFIG_CYRIXIII)+=$(call check_gcc,-march=c3,-march=i486)
-- CPU_CFLAGS-$(CONFIG_NEHEMIAH)+=$(call check_gcc,-march=c3-2,-march=i686)
- endif
-
- ifeq ($(TARGET_ARCH),sparc)
-@@ -397,6 +407,12 @@
- CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
- endif
-
-+ifeq ($(TARGET_ARCH),metag)
-+ SYMBOL_PREFIX=_
-+ CPU_CFLAGS-$(CONFIG_META_1_2)+=
-+ CPU_CFLAGS-$(CONFIG_META_2_1)+=-Wa,-mcpu=metac21
-+endif
-+
- ifeq ($(TARGET_ARCH),mips)
- OPTIMIZATION+=-mno-split-addresses
- CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
-@@ -406,6 +422,7 @@
- CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
- CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32R2)+=-march=mips32r2 -mtune=mips32r2
- CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
-+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64R2)+=-mips64r2 -mtune=mips64r2
- ifeq ($(strip $(ARCH_BIG_ENDIAN)),y)
- CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-Wl,-melf64btsmip
- CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-Wl,-melf32btsmip
-@@ -537,6 +554,12 @@
- CPU_LDFLAGS-y += $(CPU_CFLAGS)
- endif
-
-+ifeq ($(TARGET_ARCH),arc)
-+ CPU_CFLAGS-y += -mlock -mswape
-+ CPU_CFLAGS-$(CONFIG_ARC_CPU_700) += -mA7
-+ CPU_LDFLAGS-y += $(CPU_CFLAGS) -marclinux
-+endif
-+
- $(eval $(call check-gcc-var,$(PIEFLAG_NAME)))
- PIEFLAG := $(CFLAG_$(PIEFLAG_NAME))
- ifeq ($(PIEFLAG),)
-@@ -546,11 +569,11 @@
- # well as the LD PIE flag (below) because we can't rely on
- # gcc passing -pie if we used -fPIE. We need to directly use -pie
- # instead of -Wl,-pie as gcc picks up the wrong startfile/endfile
--$(eval $(call cache-output-var,LDPIEFLAG,$(LD) --help 2>/dev/null | grep -q -- -pie && echo "-pie"))
-+$(eval $(call cache-output-var,LDPIEFLAG,$(CC) -Wl$(comma)--help 2>/dev/null | grep -q -- -pie && echo "-pie"))
-
- # Check for --as-needed support in linker
- ifndef LD_FLAG_ASNEEDED
--_LD_FLAG_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -- --as-needed)
-+_LD_FLAG_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -- --as-needed)
- ifneq ($(_LD_FLAG_ASNEEDED),)
- export LD_FLAG_ASNEEDED:=--as-needed
- endif
-@@ -574,11 +597,18 @@
-
- # Check for AS_NEEDED support in linker script (binutils>=2.16.1 has it)
- ifndef ASNEEDED
--export ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
--ifeq ($(UCLIBC_HAS_BACKTRACE),y)
-+export ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
-+
- # Only used in installed libc.so linker script
--UBACKTRACE_FULL_NAME := $(RUNTIME_PREFIX)lib/$(UBACKTRACE_DSO)
--export UBACKTRACE_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UBACKTRACE_FULL_NAME) )" || echo "$(UBACKTRACE_FULL_NAME)")
-+ifeq ($(UCLIBC_HAS_BACKTRACE),y)
-+ifeq ($(HARDWIRED_ABSPATH),y)
-+UBACKTRACE_FULL_NAME := $(subst //,/,$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UBACKTRACE_DSO))
-+else
-+UBACKTRACE_FULL_NAME := $(UBACKTRACE_DSO)
-+endif
-+export UBACKTRACE_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && \
-+ echo "GROUP ( AS_NEEDED ( $(UBACKTRACE_FULL_NAME) ) )" || \
-+ echo "GROUP ( $(UBACKTRACE_FULL_NAME) )")
- else
- export UBACKTRACE_ASNEEDED:=""
- endif
-@@ -623,14 +653,17 @@
- SSP_CFLAGS := $(SSP_DISABLE_FLAGS)
- endif
-
--$(eval $(call check-gcc-var,-nostdlib))
--
- # Collect all CFLAGS components
--CFLAGS := -include $(top_srcdir)include/libc-symbols.h \
-- $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
-- -nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \
-+CFLAGS := $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
-+ -nostdinc -I$(top_builddir)include \
-+ -I$(top_srcdir)include -include libc-symbols.h \
-+ -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
- -I$(top_srcdir)libc/sysdeps/linux \
-- -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
-+ -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
-+ -I$(top_srcdir)ldso/include -I.
-+ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
-+CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS))
-+endif
-
- # We need this to be checked within libc-symbols.h
- ifneq ($(HAVE_SHARED),y)
-@@ -640,7 +673,7 @@
- $(eval $(call check-ld-var,--warn-once))
- $(eval $(call check-ld-var,--sort-common))
- $(eval $(call check-ld-var,--discard-all))
--LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared \
-+LDFLAGS_NOSTRIP:=$(LDFLAG-fuse-ld) $(CPU_LDFLAGS-y) -shared \
- -Wl,--warn-common $(CFLAG_-Wl--warn-once) -Wl,-z,combreloc
- # binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
- #$(eval $(call check-ld-var,--gc-sections))
-@@ -720,7 +753,7 @@
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
- PTINC:= -I$(top_builddir)$(PTDIR) \
- -I$(top_srcdir)$(PTDIR) \
-- $(if $(TARGET_ARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
-+ $(if $(TARGET_SUBARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
- -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
- -I$(top_builddir)$(PTDIR)/sysdeps/$(TARGET_ARCH) \
- -I$(top_srcdir)$(PTDIR)/sysdeps/$(TARGET_ARCH) \
-@@ -728,9 +761,7 @@
- -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux \
- -I$(top_srcdir)$(PTDIR)/sysdeps/pthread \
- -I$(top_srcdir)$(PTDIR)/sysdeps/pthread/bits \
-- -I$(top_srcdir)$(PTDIR)/sysdeps/generic \
-- -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
-- -I$(top_srcdir)ldso/include
-+ -I$(top_srcdir)$(PTDIR)/sysdeps/generic
- #
- # Test for TLS if NPTL support was selected.
- #
-@@ -763,13 +794,14 @@
- PTINC :=
- endif
- CFLAGS += -I$(top_srcdir)libc/sysdeps/linux/common
--CFLAGS += -I$(KERNEL_HEADERS)
-
- #CFLAGS += -iwithprefix include-fixed -iwithprefix include
- $(eval $(call cache-output-var,CC_IPREFIX,$(CC) -print-file-name=include))
- CC_INC := -isystem $(dir $(CC_IPREFIX))include-fixed -isystem $(CC_IPREFIX)
- CFLAGS += $(CC_INC)
-
-+CFLAGS += -I$(KERNEL_HEADERS)
-+
- ifneq ($(DOASSERTS),y)
- CFLAGS+=-DNDEBUG
- endif
-@@ -786,7 +818,11 @@
-
- LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
- $(eval $(call cache-output-var,LIBGCC,$(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name))
-+$(eval $(call cache-output-var,LIBGCC_EH,$(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a))
-+# with -O0 we (e.g. lockf) might end up with references to
-+# _Unwind_Resume, so pull in gcc_eh in this case..
- LIBGCC_DIR:=$(dir $(LIBGCC))
-+LIBGCC += $(if $(DODEBUG),$(LIBGCC_EH))
-
- # moved from libpthread/linuxthreads
- ifeq ($(UCLIBC_CTOR_DTOR),y)
-@@ -794,4 +830,6 @@
- SHARED_END_FILES:=$(LIBGCC_DIR)crtendS.o $(top_builddir)lib/crtn.o
- endif
-
--LOCAL_INSTALL_PATH := install_dir
-+LOCAL_INSTALL_PATH := $(if $(O),$(O)/)install_dir
-+
-+PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
-diff -Nur uClibc-0.9.33.2/test/API/Makefile uClibc-git/test/API/Makefile
---- uClibc-0.9.33.2/test/API/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/API/Makefile 2014-07-25 20:36:10.365353328 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/args/Makefile uClibc-git/test/args/Makefile
---- uClibc-0.9.33.2/test/args/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/args/Makefile 2014-07-25 20:36:10.925356263 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/assert/Makefile uClibc-git/test/assert/Makefile
---- uClibc-0.9.33.2/test/assert/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/assert/Makefile 2014-07-25 20:36:11.325358357 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/build/Makefile uClibc-git/test/build/Makefile
---- uClibc-0.9.33.2/test/build/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/build/Makefile 2014-07-25 20:36:11.377358630 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/crypt/Makefile uClibc-git/test/crypt/Makefile
---- uClibc-0.9.33.2/test/crypt/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/crypt/Makefile 2014-07-25 20:36:11.385358673 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/ctype/Makefile uClibc-git/test/ctype/Makefile
---- uClibc-0.9.33.2/test/ctype/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/ctype/Makefile 2014-07-25 20:36:11.405358777 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/dlopen/libA.c uClibc-git/test/dlopen/libA.c
---- uClibc-0.9.33.2/test/dlopen/libA.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/dlopen/libA.c 2014-07-25 20:36:11.417358839 +0200
-@@ -0,0 +1,7 @@
-+extern void libB_func(void);
-+
-+void libA_func(void);
-+void libA_func(void)
-+{
-+ libB_func();
-+}
-diff -Nur uClibc-0.9.33.2/test/dlopen/libB.c uClibc-git/test/dlopen/libB.c
---- uClibc-0.9.33.2/test/dlopen/libB.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/dlopen/libB.c 2014-07-25 20:36:11.417358839 +0200
-@@ -0,0 +1,7 @@
-+extern void libC_func(void);
-+
-+void libB_func(void);
-+void libB_func(void)
-+{
-+ libC_func();
-+}
-diff -Nur uClibc-0.9.33.2/test/dlopen/libC.c uClibc-git/test/dlopen/libC.c
---- uClibc-0.9.33.2/test/dlopen/libC.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/dlopen/libC.c 2014-07-25 20:36:11.417358839 +0200
-@@ -0,0 +1,30 @@
-+#include <dlfcn.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#define LIBNAME "libB.so"
-+void _libC_fini(void);
-+void _libC_fini(void)
-+{
-+ printf("libC_fini():finish - atexit()\n");
-+}
-+
-+void libC_fini(void);
-+void libC_fini(void)
-+{
-+ _libC_fini();
-+}
-+
-+void libC_func(void);
-+void libC_func(void)
-+{
-+ void *libB;
-+
-+ libB = dlopen(LIBNAME, RTLD_LAZY);
-+ if (!libB) {
-+ fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
-+ exit(1);
-+ }
-+
-+ atexit(libC_fini);
-+}
-diff -Nur uClibc-0.9.33.2/test/dlopen/Makefile uClibc-git/test/dlopen/Makefile
---- uClibc-0.9.33.2/test/dlopen/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/dlopen/Makefile 2014-07-25 20:36:11.417358839 +0200
-@@ -2,11 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
--ifneq ($(HAVE_SHARED),y)
--TESTS_DISABLED := test3
--LDFLAGS_libtest.so := -lpthread
--endif
--
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/dlopen/Makefile.in uClibc-git/test/dlopen/Makefile.in
---- uClibc-0.9.33.2/test/dlopen/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/dlopen/Makefile.in 2014-07-25 20:36:11.417358839 +0200
-@@ -4,7 +4,13 @@
- # rules need a little love to work with glibc ...
- export UCLIBC_ONLY := 1
-
--TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr
-+TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr \
-+ testscope
-+
-+ifneq ($(HAVE_SHARED),y)
-+TESTS_DISABLED := test3
-+LDFLAGS_libtest.so := -lpthread
-+endif
-
- CFLAGS_dltest := -DLIBNAME="\"./libtest.so\""
- CFLAGS_dltest2 := -DLIBNAME="\"./libtest3.so\""
-@@ -18,22 +24,42 @@
- LDFLAGS_test2 := -ldl
- LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
- LDFLAGS_dladdr := -ldl
-+LDFLAGS_testscope:= -ldl
-
- DEBUG_LIBS := X
- WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
-
-+# Build libC.so without -mprefergot compilation flag to force a
-+# R_SH_JMP_SLOT relocation instead of R_SH_GLOB_DAT for _libC_fini. This is
-+# needed to resolve the _libC_fini symbol when used (by libC.so destructor),
-+# whereas with GLOB_DAT relocation the resolution happens in the GOT entry
-+# when the libC is loaded, for the same reason remove also the "-z now"
-+# linker flag.
-+# These are needed to spot the issue test case want raise.
-+
-+ifeq ($(TARGET_ARCH),sh)
-+CFLAGS-OMIT-libC.c = -mprefergot
-+endif
-+LDFLAGS-OMIT-libC.c = -Wl,-z,now
-+
- dltest: libtest.so
- dltest2: libtest3.so
- dlstatic: libstatic.so
- dlundef: libundef.so
- dlafk: libafk.so
-+testscope:libA.so
- libafk.so: libafk-temp.so
- LDFLAGS_libafk.so := ./libafk-temp.so -Wl,-rpath,.
- test1: libtest1.so
- test2: libtest1.so libtest2.so
- test3: libtest1.so libtest2.so
- libtest1.so: libtest2.so
-+libB.so: libC.so
-+libA.so: libB.so
- LDFLAGS_libtest.so := -lpthread
- LDFLAGS_libtest1.so := ./libtest2.so -Wl,-rpath,.
- LDFLAGS_libtest2.so := -Wl,-rpath,.
- LDFLAGS_libtest3.so := -lpthread -Wl,-rpath,.
-+LDFLAGS_libC.so := -ldl
-+LDFLAGS_libB.so := ./libC.so -Wl,-rpath,.
-+LDFLAGS_libA.so := ./libB.so -Wl,-rpath,.
-diff -Nur uClibc-0.9.33.2/test/dlopen/testscope.c uClibc-git/test/dlopen/testscope.c
---- uClibc-0.9.33.2/test/dlopen/testscope.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/dlopen/testscope.c 2014-07-25 20:36:11.417358839 +0200
-@@ -0,0 +1,29 @@
-+#include <dlfcn.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#define LIBNAME "libA.so"
-+int main(int argc, char **argv)
-+{
-+ void *libA;
-+ void (*libAfn)(void);
-+ char *error;
-+
-+ libA = dlopen(LIBNAME, RTLD_LAZY);
-+ if (!libA) {
-+ fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
-+ exit(1);
-+ }
-+
-+ libAfn = dlsym(libA, "libA_func");
-+ if ((error = dlerror()) != NULL) {
-+ fprintf(stderr, "Could not locate symbol 'libA_func': %s\n", error);
-+ exit(1);
-+ }
-+
-+ libAfn();
-+
-+ dlclose(libA);
-+
-+ return EXIT_SUCCESS;
-+}
-diff -Nur uClibc-0.9.33.2/test/.gitignore uClibc-git/test/.gitignore
---- uClibc-0.9.33.2/test/.gitignore 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/.gitignore 2014-07-25 20:36:09.949351149 +0200
-@@ -29,13 +29,19 @@
- dlopen/dlundef
- dlopen/libafk.so
- dlopen/libafk-temp.so
-+dlopen/libA.so
-+dlopen/libB.so
-+dlopen/libC.so
- dlopen/libstatic.so
- dlopen/libtest[123].so
- dlopen/libtest.so
- dlopen/libundef.so
- dlopen/test[1-3]
-+dlopen/testscope
- inet/bug-if1
- inet/gethost_r-align
-+inet/gethostid
-+inet/getnetent
- inet/if_nameindex
- inet/tst-aton
- inet/tst-ether_aton
-@@ -43,13 +49,28 @@
- inet/tst-ethers-line
- inet/tst-network
- inet/tst-ntoa
--inet/gethostid
--inet/getnetent
-+inet/tst-res
-+inet/tst-sock-nonblock
- librt/shmtest
- locale/bug-iconv-trans
-+locale/bug-usesetlocale
-+locale/C
- locale/collate-test
- locale/dump-ctype
- locale/gen-unicode-ctype
-+locale/show-ucs-data
-+locale/tst-digits
-+locale/tst-langinfo
-+locale/tst-mbswcs[1-6]
-+locale/tst_nl_langinfo
-+locale/tst-numeric
-+locale/tst-setlocale
-+locale/tst-sscanf
-+locale/tst-trans
-+locale/tst-wctype
-+locale/tst-xlocale1
-+locale/tst-xlocale2
-+locale/xfrm-test
- locale-mbwc/tst_iswalnum
- locale-mbwc/tst_iswalpha
- locale-mbwc/tst_iswcntrl
-@@ -100,16 +121,6 @@
- locale-mbwc/tst_wctype
- locale-mbwc/tst_wcwidth
- locale-mbwc/tst2_mbrtowc
--locale/show-ucs-data
--locale/tst-digits
--locale/tst-langinfo
--locale/tst-mbswcs[1-6]
--locale/tst_nl_langinfo
--locale/tst-numeric
--locale/tst-setlocale
--locale/tst-sscanf
--locale/tst-trans
--locale/tst-wctype
- malloc/malloc
- malloc/mallocbug
- malloc/malloc-standard-alignment
-@@ -146,8 +157,11 @@
- misc/seek
- misc/sem
- misc/stdarg
-+misc/tst-inotify
- misc/tst-scandir
- misc/tst-seekdir
-+misc/tst-statfs
-+misc/tst-statvfs
- misc/tst-utmp
- mmap/mmap
- mmap/mmap2
-@@ -243,6 +257,7 @@
- signal/signal
- signal/tst-raise
- signal/tst-signal
-+signal/tst-signalfd
- signal/tst-sigset
- signal/tst-sigsimple
- silly/hello
-@@ -250,10 +265,12 @@
- stat/memcmp-stat
- stat/stat
- stat/stat64
-+stat/stat-loop256
- stdio/64bit
- stdio/fclose-loop
- stdlib/ptytest
- stdlib/qsort
-+stdlib/testarc4random
- stdlib/testatexit
- stdlib/test-canon
- stdlib/test-canon2
-@@ -282,6 +299,7 @@
- time/tst-mktime
- time/tst-mktime3
- time/tst-strptime2
-+time/tst-timerfd
- time/tst_wcsftime
- tls/tst-tls[1-9]
- tls/tst-tls1[0-8]
-@@ -302,6 +320,8 @@
- unistd/getopt
- unistd/getopt_long
- unistd/tstgetopt
-+unistd/tst-posix_fallocate
-+unistd/tst-posix_fallocate64
- unistd/tst-preadwrite
- unistd/tst-preadwrite64
- unistd/vfork
-diff -Nur uClibc-0.9.33.2/test/inet/bug-if1.c uClibc-git/test/inet/bug-if1.c
---- uClibc-0.9.33.2/test/inet/bug-if1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/inet/bug-if1.c 2014-07-25 20:36:11.433358924 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <limits.h>
-diff -Nur uClibc-0.9.33.2/test/inet/gethostid.c uClibc-git/test/inet/gethostid.c
---- uClibc-0.9.33.2/test/inet/gethostid.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/inet/gethostid.c 2014-07-25 20:36:11.433358924 +0200
-@@ -1,6 +1,6 @@
- #include <unistd.h>
- #include <stdio.h>
- int main(void) {
-- printf("hostid=%d\n", gethostid());
-+ printf("hostid=%ld\n", gethostid());
- return 0;
- }
-diff -Nur uClibc-0.9.33.2/test/inet/getnetent.c uClibc-git/test/inet/getnetent.c
---- uClibc-0.9.33.2/test/inet/getnetent.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/inet/getnetent.c 2014-07-25 20:36:11.433358924 +0200
-@@ -8,7 +8,7 @@
- while (net->n_net && !((net->n_net >> 24) & 0xff)) {
- net->n_net <<= 8;
- }
-- printf("%lu.%lu.%lu.%lu\n",
-+ printf("%u.%u.%u.%u\n",
- (net->n_net >> 24) & 0xff, (net->n_net >> 16) & 0xff,
- (net->n_net >> 8) & 0xff, net->n_net & 0xff);
- }
-diff -Nur uClibc-0.9.33.2/test/inet/Makefile uClibc-git/test/inet/Makefile
---- uClibc-0.9.33.2/test/inet/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/inet/Makefile 2014-07-25 20:36:11.433358924 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/inet/Makefile.in uClibc-git/test/inet/Makefile.in
---- uClibc-0.9.33.2/test/inet/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/inet/Makefile.in 2014-07-25 20:36:11.433358924 +0200
-@@ -7,5 +7,11 @@
- endif
-
- ifeq ($(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6),)
--TESTS_DISABLED := tst-ether_aton tst-ethers tst-ethers-line
-+TESTS_DISABLED += tst-ether_aton tst-ethers tst-ethers-line
-+endif
-+
-+ifeq ($(UCLIBC_HAS_RESOLVER_SUPPORT),)
-+TESTS_DISABLED += tst-res
-+else
-+LDFLAGS_tst-res_glibc := -lresolv # assume it's glibc or somebody with that lib
- endif
-diff -Nur uClibc-0.9.33.2/test/inet/tst-network.c uClibc-git/test/inet/tst-network.c
---- uClibc-0.9.33.2/test/inet/tst-network.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/inet/tst-network.c 2014-07-25 20:36:11.433358924 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <sys/socket.h>
-diff -Nur uClibc-0.9.33.2/test/inet/tst-res.c uClibc-git/test/inet/tst-res.c
---- uClibc-0.9.33.2/test/inet/tst-res.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/inet/tst-res.c 2014-07-25 20:36:11.433358924 +0200
-@@ -0,0 +1,44 @@
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <sys/types.h>
-+#include <netinet/in.h>
-+#include <arpa/nameser.h>
-+#include <resolv.h>
-+#include <netdb.h>
-+
-+int main(int argc, char **argv)
-+{
-+ int r;
-+ struct __res_state state;
-+
-+ r = res_ninit(&state);
-+ if (r) {
-+ herror("ninit");
-+ abort();
-+ }
-+ r = res_init();
-+ if (r) {
-+ herror("init");
-+ abort();
-+ }
-+
-+#ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
-+ res_close();
-+#endif
-+#ifdef __UCLIBC__
-+ /* assume there is at least one resolver configured */
-+ assert (state._u._ext.nscount > 0);
-+#else
-+ assert (state._u._ext.nscount == 0);
-+#endif
-+ assert (state.options & RES_INIT);
-+ res_nclose(&state);
-+#ifdef __UCLIBC__
-+ /* We wipe the whole thing */
-+ assert ((state.options & RES_INIT) == 0);
-+#endif
-+ assert (state._u._ext.nscount == 0);
-+
-+ return 0;
-+}
-+
-diff -Nur uClibc-0.9.33.2/test/inet/tst-sock-nonblock.c uClibc-git/test/inet/tst-sock-nonblock.c
---- uClibc-0.9.33.2/test/inet/tst-sock-nonblock.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/inet/tst-sock-nonblock.c 2014-07-25 20:36:11.433358924 +0200
-@@ -0,0 +1,53 @@
-+/* vi: set sw=4 ts=4 sts=4: */
-+/*
-+ * Nonblocking socket test for uClibc
-+ * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include <error.h>
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <sys/un.h>
-+#include <sys/fcntl.h>
-+
-+static int
-+do_test(void)
-+{
-+ int fd, ret, result = 0;
-+ struct sockaddr_un sa;
-+ char buf;
-+
-+ fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_NONBLOCK, 0);
-+ if (fd < 0) {
-+ perror("socket()");
-+ result = 1;
-+ }
-+
-+ memset(&sa, 0, sizeof(sa));
-+ sa.sun_family = AF_UNIX;
-+ strcpy(sa.sun_path, "socktest");
-+ unlink("socktest");
-+ if (bind(fd, (const struct sockaddr *)&sa, sizeof(sa)) < 0) {
-+ perror("bind()");
-+ result = 1;
-+ }
-+
-+ ret = read(fd, &buf, sizeof(buf));
-+ if (ret != -1 || errno != EAGAIN) {
-+ error(0, 0, "Nonblocking read returned %d", ret);
-+ result = 1;
-+ }
-+
-+ return result;
-+}
-+
-+#define TIMEOUT 5
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -Nur uClibc-0.9.33.2/test/librt/Makefile uClibc-git/test/librt/Makefile
---- uClibc-0.9.33.2/test/librt/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/librt/Makefile 2014-07-25 20:36:11.449359008 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/locale/collate-test.c uClibc-git/test/locale/collate-test.c
---- uClibc-0.9.33.2/test/locale/collate-test.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/collate-test.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <ctype.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/locale/dump-ctype.c uClibc-git/test/locale/dump-ctype.c
---- uClibc-0.9.33.2/test/locale/dump-ctype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/dump-ctype.c 2014-07-25 20:36:11.489359217 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Usage example:
- $ dump-ctype de_DE.UTF-8
-diff -Nur uClibc-0.9.33.2/test/locale/gen-unicode-ctype.c uClibc-git/test/locale/gen-unicode-ctype.c
---- uClibc-0.9.33.2/test/locale/gen-unicode-ctype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/gen-unicode-ctype.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Usage example:
- $ gen-unicode /usr/local/share/Unidata/UnicodeData.txt 3.1
-diff -Nur uClibc-0.9.33.2/test/locale/Makefile uClibc-git/test/locale/Makefile
---- uClibc-0.9.33.2/test/locale/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/Makefile 2014-07-25 20:36:11.485359196 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/locale/tst-C-locale.c uClibc-git/test/locale/tst-C-locale.c
---- uClibc-0.9.33.2/test/locale/tst-C-locale.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-C-locale.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <ctype.h>
- #include <langinfo.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-ctype.c uClibc-git/test/locale/tst-ctype.c
---- uClibc-0.9.33.2/test/locale/tst-ctype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-ctype.c 2014-07-25 20:36:11.489359217 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <ctype.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-digits.c uClibc-git/test/locale/tst-digits.c
---- uClibc-0.9.33.2/test/locale/tst-digits.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-digits.c 2014-07-25 20:36:11.489359217 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <ctype.h>
- #include <langinfo.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-fmon.c uClibc-git/test/locale/tst-fmon.c
---- uClibc-0.9.33.2/test/locale/tst-fmon.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-fmon.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-langinfo.c uClibc-git/test/locale/tst-langinfo.c
---- uClibc-0.9.33.2/test/locale/tst-langinfo.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-langinfo.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <langinfo.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-langinfo.input uClibc-git/test/locale/tst-langinfo.input
---- uClibc-0.9.33.2/test/locale/tst-langinfo.input 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-langinfo.input 2014-07-25 20:36:11.489359217 +0200
-@@ -15,9 +15,8 @@
- # Lesser General Public License for more details.
-
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
-
- # Run the test program.
-diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs1.c uClibc-git/test/locale/tst-mbswcs1.c
---- uClibc-0.9.33.2/test/locale/tst-mbswcs1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-mbswcs1.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs2.c uClibc-git/test/locale/tst-mbswcs2.c
---- uClibc-0.9.33.2/test/locale/tst-mbswcs2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-mbswcs2.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs3.c uClibc-git/test/locale/tst-mbswcs3.c
---- uClibc-0.9.33.2/test/locale/tst-mbswcs3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-mbswcs3.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs4.c uClibc-git/test/locale/tst-mbswcs4.c
---- uClibc-0.9.33.2/test/locale/tst-mbswcs4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-mbswcs4.c 2014-07-25 20:36:11.489359217 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs5.c uClibc-git/test/locale/tst-mbswcs5.c
---- uClibc-0.9.33.2/test/locale/tst-mbswcs5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-mbswcs5.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs6.c uClibc-git/test/locale/tst-mbswcs6.c
---- uClibc-0.9.33.2/test/locale/tst-mbswcs6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-mbswcs6.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-numeric.c uClibc-git/test/locale/tst-numeric.c
---- uClibc-0.9.33.2/test/locale/tst-numeric.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-numeric.c 2014-07-25 20:36:11.489359217 +0200
-@@ -16,9 +16,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-rpmatch.c uClibc-git/test/locale/tst-rpmatch.c
---- uClibc-0.9.33.2/test/locale/tst-rpmatch.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-rpmatch.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <locale.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-trans.c uClibc-git/test/locale/tst-trans.c
---- uClibc-0.9.33.2/test/locale/tst-trans.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-trans.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <locale.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/locale/tst-wctype.c uClibc-git/test/locale/tst-wctype.c
---- uClibc-0.9.33.2/test/locale/tst-wctype.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/tst-wctype.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <error.h>
- #include <locale.h>
-diff -Nur uClibc-0.9.33.2/test/locale/xfrm-test.c uClibc-git/test/locale/xfrm-test.c
---- uClibc-0.9.33.2/test/locale/xfrm-test.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale/xfrm-test.c 2014-07-25 20:36:11.489359217 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <ctype.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/locale-mbwc/Makefile uClibc-git/test/locale-mbwc/Makefile
---- uClibc-0.9.33.2/test/locale-mbwc/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/locale-mbwc/Makefile 2014-07-25 20:36:11.469359112 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/Makefile uClibc-git/test/Makefile
---- uClibc-0.9.33.2/test/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/Makefile 2014-07-25 20:36:10.745355319 +0200
-@@ -5,6 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
-+top_srcdir=../
- top_builddir=../
- include Rules.mak
-
-@@ -46,9 +47,9 @@
-
- run: compile subdirs_run
-
--compile: $(top_builddir)/$(LOCAL_INSTALL_PATH) subdirs_compile
-+compile: $(top_builddir)$(LOCAL_INSTALL_PATH) subdirs_compile
-
--$(top_builddir)/$(LOCAL_INSTALL_PATH):
-+$(top_builddir)$(LOCAL_INSTALL_PATH):
- $(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
-
- tags:
-@@ -62,13 +63,16 @@
- subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
-
- $(patsubst %, _dir_%, $(DIRS)) : dummy
-- $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@)
-+ $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@) \
-+ KCONFIG_CONFIG=$(KCONFIG_CONFIG)
-
- $(patsubst %, _dirrun_%, $(DIRS)) : dummy
-- $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run
-+ $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run \
-+ KCONFIG_CONFIG=$(KCONFIG_CONFIG)
-
- $(patsubst %, _dircompile_%, $(DIRS)) : dummy
-- $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile
-+ $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile \
-+ KCONFIG_CONFIG=$(KCONFIG_CONFIG)
-
- $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
- $(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
-diff -Nur uClibc-0.9.33.2/test/malloc/Makefile uClibc-git/test/malloc/Makefile
---- uClibc-0.9.33.2/test/malloc/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/malloc/Makefile 2014-07-25 20:36:11.501359280 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/malloc/Makefile.in uClibc-git/test/malloc/Makefile.in
---- uClibc-0.9.33.2/test/malloc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/malloc/Makefile.in 2014-07-25 20:36:11.501359280 +0200
-@@ -2,3 +2,11 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- TESTS_DISABLED := time_malloc
-+
-+ifneq ($(UCLIBC_SUSV2_LEGACY),y)
-+TESTS_DISABLED += tst-valloc
-+endif
-+
-+ifneq ($(UCLIBC_HAS_OBSTACK),y)
-+TESTS_DISABLED += tst-obstack
-+endif
-diff -Nur uClibc-0.9.33.2/test/malloc/tst-calloc.c uClibc-git/test/malloc/tst-calloc.c
---- uClibc-0.9.33.2/test/malloc/tst-calloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/malloc/tst-calloc.c 2014-07-25 20:36:11.505359301 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <limits.h>
-diff -Nur uClibc-0.9.33.2/test/malloc/tst-malloc.c uClibc-git/test/malloc/tst-malloc.c
---- uClibc-0.9.33.2/test/malloc/tst-malloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/malloc/tst-malloc.c 2014-07-25 20:36:11.505359301 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <malloc.h>
-diff -Nur uClibc-0.9.33.2/test/malloc/tst-mcheck.c uClibc-git/test/malloc/tst-mcheck.c
---- uClibc-0.9.33.2/test/malloc/tst-mcheck.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/malloc/tst-mcheck.c 2014-07-25 20:36:11.505359301 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/malloc/tst-obstack.c uClibc-git/test/malloc/tst-obstack.c
---- uClibc-0.9.33.2/test/malloc/tst-obstack.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/malloc/tst-obstack.c 2014-07-25 20:36:11.505359301 +0200
-@@ -1,4 +1,8 @@
--/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>. */
-+/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>.
-+ * test_obstack_printf() added by Anthony G. Basile <blueness.gentoo.org>.
-+ */
-+
-+#include <features.h>
- #include <obstack.h>
- #include <stdint.h>
- #include <stdio.h>
-@@ -26,7 +30,7 @@
- }
-
- int
--main (void)
-+test_obstack_alloc (void)
- {
- int result = 0;
- int align = 2;
-@@ -62,3 +66,39 @@
-
- return result;
- }
-+
-+int
-+test_obstack_printf (void)
-+{
-+ int result = 0;
-+ int n;
-+ char *s;
-+ struct obstack ob;
-+
-+ obstack_init (&ob);
-+
-+ n = obstack_printf (&ob, "%s%d%c", "testing 1 ... 2 ... ", 3, '\n');
-+ result |= (n != 22);
-+ printf("obstack_printf => %d\n", n);
-+
-+ n = obstack_printf (&ob, "%s%d%c", "testing 3 ... 2 ... ", 1, '\0');
-+ result |= (n != 22);
-+ printf("obstack_printf => %d\n", n);
-+
-+ s = obstack_finish (&ob);
-+ printf("obstack_printf => %s\n", s);
-+ obstack_free (&ob, NULL);
-+
-+ return result;
-+}
-+
-+int
-+main (void)
-+{
-+ int result = 0;
-+
-+ result |= test_obstack_alloc();
-+ result |= test_obstack_printf();
-+
-+ return result;
-+}
-diff -Nur uClibc-0.9.33.2/test/math/basic-test.c uClibc-git/test/math/basic-test.c
---- uClibc-0.9.33.2/test/math/basic-test.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/basic-test.c 2014-07-25 20:36:11.517359363 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _ISOC99_SOURCE
-
-@@ -65,11 +64,6 @@
- check (#FLOAT " !isnan (1)", !(isnan (one_var))); \
- check (#FLOAT " !isnan (inf)", !(isnan (Inf_var))); \
- \
-- check (#FLOAT " inf == inf", Inf_var == Inf_var); \
-- check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
-- check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
-- check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
-- \
- /* \
- the same tests but this time with NAN from <bits/nan.h> \
- NAN is a double const \
-@@ -78,7 +72,6 @@
- check (#FLOAT " isnan (-NAN)", isnan (-NAN)); \
- check (#FLOAT " !isinf (NAN)", !(isinf (NAN))); \
- check (#FLOAT " !isinf (-NAN)", !(isinf (-NAN))); \
-- check (#FLOAT " NAN != NAN", NAN != NAN); \
- \
- /* \
- And again with the value returned by the `nan' function. \
-@@ -89,6 +82,48 @@
- check (#FLOAT " !isinf (-NAN)", !(isinf (-NANFUNC ("")))); \
- check (#FLOAT " NAN != NAN", NANFUNC ("") != NANFUNC ("")); \
- \
-+ /* test if HUGE_VALx is ok */ \
-+ x1 = HUGEVAL; \
-+ check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
-+ x1 = - HUGEVAL; \
-+ check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
-+}
-+#ifndef DO_C99_MATH
-+# undef TEST_FUNC
-+# define TEST_FUNC(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
-+static void \
-+NAME(void) \
-+{ /* nothing */ }
-+#endif
-+
-+#define TEST_VAL(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
-+static void \
-+NAME (void) \
-+{ \
-+ /* Variables are declared volatile to forbid some compiler \
-+ optimizations. */ \
-+ volatile FLOAT Inf_var, NaN_var, zero_var, one_var; \
-+ FLOAT x1, x2; \
-+ \
-+ zero_var = 0.0; \
-+ one_var = 1.0; \
-+ NaN_var = zero_var/zero_var; \
-+ Inf_var = one_var / zero_var; \
-+ \
-+ (void) &zero_var; \
-+ (void) &one_var; \
-+ (void) &NaN_var; \
-+ (void) &Inf_var; \
-+ \
-+ \
-+ check (#FLOAT " inf == inf", Inf_var == Inf_var); \
-+ check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
-+ check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
-+ check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
-+ \
-+ check (#FLOAT " NAN != NAN", NAN != NAN); \
-+ \
-+ \
- /* test if EPSILON is ok */ \
- x1 = 1.0; \
- x2 = x1 + EPSILON; \
-@@ -98,27 +133,28 @@
- x2 = x1 - EPSILON; \
- check (#FLOAT " 1 != 1-EPSILON", x1 != x2); \
- \
-- /* test if HUGE_VALx is ok */ \
-- x1 = HUGEVAL; \
-- check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
-- x1 = - HUGEVAL; \
-- check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
- }
-
--TEST_FUNC (float_test, float, nanf, FLT_EPSILON, HUGE_VALF)
--TEST_FUNC (double_test, double, nan, DBL_EPSILON, HUGE_VAL)
-+TEST_VAL (float_test_value, float, nanf, FLT_EPSILON, HUGE_VALF)
-+TEST_FUNC (float_test_call, float, nanf, FLT_EPSILON, HUGE_VALF)
-+TEST_VAL (double_test_value, double, nan, DBL_EPSILON, HUGE_VAL)
-+TEST_FUNC (double_test_call, double, nan, DBL_EPSILON, HUGE_VAL)
- #ifndef NO_LONG_DOUBLE
--TEST_FUNC (ldouble_test, long double, nanl, LDBL_EPSILON, HUGE_VALL)
-+TEST_VAL (ldouble_test_value, long double, nanl, LDBL_EPSILON, HUGE_VALL)
-+TEST_FUNC (ldouble_test_call, long double, nanl, LDBL_EPSILON, HUGE_VALL)
- #endif
-
- int
- main (void)
- {
-- float_test ();
-- double_test ();
-+ float_test_value ();
-+ float_test_call ();
-+ double_test_value ();
-+ double_test_call ();
-
- #ifndef NO_LONG_DOUBLE
-- ldouble_test ();
-+ ldouble_test_value ();
-+ ldouble_test_call ();
- #endif
-
- return errors != 0;
-diff -Nur uClibc-0.9.33.2/test/math/gen-libm-test.pl uClibc-git/test/math/gen-libm-test.pl
---- uClibc-0.9.33.2/test/math/gen-libm-test.pl 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/gen-libm-test.pl 2014-07-25 20:36:11.517359363 +0200
-@@ -14,9 +14,8 @@
- # Lesser General Public License for more details.
-
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
- # This file needs to be tidied up
- # Note that functions and tests share the same namespace.
-diff -Nur uClibc-0.9.33.2/test/math/libm-test.inc uClibc-git/test/math/libm-test.inc
---- uClibc-0.9.33.2/test/math/libm-test.inc 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/libm-test.inc 2014-07-25 20:36:11.517359363 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Part of testsuite for libm.
-
-diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-arm uClibc-git/test/math/libm-test-ulps-arm
---- uClibc-0.9.33.2/test/math/libm-test-ulps-arm 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/math/libm-test-ulps-arm 2014-07-25 20:36:11.517359363 +0200
-@@ -0,0 +1,4981 @@
-+# Begin of automatic generation
-+
-+# acos_downward
-+Test "acos_downward (-0)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (-0.5)":
-+double: 1
-+idouble: 1
-+Test "acos_downward (-1)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (0)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# acos_towardzero
-+Test "acos_towardzero (-0)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (-0.5)":
-+double: 1
-+idouble: 1
-+Test "acos_towardzero (-1)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (0)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# asin_downward
-+Test "asin_downward (-0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_downward (0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_downward (1.0)":
-+float: 1
-+ifloat: 1
-+
-+# asin_towardzero
-+Test "asin_towardzero (-0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_towardzero (-1.0)":
-+float: 1
-+ifloat: 1
-+Test "asin_towardzero (0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_towardzero (1.0)":
-+float: 1
-+ifloat: 1
-+
-+# asin_upward
-+Test "asin_upward (-1.0)":
-+float: 1
-+ifloat: 1
-+
-+# atan2
-+Test "atan2 (-0.75, -1.0)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (-max_value, -min_value)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (0.75, -1.0)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (1.390625, 0.9296875)":
-+float: 1
-+ifloat: 1
-+
-+# atanh
-+Test "atanh (0.75)":
-+float: 1
-+ifloat: 1
-+
-+# cacos
-+Test "Imaginary part of: cacos (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.25 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0.25 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# cacosh
-+Test "Real part of: cacosh (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+
-+# casin
-+Test "Imaginary part of: casin (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1p-23 + 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1p-23 + 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1p-23 - 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# casinh
-+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0.5 + +0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + +0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0.5 + +0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + +0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+
-+# catan
-+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+
-+# catanh
-+Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 + 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 + 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+
-+# cbrt
-+Test "cbrt (-27.0)":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.75)":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.9921875)":
-+double: 1
-+idouble: 1
-+
-+# ccos
-+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ccos (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
-+double: 1
-+idouble: 1
-+
-+# ccosh
-+Test "Real part of: ccosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ccosh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+
-+# cexp
-+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (-95 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (50 + 0x1p127 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (500 + 0x1p1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (709.8125 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (88.75 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
-+float: 2
-+ifloat: 2
-+
-+# clog
-+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# clog10
-+Test "Imaginary part of: clog10 (-0 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 2
-+idouble: 2
-+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 2
-+idouble: 2
-+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-3 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-3 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 1 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + inf i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-inf - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf - 1 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (3 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (3 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# cos
-+Test "cos (0x1p+120)":
-+float: 1
-+ifloat: 1
-+Test "cos (0x1p+127)":
-+float: 1
-+ifloat: 1
-+Test "cos (M_PI_6l * 2.0) == 0.5":
-+double: 1
-+idouble: 1
-+ifloat: 1
-+Test "cos (M_PI_6l * 4.0) == -0.5":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# cos_downward
-+Test "cos_downward (1)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (3)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (4)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (5)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (8)":
-+float: 1
-+ifloat: 1
-+
-+# cos_tonearest
-+Test "cos_tonearest (7)":
-+float: 1
-+ifloat: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (2)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (3)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (8)":
-+float: 1
-+ifloat: 1
-+
-+# cos_upward
-+Test "cos_upward (10)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (6)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (9)":
-+float: 2
-+ifloat: 2
-+
-+# cosh_downward
-+Test "cosh_downward (22)":
-+float: 1
-+ifloat: 1
-+Test "cosh_downward (23)":
-+float: 1
-+ifloat: 1
-+Test "cosh_downward (24)":
-+float: 1
-+ifloat: 1
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22)":
-+float: 1
-+ifloat: 1
-+Test "cosh_towardzero (23)":
-+float: 1
-+ifloat: 1
-+Test "cosh_towardzero (24)":
-+float: 1
-+ifloat: 1
-+
-+# cpow
-+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
-+double: 2
-+float: 3
-+idouble: 2
-+ifloat: 3
-+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
-+float: 2
-+ifloat: 2
-+
-+# csin
-+Test "Real part of: csin (-0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (-0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (-0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (-0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (0x1p-1074 + 1440 i)":
-+double: 1
-+idouble: 1
-+
-+# csinh
-+Test "Imaginary part of: csinh (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+
-+# csqrt
-+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csqrt (-2 + 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
-+double: 1
-+idouble: 1
-+
-+# ctan
-+Test "Real part of: ctan (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan (0x1p1023 + 1 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_downward
-+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_tonearest
-+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_towardzero
-+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_upward
-+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# ctanh
-+Test "Real part of: ctanh (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0 + pi/4 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: ctanh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctanh (1 + 0x1p127 i)":
-+double: 1
-+idouble: 1
-+
-+# ctanh_downward
-+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# ctanh_tonearest
-+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctanh_towardzero
-+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctanh_upward
-+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# erf
-+Test "erf (0.75) == 0.711155633653515131598937834591410777":
-+double: 1
-+idouble: 1
-+Test "erf (1.25) == 0.922900128256458230136523481197281140":
-+double: 1
-+idouble: 1
-+
-+# erfc
-+Test "erfc (0x1.f7303cp+1)":
-+double: 1
-+idouble: 1
-+Test "erfc (0x1.ffa002p+2)":
-+float: 1
-+ifloat: 1
-+Test "erfc (2.0)":
-+double: 1
-+idouble: 1
-+Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-+double: 1
-+idouble: 1
-+
-+# exp
-+Test "exp (1) == e":
-+double: 1
-+idouble: 1
-+
-+# exp10
-+Test "exp10 (-1)":
-+double: 1
-+idouble: 1
-+Test "exp10 (-305)":
-+double: 1
-+idouble: 1
-+Test "exp10 (-36)":
-+double: 1
-+idouble: 1
-+Test "exp10 (3)":
-+double: 1
-+idouble: 1
-+Test "exp10 (36)":
-+double: 1
-+idouble: 1
-+
-+# exp_downward
-+Test "exp_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "exp_downward (3)":
-+float: 1
-+ifloat: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (2)":
-+float: 1
-+ifloat: 1
-+Test "exp_towardzero (3)":
-+float: 1
-+ifloat: 1
-+
-+# exp_upward
-+Test "exp_upward (1)":
-+float: 1
-+ifloat: 1
-+
-+# expm1
-+Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-+double: 1
-+idouble: 1
-+Test "expm1 (1)":
-+float: 1
-+ifloat: 1
-+Test "expm1 (500.0)":
-+double: 1
-+idouble: 1
-+
-+# gamma
-+Test "gamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "gamma (1.2)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# hypot
-+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+
-+# j0
-+Test "j0 (-4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "j0 (0.75)":
-+float: 1
-+ifloat: 1
-+Test "j0 (0x1.d7ce3ap+107)":
-+float: 2
-+ifloat: 2
-+Test "j0 (10.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "j0 (2.0)":
-+float: 2
-+ifloat: 2
-+Test "j0 (4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "j0 (8.0)":
-+float: 1
-+ifloat: 1
-+
-+# j1
-+Test "j1 (0x1.3ffp+74)":
-+double: 1
-+idouble: 1
-+Test "j1 (0x1.ff00000000002p+840)":
-+double: 1
-+idouble: 1
-+Test "j1 (10.0)":
-+float: 2
-+ifloat: 2
-+Test "j1 (2.0)":
-+double: 1
-+idouble: 1
-+Test "j1 (8.0)":
-+double: 1
-+idouble: 1
-+
-+# jn
-+Test "jn (0, -4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (0, 0.75)":
-+float: 1
-+ifloat: 1
-+Test "jn (0, 10.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "jn (0, 2.0)":
-+float: 2
-+ifloat: 2
-+Test "jn (0, 4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (0, 8.0)":
-+float: 1
-+ifloat: 1
-+Test "jn (1, 10.0)":
-+float: 2
-+ifloat: 2
-+Test "jn (1, 2.0)":
-+double: 1
-+idouble: 1
-+Test "jn (1, 8.0)":
-+double: 1
-+idouble: 1
-+Test "jn (10, 0.125)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (10, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (10, 10.0)":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+Test "jn (10, 2.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "jn (2, 0x1.ffff62p+99)":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+Test "jn (2, 2.4048255576957729)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "jn (3, 0.125)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (3, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (3, 10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "jn (3, 2.0)":
-+float: 1
-+ifloat: 1
-+Test "jn (3, 2.4048255576957729)":
-+double: 3
-+idouble: 3
-+Test "jn (4, 2.4048255576957729)":
-+double: 1
-+idouble: 1
-+Test "jn (5, 2.4048255576957729)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "jn (6, 2.4048255576957729)":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+Test "jn (7, 2.4048255576957729)":
-+double: 3
-+float: 5
-+idouble: 3
-+ifloat: 5
-+Test "jn (8, 2.4048255576957729)":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+Test "jn (9, 2.4048255576957729)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# lgamma
-+Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# log10
-+Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-+double: 1
-+idouble: 1
-+Test "log10 (e) == log10(e)":
-+float: 1
-+ifloat: 1
-+
-+# log1p
-+Test "log1p (-0.25)":
-+float: 1
-+ifloat: 1
-+
-+# pow
-+Test "pow (0x0.ffffffp0, -0x1p24)":
-+float: 1
-+ifloat: 1
-+Test "pow (0x0.ffffffp0, 0x1p24)":
-+float: 1
-+ifloat: 1
-+Test "pow (0x1.000002p0, 0x1p24)":
-+float: 1
-+ifloat: 1
-+
-+# pow10
-+Test "pow10 (-1)":
-+double: 1
-+idouble: 1
-+Test "pow10 (-305)":
-+double: 1
-+idouble: 1
-+Test "pow10 (-36)":
-+double: 1
-+idouble: 1
-+Test "pow10 (3)":
-+double: 1
-+idouble: 1
-+Test "pow10 (36)":
-+double: 1
-+idouble: 1
-+
-+# pow_downward
-+Test "pow_downward (1.5, 1.03125)":
-+float: 1
-+ifloat: 1
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.5, 1.03125)":
-+float: 1
-+ifloat: 1
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125)":
-+float: 1
-+ifloat: 1
-+
-+# sin_downward
-+Test "sin_downward (10)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (3)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (5)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (6)":
-+float: 1
-+ifloat: 1
-+
-+# sin_tonearest
-+Test "sin_tonearest (1)":
-+float: 1
-+ifloat: 1
-+
-+# sin_towardzero
-+Test "sin_towardzero (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (10)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (4)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (9)":
-+float: 1
-+ifloat: 1
-+
-+# sin_upward
-+Test "sin_upward (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (2)":
-+float: 2
-+ifloat: 2
-+Test "sin_upward (4)":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (9)":
-+float: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (0x1p+120) extra output 2":
-+float: 1
-+ifloat: 1
-+Test "sincos (0x1p+127) extra output 2":
-+float: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0) extra output 1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0) extra output 2":
-+double: 1
-+idouble: 1
-+Test "sincos (pi/6) extra output 2":
-+float: 1
-+ifloat: 1
-+
-+# sinh_downward
-+Test "sinh_downward (22)":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (23)":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (24)":
-+float: 1
-+ifloat: 1
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22)":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (23)":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (24)":
-+float: 1
-+ifloat: 1
-+
-+# tan_downward
-+Test "tan_downward (1)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (6)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (8)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (9)":
-+float: 1
-+ifloat: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (3)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (4)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (9)":
-+float: 1
-+ifloat: 1
-+
-+# tan_upward
-+Test "tan_upward (1)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (3)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (5)":
-+float: 1
-+ifloat: 1
-+
-+# tgamma
-+Test "tgamma (-0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x0.fffffffffffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x0.ffffffp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x1.000002p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x1.0a32a2p+5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (-0x13.ffffep0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (-0x14.000000000001p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x14.00002p0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x1d.ffffep0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x1e.000000000001p0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x1e.00002p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x2.0000000000002p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x2.000004p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x2.fffffcp0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x27.fffffffffffep0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x28.000000000002p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x28.00004p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x29.00004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x29.ffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x3.000004p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x3.fffffcp0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x3.ffffffffffffep0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x31.fffffffffffep0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x4.000008p0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x4.fffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x4.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x5.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x5.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x6.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (-0x6.fffff8p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x6.ffffffffffffcp0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (-0x63.fffffffffffcp0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x64.000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x7.0000000000004p0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x7.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x7.fffff8p0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "tgamma (-0x7.ffffffffffffcp0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x8.00001p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x9.ffffffffffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x9.fffffp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x96.000000000008p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0xa.00001p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-2.5)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (-3.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-4.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-5.5)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-6.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-7.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-8.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-9.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x1.fffffep0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x1.fffffffffffffp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x1p-24)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x1p-53)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x2.30a43cp+4)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (0x2.fffffcp0)":
-+float: 3
-+ifloat: 3
-+Test "tgamma (0x3.fffffcp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x3.ffffffffffffep0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x4.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x4.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x5.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x5.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (0x5.fffff8p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x6.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x6.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (0x6.fffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x6.ffffffffffffcp0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (0x7.0000000000004p0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (0x7.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x7.fffff8p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (0x7.ffffffffffffcp0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (0x8.00001p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (0xa.b9fd72b0fb238p+4)":
-+double: 1
-+idouble: 1
-+Test "tgamma (10)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (18.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (19.5)":
-+double: 2
-+idouble: 2
-+Test "tgamma (2.5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (23.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (29.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (3)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (3.5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (30.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (33.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (34.5)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (4)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (4.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (6)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (6.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (7)":
-+double: 1
-+idouble: 1
-+Test "tgamma (7.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (8)":
-+double: 1
-+idouble: 1
-+Test "tgamma (8.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (9)":
-+double: 1
-+idouble: 1
-+Test "tgamma (9.5)":
-+double: 1
-+idouble: 1
-+
-+# y0
-+Test "y0 (0x1.3ffp+74)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1.ff00000000002p+840)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-10)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-110)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-20)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-30)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-40)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (0x1p-50)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-70)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-80)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (1.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (1.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (10.0)":
-+float: 1
-+ifloat: 1
-+Test "y0 (8.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# y1
-+Test "y1 (0.125)":
-+double: 1
-+idouble: 1
-+Test "y1 (0x1.27e204p+99)":
-+double: 1
-+idouble: 1
-+Test "y1 (0x1p-10)":
-+double: 1
-+idouble: 1
-+Test "y1 (1.5)":
-+float: 1
-+ifloat: 1
-+Test "y1 (10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "y1 (2.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y1 (8.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# yn
-+Test "yn (0, 1.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 1.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 10.0)":
-+float: 1
-+ifloat: 1
-+Test "yn (0, 8.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (1, 1.5)":
-+float: 1
-+ifloat: 1
-+Test "yn (1, 10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "yn (1, 2.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 8.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "yn (10, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (10, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (10, 1.0)":
-+double: 1
-+idouble: 1
-+Test "yn (10, 10.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (10, 2.0)":
-+double: 2
-+idouble: 2
-+Test "yn (3, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (3, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (3, 10.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (3, 2.0)":
-+double: 1
-+idouble: 1
-+
-+# Maximal error of functions:
-+Function: "acos_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "acos_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "atan2":
-+float: 1
-+ifloat: 1
-+
-+Function: "atanh":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "casin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "casin":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "casinh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "casinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catan":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "catan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "catanh":
-+float: 1
-+ifloat: 1
-+
-+Function: "cbrt":
-+double: 1
-+idouble: 1
-+
-+Function: Real part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "cexp":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "cexp":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "clog":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "clog":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "clog10":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "clog10":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "cos":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "cos_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_upward":
-+float: 2
-+ifloat: 2
-+
-+Function: "cosh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "cosh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cpow":
-+double: 2
-+float: 4
-+idouble: 2
-+ifloat: 4
-+
-+Function: Imaginary part of "cpow":
-+float: 2
-+ifloat: 2
-+
-+Function: Real part of "csin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csinh":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan":
-+double: 1
-+idouble: 1
-+
-+Function: Real part of "ctan_downward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_upward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_upward":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "ctanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "ctanh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_downward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Real part of "ctanh_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctanh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctanh_upward":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "ctanh_upward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "erf":
-+double: 1
-+idouble: 1
-+
-+Function: "erfc":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "exp":
-+double: 1
-+idouble: 1
-+
-+Function: "exp10":
-+double: 1
-+idouble: 1
-+
-+Function: "exp_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "exp_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "exp_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "expm1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "gamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "hypot":
-+float: 1
-+ifloat: 1
-+
-+Function: "j0":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "j1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "jn":
-+double: 4
-+float: 5
-+idouble: 4
-+ifloat: 5
-+
-+Function: "lgamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "log":
-+float: 1
-+ifloat: 1
-+
-+Function: "log10":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "log1p":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow10":
-+double: 1
-+idouble: 1
-+
-+Function: "pow_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_upward":
-+float: 2
-+ifloat: 2
-+
-+Function: "sincos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "sinh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sinh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan":
-+double: 1
-+idouble: 1
-+
-+Function: "tan_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "tgamma":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+
-+Function: "y0":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "y1":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+Function: "yn":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+# end of automatic generation
-diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-mips32 uClibc-git/test/math/libm-test-ulps-mips32
---- uClibc-0.9.33.2/test/math/libm-test-ulps-mips32 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/math/libm-test-ulps-mips32 2014-07-25 20:36:11.517359363 +0200
-@@ -0,0 +1,4966 @@
-+# Begin of automatic generation
-+
-+# acos_downward
-+Test "acos_downward (-0)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (-0.5)":
-+double: 1
-+idouble: 1
-+Test "acos_downward (-1)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (0)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# acos_towardzero
-+Test "acos_towardzero (-0)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (-0.5)":
-+double: 1
-+idouble: 1
-+Test "acos_towardzero (-1)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (0)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# asin_downward
-+Test "asin_downward (-0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_downward (0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_downward (1.0)":
-+float: 1
-+ifloat: 1
-+
-+# asin_towardzero
-+Test "asin_towardzero (-0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_towardzero (-1.0)":
-+float: 1
-+ifloat: 1
-+Test "asin_towardzero (0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_towardzero (1.0)":
-+float: 1
-+ifloat: 1
-+
-+# asin_upward
-+Test "asin_upward (-1.0)":
-+float: 1
-+ifloat: 1
-+
-+# atan2
-+Test "atan2 (-0.75, -1.0)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (-max_value, -min_value)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (0.75, -1.0)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (1.390625, 0.9296875)":
-+float: 1
-+ifloat: 1
-+
-+# atanh
-+Test "atanh (0.75)":
-+float: 1
-+ifloat: 1
-+
-+# cacos
-+Test "Imaginary part of: cacos (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.25 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0.25 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# cacosh
-+Test "Real part of: cacosh (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+
-+# casin
-+Test "Imaginary part of: casin (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1p-23 + 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1p-23 + 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1p-23 - 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# casinh
-+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0.5 + +0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + +0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (-1.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0.5 + +0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + +0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casinh (1.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+
-+# catan
-+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+
-+# catanh
-+Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 + 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 + 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+
-+# cbrt
-+Test "cbrt (-27.0)":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.75)":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.9921875)":
-+double: 1
-+idouble: 1
-+
-+# ccos
-+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ccos (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
-+double: 1
-+idouble: 1
-+
-+# ccosh
-+Test "Real part of: ccosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ccosh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+
-+# cexp
-+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (-95 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (50 + 0x1p127 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (500 + 0x1p1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (709.8125 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (88.75 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
-+float: 2
-+ifloat: 2
-+
-+# clog
-+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# clog10
-+Test "Imaginary part of: clog10 (-0 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 2
-+idouble: 2
-+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 2
-+idouble: 2
-+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-3 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-3 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 1 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + inf i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-inf - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf - 1 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (3 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (3 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# cos
-+Test "cos (0x1p+120)":
-+float: 1
-+ifloat: 1
-+Test "cos (0x1p+127)":
-+float: 1
-+ifloat: 1
-+Test "cos (M_PI_6l * 2.0)":
-+double: 1
-+idouble: 1
-+Test "cos (M_PI_6l * 4.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# cos_downward
-+Test "cos_downward (1)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (3)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (4)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (5)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (8)":
-+float: 1
-+ifloat: 1
-+
-+# cos_tonearest
-+Test "cos_tonearest (7)":
-+float: 1
-+ifloat: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (2)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (3)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (8)":
-+float: 1
-+ifloat: 1
-+
-+# cos_upward
-+Test "cos_upward (10)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (6)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (9)":
-+float: 2
-+ifloat: 2
-+
-+# cosh_downward
-+Test "cosh_downward (22)":
-+float: 1
-+ifloat: 1
-+Test "cosh_downward (23)":
-+float: 1
-+ifloat: 1
-+Test "cosh_downward (24)":
-+float: 1
-+ifloat: 1
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22)":
-+float: 1
-+ifloat: 1
-+Test "cosh_towardzero (23)":
-+float: 1
-+ifloat: 1
-+Test "cosh_towardzero (24)":
-+float: 1
-+ifloat: 1
-+
-+# cpow
-+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
-+double: 2
-+float: 3
-+idouble: 2
-+ifloat: 3
-+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
-+float: 2
-+ifloat: 2
-+
-+# csin
-+Test "Real part of: csin (-0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (-0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (-0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (-0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csin (0x1p-1074 + 1440 i)":
-+double: 1
-+idouble: 1
-+
-+# csinh
-+Test "Imaginary part of: csinh (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+
-+# csqrt
-+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csqrt (-2 + 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
-+double: 1
-+idouble: 1
-+
-+# ctan
-+Test "Real part of: ctan (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan (0x1p1023 + 1 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_downward
-+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_tonearest
-+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_towardzero
-+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_upward
-+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# ctanh
-+Test "Real part of: ctanh (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0 + pi/4 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: ctanh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctanh (1 + 0x1p127 i)":
-+double: 1
-+idouble: 1
-+
-+# ctanh_downward
-+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# ctanh_tonearest
-+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctanh_towardzero
-+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctanh_upward
-+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# erf
-+Test "erf (1.25)":
-+double: 1
-+idouble: 1
-+
-+# erfc
-+Test "erfc (0x1.f7303cp+1)":
-+double: 1
-+idouble: 1
-+Test "erfc (0x1.ffa002p+2)":
-+float: 1
-+ifloat: 1
-+Test "erfc (2.0)":
-+double: 1
-+idouble: 1
-+Test "erfc (4.125)":
-+double: 1
-+idouble: 1
-+
-+# exp10
-+Test "exp10 (-1)":
-+double: 1
-+idouble: 1
-+Test "exp10 (-305)":
-+double: 1
-+idouble: 1
-+Test "exp10 (-36)":
-+double: 1
-+idouble: 1
-+Test "exp10 (3)":
-+double: 1
-+idouble: 1
-+Test "exp10 (36)":
-+double: 1
-+idouble: 1
-+
-+# exp_downward
-+Test "exp_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "exp_downward (3)":
-+float: 1
-+ifloat: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (2)":
-+float: 1
-+ifloat: 1
-+Test "exp_towardzero (3)":
-+float: 1
-+ifloat: 1
-+
-+# exp_upward
-+Test "exp_upward (1)":
-+float: 1
-+ifloat: 1
-+
-+# expm1
-+Test "expm1 (0.75)":
-+double: 1
-+idouble: 1
-+Test "expm1 (1)":
-+float: 1
-+ifloat: 1
-+Test "expm1 (500.0)":
-+double: 1
-+idouble: 1
-+
-+# gamma
-+Test "gamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "gamma (1.2)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# hypot
-+Test "hypot (-0.7, -12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (-0.7, 12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, -0.7)":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, 0.7)":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, -12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, 12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, -0.7)":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, 0.7)":
-+float: 1
-+ifloat: 1
-+
-+# j0
-+Test "j0 (-4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "j0 (0.75)":
-+float: 1
-+ifloat: 1
-+Test "j0 (0x1.d7ce3ap+107)":
-+float: 2
-+ifloat: 2
-+Test "j0 (10.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "j0 (2.0)":
-+float: 2
-+ifloat: 2
-+Test "j0 (4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "j0 (8.0)":
-+float: 1
-+ifloat: 1
-+
-+# j1
-+Test "j1 (0x1.3ffp+74)":
-+double: 1
-+idouble: 1
-+Test "j1 (0x1.ff00000000002p+840)":
-+double: 1
-+idouble: 1
-+Test "j1 (10.0)":
-+float: 2
-+ifloat: 2
-+Test "j1 (2.0)":
-+double: 1
-+idouble: 1
-+Test "j1 (8.0)":
-+double: 1
-+idouble: 1
-+
-+# jn
-+Test "jn (0, -4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (0, 0.75)":
-+float: 1
-+ifloat: 1
-+Test "jn (0, 10.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "jn (0, 2.0)":
-+float: 2
-+ifloat: 2
-+Test "jn (0, 4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (0, 8.0)":
-+float: 1
-+ifloat: 1
-+Test "jn (1, 10.0)":
-+float: 2
-+ifloat: 2
-+Test "jn (1, 2.0)":
-+double: 1
-+idouble: 1
-+Test "jn (1, 8.0)":
-+double: 1
-+idouble: 1
-+Test "jn (10, 0.125)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (10, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (10, 10.0)":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+Test "jn (10, 2.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "jn (2, 0x1.ffff62p+99)":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+Test "jn (2, 2.4048255576957729)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "jn (3, 0.125)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (3, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (3, 10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "jn (3, 2.0)":
-+float: 1
-+ifloat: 1
-+Test "jn (3, 2.4048255576957729)":
-+double: 3
-+idouble: 3
-+Test "jn (4, 2.4048255576957729)":
-+double: 1
-+idouble: 1
-+Test "jn (5, 2.4048255576957729)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "jn (6, 2.4048255576957729)":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+Test "jn (7, 2.4048255576957729)":
-+double: 3
-+float: 5
-+idouble: 3
-+ifloat: 5
-+Test "jn (8, 2.4048255576957729)":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+Test "jn (9, 2.4048255576957729)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# lgamma
-+Test "lgamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "lgamma (1.2)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# log10
-+Test "log10 (0.75)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "log10 (e)":
-+float: 1
-+ifloat: 1
-+
-+# log1p
-+Test "log1p (-0.25)":
-+float: 1
-+ifloat: 1
-+
-+# pow
-+Test "pow (0x0.ffffffp0, -0x1p24)":
-+float: 1
-+ifloat: 1
-+Test "pow (0x0.ffffffp0, 0x1p24)":
-+float: 1
-+ifloat: 1
-+Test "pow (0x1.000002p0, 0x1p24)":
-+float: 1
-+ifloat: 1
-+
-+# pow10
-+Test "pow10 (-1)":
-+double: 1
-+idouble: 1
-+Test "pow10 (-305)":
-+double: 1
-+idouble: 1
-+Test "pow10 (-36)":
-+double: 1
-+idouble: 1
-+Test "pow10 (3)":
-+double: 1
-+idouble: 1
-+Test "pow10 (36)":
-+double: 1
-+idouble: 1
-+
-+# pow_downward
-+Test "pow_downward (1.5, 1.03125)":
-+float: 1
-+ifloat: 1
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.5, 1.03125)":
-+float: 1
-+ifloat: 1
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125)":
-+float: 1
-+ifloat: 1
-+
-+# sin_downward
-+Test "sin_downward (10)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (3)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (5)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (6)":
-+float: 1
-+ifloat: 1
-+
-+# sin_tonearest
-+Test "sin_tonearest (1)":
-+float: 1
-+ifloat: 1
-+
-+# sin_towardzero
-+Test "sin_towardzero (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (10)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (4)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (9)":
-+float: 1
-+ifloat: 1
-+
-+# sin_upward
-+Test "sin_upward (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (2)":
-+float: 2
-+ifloat: 2
-+Test "sin_upward (4)":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (9)":
-+float: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (0x1p+120) extra output 2":
-+float: 1
-+ifloat: 1
-+Test "sincos (0x1p+127) extra output 2":
-+float: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0) extra output 1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0) extra output 2":
-+double: 1
-+idouble: 1
-+Test "sincos (pi/6) extra output 2":
-+float: 1
-+ifloat: 1
-+
-+# sinh_downward
-+Test "sinh_downward (22)":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (23)":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (24)":
-+float: 1
-+ifloat: 1
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22)":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (23)":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (24)":
-+float: 1
-+ifloat: 1
-+
-+# tan_downward
-+Test "tan_downward (1)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (6)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (8)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (9)":
-+float: 1
-+ifloat: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (3)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (4)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (9)":
-+float: 1
-+ifloat: 1
-+
-+# tan_upward
-+Test "tan_upward (1)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (3)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (5)":
-+float: 1
-+ifloat: 1
-+
-+# tgamma
-+Test "tgamma (-0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x0.fffffffffffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x0.ffffffp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x1.000002p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x1.0a32a2p+5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (-0x13.ffffep0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (-0x14.000000000001p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x14.00002p0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x1d.ffffep0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x1e.000000000001p0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x1e.00002p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x2.0000000000002p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x2.000004p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x2.fffffcp0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x27.fffffffffffep0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x28.000000000002p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x28.00004p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x29.00004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x29.ffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x3.000004p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x3.fffffcp0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x3.ffffffffffffep0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x31.fffffffffffep0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x4.000008p0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x4.fffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x4.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x5.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x5.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x6.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (-0x6.fffff8p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x6.ffffffffffffcp0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (-0x63.fffffffffffcp0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x64.000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x7.0000000000004p0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x7.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x7.fffff8p0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "tgamma (-0x7.ffffffffffffcp0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x8.00001p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x9.ffffffffffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x9.fffffp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x96.000000000008p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0xa.00001p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-2.5)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (-3.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-4.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-5.5)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-6.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-7.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-8.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-9.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x1.fffffep0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x1.fffffffffffffp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x1p-24)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x1p-53)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x2.30a43cp+4)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (0x2.fffffcp0)":
-+float: 3
-+ifloat: 3
-+Test "tgamma (0x3.fffffcp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x3.ffffffffffffep0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x4.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x4.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x5.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x5.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (0x5.fffff8p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x6.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x6.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (0x6.fffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x6.ffffffffffffcp0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (0x7.0000000000004p0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (0x7.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x7.fffff8p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (0x7.ffffffffffffcp0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (0x8.00001p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (0xa.b9fd72b0fb238p+4)":
-+double: 1
-+idouble: 1
-+Test "tgamma (10)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (18.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (19.5)":
-+double: 2
-+idouble: 2
-+Test "tgamma (2.5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (23.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (29.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (3)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (3.5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (30.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (33.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (34.5)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (4)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (4.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (6)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (6.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (7)":
-+double: 1
-+idouble: 1
-+Test "tgamma (7.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (8)":
-+double: 1
-+idouble: 1
-+Test "tgamma (8.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (9)":
-+double: 1
-+idouble: 1
-+Test "tgamma (9.5)":
-+double: 1
-+idouble: 1
-+
-+# y0
-+Test "y0 (0x1.3ffp+74)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1.ff00000000002p+840)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-10)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-110)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-20)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-30)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-40)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (0x1p-50)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-70)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-80)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (1.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (1.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (10.0)":
-+float: 1
-+ifloat: 1
-+Test "y0 (8.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# y1
-+Test "y1 (0.125)":
-+double: 1
-+idouble: 1
-+Test "y1 (0x1.27e204p+99)":
-+double: 1
-+idouble: 1
-+Test "y1 (0x1p-10)":
-+double: 1
-+idouble: 1
-+Test "y1 (1.5)":
-+float: 1
-+ifloat: 1
-+Test "y1 (10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "y1 (2.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y1 (8.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# yn
-+Test "yn (0, 1.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 1.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 10.0)":
-+float: 1
-+ifloat: 1
-+Test "yn (0, 8.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (1, 1.5)":
-+float: 1
-+ifloat: 1
-+Test "yn (1, 10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "yn (1, 2.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 8.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "yn (10, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (10, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (10, 1.0)":
-+double: 1
-+idouble: 1
-+Test "yn (10, 10.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (10, 2.0)":
-+double: 2
-+idouble: 2
-+Test "yn (3, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (3, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (3, 10.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (3, 2.0)":
-+double: 1
-+idouble: 1
-+
-+# Maximal error of functions:
-+Function: "acos_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "acos_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "atan2":
-+float: 1
-+ifloat: 1
-+
-+Function: "atanh":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "casin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "casin":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "casinh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "casinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catan":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "catan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "catanh":
-+float: 1
-+ifloat: 1
-+
-+Function: "cbrt":
-+double: 1
-+idouble: 1
-+
-+Function: Real part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "cexp":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "cexp":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "clog":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "clog":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "clog10":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "clog10":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "cos":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "cos_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_upward":
-+float: 2
-+ifloat: 2
-+
-+Function: "cosh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "cosh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cpow":
-+double: 2
-+float: 4
-+idouble: 2
-+ifloat: 4
-+
-+Function: Imaginary part of "cpow":
-+float: 2
-+ifloat: 2
-+
-+Function: Real part of "csin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csinh":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan":
-+double: 1
-+idouble: 1
-+
-+Function: Real part of "ctan_downward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_upward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_upward":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "ctanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "ctanh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_downward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Real part of "ctanh_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctanh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctanh_upward":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "ctanh_upward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "erf":
-+double: 1
-+idouble: 1
-+
-+Function: "erfc":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "exp10":
-+double: 1
-+idouble: 1
-+
-+Function: "exp_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "exp_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "exp_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "expm1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "gamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "hypot":
-+float: 1
-+ifloat: 1
-+
-+Function: "j0":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "j1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "jn":
-+double: 4
-+float: 5
-+idouble: 4
-+ifloat: 5
-+
-+Function: "lgamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "log10":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "log1p":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow10":
-+double: 1
-+idouble: 1
-+
-+Function: "pow_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_upward":
-+float: 2
-+ifloat: 2
-+
-+Function: "sincos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "sinh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sinh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan":
-+double: 1
-+idouble: 1
-+
-+Function: "tan_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "tgamma":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+
-+Function: "y0":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "y1":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+Function: "yn":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+# end of automatic generation
-diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-mips64 uClibc-git/test/math/libm-test-ulps-mips64
---- uClibc-0.9.33.2/test/math/libm-test-ulps-mips64 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/math/libm-test-ulps-mips64 2014-07-25 20:36:11.517359363 +0200
-@@ -0,0 +1,9633 @@
-+# Begin of automatic generation
-+
-+# acos_downward
-+Test "acos_downward (-0)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (-0.5)":
-+double: 1
-+idouble: 1
-+Test "acos_downward (-1)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (0)":
-+float: 1
-+ifloat: 1
-+Test "acos_downward (0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# acos_towardzero
-+Test "acos_towardzero (-0)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (-0.5)":
-+double: 1
-+idouble: 1
-+Test "acos_towardzero (-1)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (0)":
-+float: 1
-+ifloat: 1
-+Test "acos_towardzero (0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# asin_downward
-+Test "asin_downward (-0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_downward (0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_downward (1.0)":
-+float: 1
-+ifloat: 1
-+
-+# asin_towardzero
-+Test "asin_towardzero (-0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_towardzero (-1.0)":
-+float: 1
-+ifloat: 1
-+Test "asin_towardzero (0.5)":
-+double: 1
-+idouble: 1
-+Test "asin_towardzero (1.0)":
-+float: 1
-+ifloat: 1
-+
-+# asin_upward
-+Test "asin_upward (-1.0)":
-+float: 1
-+ifloat: 1
-+
-+# atan2
-+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
-+ildouble: 1
-+ldouble: 1
-+Test "atan2 (-0.75, -1.0)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "atan2 (-max_value, -min_value)":
-+float: 1
-+ifloat: 1
-+Test "atan2 (0.75, -1.0)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "atan2 (1.390625, 0.9296875)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# atanh
-+Test "atanh (0.75)":
-+float: 1
-+ifloat: 1
-+
-+# cacos
-+Test "Imaginary part of: cacos (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.25 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.25 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + +0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (-1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1.fp-100 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1.fp-100 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1p-23 + 0x1.000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (0x1p-23 - 0x1.000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1p-52 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1p-52 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1p-63 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (0x1p-63 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (1.0 + 0x1.fp-100 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacos (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacos (1.0 - 0x1.fp-100 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacos (1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# cacosh
-+Test "Real part of: cacosh (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.0 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-10000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-10000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 + 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-16385 - 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (-1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (-1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.0 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 + +0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0.5 - 0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.fp-100 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1.fp-100 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-10000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-10000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 + 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-16385 - 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1p-52 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1p-52 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1p-63 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (0x1p-63 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-100 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cacosh (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-100 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cacosh (1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# casin
-+Test "Imaginary part of: casin (+0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (+0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (+0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (+0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (+0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (+0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0.5 + 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0.5 + 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0.5 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0.5 - 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0.5 - 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0.5 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-23 + 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-52 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-52 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.0 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.25 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.25 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.5 + 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.5 + 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.5 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.5 - 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.5 - 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.5 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0.5 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: casin (0x0.fffffffffffff8p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x0.fffffffffffff8p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-23 + 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-23 - 0.5 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-52 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-52 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (1.0 + 0.25 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 + 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (1.0 - 0.25 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 - 0.5 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# casinh
-+Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.0 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 + +0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.5 + 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0.5 - 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (-0x1p-63 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-63 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + +0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0.25 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-10000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0.25 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-10000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 + +0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 - 0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.0 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.0 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.0 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 + +0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 + 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.5 + 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 - 0x1p-105 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-112 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 0x1p-23 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: casinh (0.5 - 0x1p-52 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.5 - 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: casinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000002p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000002p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000001p0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000001p0 - 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: casinh (0x1p-63 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-63 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p500 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p500 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p5000 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (0x1p5000 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + +0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0.25 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (1.0 + 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-10000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 + 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0.25 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (1.0 - 0.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-10000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1p500 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.0 - 0x1p5000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 + +0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 + 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 - 0 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: casinh (1.5 - 0x1.fp-16385 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# catan
-+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x0.ffffffp0 + 0x1p-126 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x0.ffffffp0 - 0x1p-126 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1.fp16383 - 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-16380 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1p-16380 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (-1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x0.ffffffp0 + 0x1p-126 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x0.ffffffp0 - 0x1p-126 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1.fp16383 - 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-16380 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1p-16380 - 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catan (1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catan (1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# catanh
-+Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1.fp16383 - 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1p-126 + 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1p-126 - 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (-0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (-0x1p-57 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-0x1p-57 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-16380 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-16380 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1.fp16383 + 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1.fp16383 - 0x1.fp16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-126 + 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-126 - 0x0.ffffffp0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: catanh (0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: catanh (0x1p-57 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (0x1p-57 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 + 0x1p-16380 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (1.0 + 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 + 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-16380 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: catanh (1.0 - 0x1p-54 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: catanh (1.0 - 0x1p-57 i)":
-+float: 1
-+ifloat: 1
-+
-+# cbrt
-+Test "cbrt (-0.001)":
-+ildouble: 1
-+ldouble: 1
-+Test "cbrt (-27.0)":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.75)":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.9921875)":
-+double: 1
-+idouble: 1
-+
-+# ccos
-+Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccos (-0.75 + 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccos (-0.75 - 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccos (-2 - 3 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccos (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccos (0.75 + 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccos (0.75 - 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# ccosh
-+Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccosh (-89.5 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccosh (-89.5 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccosh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccosh (89.5 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ccosh (89.5 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cexp
-+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cexp (-2.0 - 3.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cexp (-720 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cexp (-95 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cexp (50 + 0x1p127 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (500 + 0x1p1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: cexp (709.8125 + 0.75 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cexp (88.75 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+# clog
-+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
-+float: 1
-+ifloat: 1
-+
-+# clog10
-+Test "Imaginary part of: clog10 (-0 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 2
-+idouble: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 2
-+idouble: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (-2 - 3 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (-3 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-3 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 1 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + inf i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (-inf - 0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf - 1 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
-+double: 1
-+idouble: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (3 + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (3 - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf + inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf - inf i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# cos
-+Test "cos (0x1p+120)":
-+float: 1
-+ifloat: 1
-+Test "cos (0x1p+127)":
-+float: 1
-+ifloat: 1
-+Test "cos (M_PI_6l * 2.0)":
-+double: 1
-+idouble: 1
-+Test "cos (M_PI_6l * 4.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cos_downward
-+Test "cos_downward (1)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (3)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (4)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (5)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (8)":
-+float: 1
-+ifloat: 1
-+
-+# cos_tonearest
-+Test "cos_tonearest (7)":
-+float: 1
-+ifloat: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (2)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (3)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (8)":
-+float: 1
-+ifloat: 1
-+
-+# cos_upward
-+Test "cos_upward (10)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (6)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (7)":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (9)":
-+float: 2
-+ifloat: 2
-+
-+# cosh_downward
-+Test "cosh_downward (22)":
-+float: 1
-+ifloat: 1
-+Test "cosh_downward (23)":
-+float: 1
-+ifloat: 1
-+Test "cosh_downward (24)":
-+float: 1
-+ifloat: 1
-+
-+# cosh_tonearest
-+Test "cosh_tonearest (22)":
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22)":
-+float: 1
-+ifloat: 1
-+Test "cosh_towardzero (23)":
-+float: 1
-+ifloat: 1
-+Test "cosh_towardzero (24)":
-+float: 1
-+ifloat: 1
-+
-+# cpow
-+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+ildouble: 4
-+ldouble: 4
-+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
-+double: 2
-+float: 3
-+idouble: 2
-+ifloat: 3
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
-+float: 2
-+ifloat: 2
-+
-+# csin
-+Test "Real part of: csin (-0.75 + 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (-0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (-0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (-0.75 - 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (-0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (-0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csin (-2 - 3 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 + 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 + 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 + 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csin (0.75 + 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 - 11357.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 - 710.5 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0.75 - 89.5 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csin (0.75 - 89.5 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csin (0x1p-1074 + 1440 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csin (0x1p-16434 + 22730 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# csinh
-+Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csinh (-2 - 3 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csinh (-89.5 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csinh (-89.5 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csinh (89.5 + 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csinh (89.5 - 0.75 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# csqrt
-+Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: csqrt (-2 + 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csqrt (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# ctan
-+Test "Real part of: ctan (-2 - 3 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan (-2 - 3 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctan (0.75 + 1.25 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
-+double: 1
-+idouble: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: ctan (0x1p1023 + 1 i)":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: ctan (0x1p127 + 1 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctan (0x1p16383 + 1 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctan (1 + 355 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: ctan (1 + 365 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctan (1 + 45 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: ctan (1 + 47 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# ctan_downward
-+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_tonearest
-+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-+ildouble: 3
-+ldouble: 3
-+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-+ildouble: 3
-+ldouble: 3
-+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+# ctan_towardzero
-+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctan_upward
-+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# ctanh
-+Test "Real part of: ctanh (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (-2 - 3 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctanh (0 + pi/4 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctanh (0.75 + 1.25 i)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
-+float: 2
-+ifloat: 2
-+Test "Real part of: ctanh (1 + 0x1p1023 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctanh (1 + 0x1p127 i)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Real part of: ctanh (1 + 0x1p16383 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctanh (355 + 1 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: ctanh (365 + 1 i)":
-+ildouble: 1
-+ldouble: 1
-+Test "Imaginary part of: ctanh (45 + 1 i)":
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: ctanh (47 + 1 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# ctanh_downward
-+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# ctanh_tonearest
-+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-+ildouble: 3
-+ldouble: 3
-+Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-+ildouble: 3
-+ldouble: 3
-+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
-+ildouble: 1
-+ldouble: 1
-+
-+# ctanh_towardzero
-+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
-+float: 1
-+ifloat: 1
-+
-+# ctanh_upward
-+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# erf
-+Test "erf (1.25)":
-+double: 1
-+idouble: 1
-+
-+# erfc
-+Test "erfc (0x1.f7303cp+1)":
-+double: 1
-+idouble: 1
-+Test "erfc (0x1.ffa002p+2)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "erfc (0x1.ffffc8p+2)":
-+ildouble: 1
-+ldouble: 1
-+Test "erfc (2.0)":
-+double: 1
-+idouble: 1
-+Test "erfc (27.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "erfc (4.125)":
-+double: 1
-+idouble: 1
-+
-+# exp10
-+Test "exp10 (-1)":
-+double: 1
-+idouble: 1
-+Test "exp10 (-305)":
-+double: 1
-+idouble: 1
-+Test "exp10 (-36)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "exp10 (3)":
-+double: 1
-+idouble: 1
-+Test "exp10 (36)":
-+double: 1
-+idouble: 1
-+Test "exp10 (4932)":
-+ildouble: 1
-+ldouble: 1
-+
-+# exp2
-+Test "exp2 (100.5)":
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_downward
-+Test "exp_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "exp_downward (3)":
-+float: 1
-+ifloat: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (2)":
-+float: 1
-+ifloat: 1
-+Test "exp_towardzero (3)":
-+float: 1
-+ifloat: 1
-+
-+# exp_upward
-+Test "exp_upward (1)":
-+float: 1
-+ifloat: 1
-+
-+# expm1
-+Test "expm1 (-79.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "expm1 (0.75)":
-+double: 1
-+idouble: 1
-+Test "expm1 (1)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "expm1 (500.0)":
-+double: 1
-+idouble: 1
-+
-+# gamma
-+Test "gamma (-0.5)":
-+ildouble: 1
-+ldouble: 1
-+Test "gamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "gamma (1.2)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+# hypot
-+Test "hypot (-0.7, -12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (-0.7, 12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, -0.7)":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, 0.7)":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, -12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, 12.4)":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, -0.7)":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, 0.7)":
-+float: 1
-+ifloat: 1
-+
-+# j0
-+Test "j0 (-0x1.001000001p+593)":
-+ildouble: 1
-+ldouble: 1
-+Test "j0 (-4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "j0 (0.75)":
-+float: 1
-+ifloat: 1
-+Test "j0 (0x1.d7ce3ap+107)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "j0 (0x1p1023)":
-+ildouble: 1
-+ldouble: 1
-+Test "j0 (0x1p16383)":
-+ildouble: 2
-+ldouble: 2
-+Test "j0 (10.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "j0 (2.0)":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "j0 (4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "j0 (8.0)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# j1
-+Test "j1 (-1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (0.75)":
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (0x1.3ffp+74)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (0x1.ff00000000002p+840)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (0x1p1023)":
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (0x1p16382)":
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (0x1p16383)":
-+ildouble: 2
-+ldouble: 2
-+Test "j1 (1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "j1 (10.0)":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "j1 (2.0)":
-+double: 1
-+idouble: 1
-+Test "j1 (8.0)":
-+double: 1
-+idouble: 1
-+ildouble: 4
-+ldouble: 4
-+
-+# jn
-+Test "jn (0, -4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (0, 0.75)":
-+float: 1
-+ifloat: 1
-+Test "jn (0, 10.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "jn (0, 2.0)":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "jn (0, 4.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (0, 8.0)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "jn (1, -1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "jn (1, 0.75)":
-+ildouble: 1
-+ldouble: 1
-+Test "jn (1, 1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "jn (1, 10.0)":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "jn (1, 2.0)":
-+double: 1
-+idouble: 1
-+Test "jn (1, 8.0)":
-+double: 1
-+idouble: 1
-+ildouble: 4
-+ldouble: 4
-+Test "jn (10, -1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "jn (10, 0.125)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "jn (10, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "jn (10, 1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "jn (10, 10.0)":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+ildouble: 2
-+ldouble: 2
-+Test "jn (10, 2.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "jn (2, 0x1.ffff62p+99)":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+Test "jn (2, 2.4048255576957729)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "jn (3, 0.125)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (3, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "jn (3, 10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "jn (3, 2.0)":
-+float: 1
-+ifloat: 1
-+Test "jn (3, 2.4048255576957729)":
-+double: 3
-+idouble: 3
-+ildouble: 1
-+ldouble: 1
-+Test "jn (4, 2.4048255576957729)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "jn (5, 2.4048255576957729)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "jn (6, 2.4048255576957729)":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+ildouble: 5
-+ldouble: 5
-+Test "jn (7, 2.4048255576957729)":
-+double: 3
-+float: 5
-+idouble: 3
-+ifloat: 5
-+ildouble: 3
-+ldouble: 3
-+Test "jn (8, 2.4048255576957729)":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+ildouble: 8
-+ldouble: 8
-+Test "jn (9, 2.4048255576957729)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 3
-+ldouble: 3
-+
-+# lgamma
-+Test "lgamma (-0.5)":
-+ildouble: 1
-+ldouble: 1
-+Test "lgamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "lgamma (1.2)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+# log10
-+Test "log10 (0.75)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "log10 (e)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# log1p
-+Test "log1p (-0.25)":
-+float: 1
-+ifloat: 1
-+
-+# log2
-+Test "log2 (0.75)":
-+ildouble: 1
-+ldouble: 1
-+
-+# pow
-+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
-+ildouble: 1
-+ldouble: 1
-+Test "pow (0x0.ffffffp0, -0x1p24)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "pow (0x0.ffffffp0, 0x1p24)":
-+float: 1
-+ifloat: 1
-+Test "pow (0x1.000002p0, 0x1p24)":
-+float: 1
-+ifloat: 1
-+Test "pow (10.0, -4930.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "pow (10.0, 4929.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "pow (10.0, 4930.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "pow (10.0, 4931.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "pow (10.0, 4932.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "pow (1e4932, 0.75)":
-+ildouble: 1
-+ldouble: 1
-+
-+# pow10
-+Test "pow10 (-1)":
-+double: 1
-+idouble: 1
-+Test "pow10 (-305)":
-+double: 1
-+idouble: 1
-+Test "pow10 (-36)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "pow10 (3)":
-+double: 1
-+idouble: 1
-+Test "pow10 (36)":
-+double: 1
-+idouble: 1
-+Test "pow10 (4932)":
-+ildouble: 1
-+ldouble: 1
-+
-+# pow_downward
-+Test "pow_downward (1.5, 1.03125)":
-+float: 1
-+ifloat: 1
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.5, 1.03125)":
-+float: 1
-+ifloat: 1
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125)":
-+float: 1
-+ifloat: 1
-+
-+# sin_downward
-+Test "sin_downward (10)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (3)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (5)":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (6)":
-+float: 1
-+ifloat: 1
-+
-+# sin_tonearest
-+Test "sin_tonearest (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_tonearest (3)":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_towardzero
-+Test "sin_towardzero (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (10)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (4)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (9)":
-+float: 1
-+ifloat: 1
-+
-+# sin_upward
-+Test "sin_upward (1)":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (2)":
-+float: 2
-+ifloat: 2
-+Test "sin_upward (4)":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (9)":
-+float: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (0x1p+120) extra output 2":
-+float: 1
-+ifloat: 1
-+Test "sincos (0x1p+127) extra output 2":
-+float: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0) extra output 1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0) extra output 2":
-+double: 1
-+idouble: 1
-+Test "sincos (pi/6) extra output 2":
-+float: 1
-+ifloat: 1
-+
-+# sinh_downward
-+Test "sinh_downward (22)":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (23)":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (24)":
-+float: 1
-+ifloat: 1
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22)":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (23)":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (24)":
-+float: 1
-+ifloat: 1
-+
-+# tan_downward
-+Test "tan_downward (1)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (2)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (6)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (8)":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (9)":
-+float: 1
-+ifloat: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (3)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (4)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (5)":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (9)":
-+float: 1
-+ifloat: 1
-+
-+# tan_upward
-+Test "tan_upward (1)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (10)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (3)":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (5)":
-+float: 1
-+ifloat: 1
-+
-+# tanh
-+Test "tanh (-0.75)":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (-1.0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (0.75)":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (1.0)":
-+ildouble: 1
-+ldouble: 1
-+
-+# tgamma
-+Test "tgamma (-0.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x0.fffffffffffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x0.ffffffffffffffffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x0.ffffffp0)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1.0000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1.0000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1.000002p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x1.0a32a2p+5)":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x1.5800000080001p+7)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1.fffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1.fffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x13.ffffep0)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x13.ffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x13.ffffffffffffp0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x14.000000000000000000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x14.000000000001p0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x14.00002p0)":
-+float: 1
-+ifloat: 1
-+ildouble: 4
-+ldouble: 4
-+Test "tgamma (-0x1d.ffffep0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1d.ffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1e.000000000000000000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x1e.00000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1e.000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1e.000000000001p0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x1e.00002p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1f3.ffffffffffffffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x1p-24)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2.0000000000000000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2.0000000000002p0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2.000004p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2.fffffcp0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x2.ffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x27.fffffffffffep0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x27.ffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x27.ffffffffffffffffffffffffffep0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x28.0000000000000000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x28.000000000002p0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x28.00004p0)":
-+double: 2
-+idouble: 2
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x28.ffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x28.ffffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x28.fffffffffffffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x29.000000000000000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x29.0000000000000000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x29.00004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x29.ffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x29.fffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x29.ffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x29.ffffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x29.fffffffffffffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2a.000000000000000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2a.0000000000000000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2a.000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2a.000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2ed.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x2ee.00000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x3.00000000000000000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x3.000004p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-0x3.fffffcp0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x3.ffffffffffffep0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x3.fffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x3.fffffffffffffffffffffffffffep0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x31.fffffffffffep0)":
-+double: 3
-+idouble: 3
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x31.ffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x31.ffffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x31.fffffffffffffffffffffffffp0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x32.000000000000000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x32.0000000000000000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x32.000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x3e7.fffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x3e7.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x3e8.00000000000000000000000002p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x3e8.00000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x4.0000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x4.000008p0)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x4.fffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x4.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x4.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x4.fffffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5.0000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5.0000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x5.fffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5.fffffffffffffff8p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x5.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5.fffffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5db.fffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5db.fffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x5dc.00000000000000000000000004p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x6.0000000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6.00000000000000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6.0000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6.000008p0)":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x6.fffff8p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6.ffffffffffffcp0)":
-+double: 4
-+idouble: 4
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6.fffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6.fffffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x63.fffffffffffcp0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (-0x63.ffffffffffffff8p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x64.000000000000000000000000004p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x64.0000000000000000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x64.000000000004p0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6d5.fffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6d6.00000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x6e3.00000000000000000000000004p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x7.0000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x7.0000000000004p0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x7.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-0x7.fffff8p0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "tgamma (-0x7.ffffffffffffcp0)":
-+double: 3
-+idouble: 3
-+Test "tgamma (-0x7.fffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x7.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x7.fffffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x8.0000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x8.00000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x8.0000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x8.00001p0)":
-+double: 2
-+idouble: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x9.ffffffffffff8p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0x9.fffffffffffffffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x9.fffffp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (-0x95.ffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x96.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x96.0000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0x96.00000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0x96.000000000008p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-0xa.0000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xa.00001p0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb4.ffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb4.ffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb5.0000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb5.00000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0xb5.000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb5.ffffffffffffffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb6.00000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb6.000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb6.fffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb6.ffffffffffffffffffffffffff8p0)":
-+ildouble: 3
-+ldouble: 3
-+Test "tgamma (-0xb7.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb7.00000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0xb7.000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb7.ffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb7.ffffffffffffffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xb8.00000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbb.ffffffffffffffffffffffffcp0)":
-+ildouble: 3
-+ldouble: 3
-+Test "tgamma (-0xbb.ffffffffffffffffffffffffff8p0)":
-+ildouble: 4
-+ldouble: 4
-+Test "tgamma (-0xbc.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbc.0000000000000000000000004p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0xbc.00000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0xbc.ffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbd.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbd.00000000000001p0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0xbd.ffffffffffffffp0)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (-0xbe.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbe.0000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbe.ffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbe.ffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbf.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbf.0000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xbf.00000000000001p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xf9.ffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-0xfa.000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-2.5)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-3.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-4.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-5.5)":
-+double: 1
-+idouble: 1
-+Test "tgamma (-6.5)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (-7.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (-8.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (-9.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x1.fffffep0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x1.fffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x1.ffffffffffffffffffffffffffffp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x1.fffffffffffffp0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x1p-113)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x1p-24)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x1p-53)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x2.30a43cp+4)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (0x2.fffffcp0)":
-+float: 3
-+ifloat: 3
-+Test "tgamma (0x2.ffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x3.0000000000002p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x3.fffffcp0)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0x3.ffffffffffffep0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x3.fffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x3.fffffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x4.0000000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x4.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x4.000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x4.ffffffffffffcp0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x4.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x4.fffffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x5.0000000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x5.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x5.000008p0)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (0x5.fffff8p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x5.ffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x5.fffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x5.fffffffffffffffffffffffffep0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x6.0000000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x6.0000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x6.0000000000004p0)":
-+double: 1
-+idouble: 1
-+Test "tgamma (0x6.000008p0)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x6.fffff8p0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x6.ffffffffffffcp0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (0x6.fffffffffffffff8p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x7.0000000000000000000000000004p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x7.0000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x7.0000000000004p0)":
-+double: 4
-+idouble: 4
-+Test "tgamma (0x7.000008p0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0x7.fffff8p0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (0x7.ffffffffffffcp0)":
-+double: 2
-+idouble: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x7.fffffffffffffffffffffffffffcp0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x8.0000000000000000000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x8.0000000000008p0)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0x8.00001p0)":
-+double: 2
-+idouble: 2
-+Test "tgamma (0xa.b9fd72b0fb238p+4)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f8p+4)":
-+ildouble: 2
-+ldouble: 2
-+Test "tgamma (10)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (18.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (19.5)":
-+double: 2
-+idouble: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (2.5)":
-+float: 2
-+ifloat: 2
-+Test "tgamma (23.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (29.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (3)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (3.5)":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (30.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (32.5)":
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (33.5)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (34.5)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "tgamma (4)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (4.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (6)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (6.5)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (7)":
-+double: 1
-+idouble: 1
-+Test "tgamma (7.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "tgamma (8)":
-+double: 1
-+idouble: 1
-+Test "tgamma (8.5)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (9)":
-+double: 1
-+idouble: 1
-+Test "tgamma (9.5)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# y0
-+Test "y0 (0x1.3ffp+74)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1.ff00000000002p+840)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1p-10)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1p-110)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1p-20)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-30)":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "y0 (0x1p-40)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (0x1p-50)":
-+float: 1
-+ifloat: 1
-+Test "y0 (0x1p-60)":
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1p-70)":
-+double: 1
-+idouble: 1
-+Test "y0 (0x1p-80)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (0x1p1023)":
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1p16382)":
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0x1p16383)":
-+ildouble: 2
-+ldouble: 2
-+Test "y0 (1.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (1.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (10.0)":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+Test "y0 (8.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+# y1
-+Test "y1 (0.125)":
-+double: 1
-+idouble: 1
-+Test "y1 (0.75)":
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (0x1.001000001p+593)":
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (0x1.27e204p+99)":
-+double: 1
-+idouble: 1
-+Test "y1 (0x1p-10)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (0x1p-30)":
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (0x1p1023)":
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (0x1p16383)":
-+ildouble: 2
-+ldouble: 2
-+Test "y1 (1.5)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "y1 (2.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y1 (8.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+# yn
-+Test "yn (0, 1.0)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 1.5)":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 10.0)":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+Test "yn (0, 8.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+Test "yn (1, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (1, 0.75)":
-+ildouble: 1
-+ldouble: 1
-+Test "yn (1, 1.5)":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "yn (1, 10.0)":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "yn (1, 2.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "yn (1, 8.0)":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "yn (10, 0.125)":
-+double: 1
-+idouble: 1
-+ildouble: 2
-+ldouble: 2
-+Test "yn (10, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 5
-+ldouble: 5
-+Test "yn (10, 1.0)":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "yn (10, 10.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "yn (10, 2.0)":
-+double: 2
-+idouble: 2
-+ildouble: 2
-+ldouble: 2
-+Test "yn (3, 0.125)":
-+double: 1
-+idouble: 1
-+Test "yn (3, 0.75)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "yn (3, 10.0)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "yn (3, 2.0)":
-+double: 1
-+idouble: 1
-+
-+# Maximal error of functions:
-+Function: "acos_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "acos_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "asin_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "atan2":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "atanh":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Imaginary part of "cacos":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Real part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Imaginary part of "cacosh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Real part of "casin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Imaginary part of "casin":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Real part of "casinh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Imaginary part of "casinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Real part of "catan":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "catan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "catanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "catanh":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cbrt":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "cexp":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "cexp":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "clog":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "clog":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "clog10":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "clog10":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "cos":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_upward":
-+float: 2
-+ifloat: 2
-+
-+Function: "cosh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "cosh_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cpow":
-+double: 2
-+float: 4
-+idouble: 2
-+ifloat: 4
-+ildouble: 4
-+ldouble: 4
-+
-+Function: Imaginary part of "cpow":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "csin":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "csin":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "csinh":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "csinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Imaginary part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: Real part of "ctan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Imaginary part of "ctan":
-+double: 1
-+idouble: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Real part of "ctan_downward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+Function: Imaginary part of "ctan_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+Function: Real part of "ctan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan_upward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan_upward":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Real part of "ctanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Imaginary part of "ctanh":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: Real part of "ctanh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_downward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Real part of "ctanh_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+Function: Imaginary part of "ctanh_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+Function: Real part of "ctanh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctanh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctanh_upward":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: Imaginary part of "ctanh_upward":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "erf":
-+double: 1
-+idouble: 1
-+
-+Function: "erfc":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp10":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp2":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "exp_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "exp_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "expm1":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "gamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "hypot":
-+float: 1
-+ifloat: 1
-+
-+Function: "j0":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "j1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 4
-+ldouble: 4
-+
-+Function: "jn":
-+double: 4
-+float: 5
-+idouble: 4
-+ifloat: 5
-+ildouble: 8
-+ldouble: 8
-+
-+Function: "lgamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "log10":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "log1p":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "log2":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow10":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "sin_upward":
-+float: 2
-+ifloat: 2
-+
-+Function: "sincos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sinh_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "sinh_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan":
-+double: 1
-+idouble: 1
-+
-+Function: "tan_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "tan_upward":
-+float: 1
-+ifloat: 1
-+
-+Function: "tanh":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tgamma":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+ildouble: 4
-+ldouble: 4
-+
-+Function: "y0":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+Function: "y1":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "yn":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+ildouble: 5
-+ldouble: 5
-+
-+# end of automatic generation
-diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-sh uClibc-git/test/math/libm-test-ulps-sh
---- uClibc-0.9.33.2/test/math/libm-test-ulps-sh 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/math/libm-test-ulps-sh 2014-07-25 20:36:11.517359363 +0200
-@@ -0,0 +1,1094 @@
-+# Begin of automatic generation
-+
-+# asin
-+Test "asin (-0.5) == -pi/6":
-+float: 2
-+ifloat: 2
-+Test "asin (0.5) == pi/6":
-+float: 2
-+ifloat: 2
-+Test "asin (0.7) == 0.7753974966107530637":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# atan2
-+Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
-+float: 3
-+ifloat: 3
-+Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
-+float: 3
-+ifloat: 3
-+Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
-+float: 4
-+ifloat: 4
-+
-+# atanh
-+Test "atanh (0.7) == 0.8673005276940531944":
-+double: 1
-+idouble: 1
-+
-+# cabs
-+Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
-+double: 1
-+idouble: 1
-+Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+
-+# cacos
-+Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
-+float: 1
-+ifloat: 1
-+
-+# cacosh
-+Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
-+double: 1
-+float: 7
-+idouble: 1
-+ifloat: 7
-+Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
-+double: 1
-+float: 3
-+idouble: 1
-+ifloat: 3
-+Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# casin
-+Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
-+float: 1
-+ifloat: 1
-+
-+# casinh
-+Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-+double: 5
-+float: 1
-+idouble: 5
-+ifloat: 1
-+Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-+double: 3
-+float: 6
-+idouble: 3
-+ifloat: 6
-+Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
-+float: 1
-+ifloat: 1
-+
-+# catan
-+Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
-+float: 3
-+ifloat: 3
-+Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
-+float: 4
-+ifloat: 4
-+Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
-+double: 1
-+idouble: 1
-+
-+# catanh
-+Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
-+double: 4
-+idouble: 4
-+Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
-+float: 4
-+ifloat: 4
-+Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
-+double: 1
-+float: 6
-+idouble: 1
-+ifloat: 6
-+
-+# cbrt
-+Test "cbrt (-27.0) == -3.0":
-+double: 1
-+idouble: 1
-+Test "cbrt (0.970299) == 0.99":
-+double: 1
-+idouble: 1
-+
-+# ccos
-+Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
-+double: 1
-+idouble: 1
-+
-+# ccosh
-+Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
-+double: 1
-+idouble: 1
-+
-+# cexp
-+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
-+float: 1
-+ifloat: 1
-+
-+# clog
-+Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
-+double: 1
-+float: 3
-+idouble: 1
-+ifloat: 3
-+
-+# clog10
-+Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
-+double: 1
-+float: 5
-+idouble: 1
-+ifloat: 5
-+Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
-+double: 1
-+idouble: 1
-+Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-+float: 1
-+ifloat: 1
-+
-+# cos
-+Test "cos (0.7) == 0.7648421872844884262":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "cos (M_PI_6l * 2.0) == 0.5":
-+double: 1
-+float: 0.5
-+idouble: 1
-+ifloat: 0.5
-+Test "cos (M_PI_6l * 4.0) == -0.5":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "cos (pi/2) == 0":
-+double: 0.2758
-+float: 0.3667
-+idouble: 0.2758
-+ifloat: 0.3667
-+
-+# cpow
-+Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-+float: 2
-+ifloat: 2
-+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-+double: 1.1031
-+float: 1.5
-+idouble: 1.1031
-+ifloat: 1.5
-+
-+# csin
-+Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
-+float: 1
-+ifloat: 1
-+
-+# csinh
-+Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
-+double: 1
-+idouble: 1
-+Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
-+float: 1
-+ifloat: 1
-+
-+# csqrt
-+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
-+float: 1
-+ifloat: 1
-+
-+# ctan
-+Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
-+double: 1
-+idouble: 1
-+Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
-+float: 1
-+ifloat: 1
-+Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# ctanh
-+Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-+float: 1
-+ifloat: 1
-+Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# erfc
-+Test "erfc (0.7) == 0.32219880616258152702":
-+double: 1
-+idouble: 1
-+Test "erfc (1.2) == 0.089686021770364619762":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+Test "erfc (2.0) == 0.0046777349810472658379":
-+double: 1
-+idouble: 1
-+Test "erfc (4.1) == 0.67000276540848983727e-8":
-+double: 24
-+float: 12
-+idouble: 24
-+ifloat: 12
-+
-+# exp10
-+Test "exp10 (-1) == 0.1":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "exp10 (0.7) == 5.0118723362727228500":
-+float: 1
-+ifloat: 1
-+Test "exp10 (3) == 1000":
-+double: 6
-+float: 2
-+idouble: 6
-+ifloat: 2
-+
-+# expm1
-+Test "expm1 (1) == M_El - 1.0":
-+float: 1
-+ifloat: 1
-+
-+# fmod
-+Test "fmod (-6.5, -2.3) == -1.9":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "fmod (-6.5, 2.3) == -1.9":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "fmod (6.5, -2.3) == 1.9":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "fmod (6.5, 2.3) == 1.9":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# hypot
-+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
-+double: 1
-+idouble: 1
-+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+
-+# j0
-+Test "j0 (10.0) == -0.24593576445134833520":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "j0 (2.0) == 0.22389077914123566805":
-+float: 2
-+ifloat: 2
-+Test "j0 (8.0) == 0.17165080713755390609":
-+float: 1
-+ifloat: 1
-+
-+# j1
-+Test "j1 (10.0) == 0.043472746168861436670":
-+float: 2
-+ifloat: 2
-+Test "j1 (2.0) == 0.57672480775687338720":
-+double: 1
-+idouble: 1
-+Test "j1 (8.0) == 0.23463634685391462438":
-+double: 1
-+idouble: 1
-+
-+# jn
-+Test "jn (0, 10.0) == -0.24593576445134833520":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "jn (0, 2.0) == 0.22389077914123566805":
-+float: 2
-+ifloat: 2
-+Test "jn (0, 8.0) == 0.17165080713755390609":
-+float: 1
-+ifloat: 1
-+Test "jn (1, 10.0) == 0.043472746168861436670":
-+float: 2
-+ifloat: 2
-+Test "jn (1, 2.0) == 0.57672480775687338720":
-+double: 1
-+idouble: 1
-+Test "jn (1, 8.0) == 0.23463634685391462438":
-+double: 1
-+idouble: 1
-+Test "jn (10, 0.1) == 0.26905328954342155795e-19":
-+double: 6
-+float: 4
-+idouble: 6
-+ifloat: 4
-+Test "jn (10, 0.7) == 0.75175911502153953928e-11":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "jn (10, 10.0) == 0.20748610663335885770":
-+double: 4
-+float: 3
-+idouble: 4
-+ifloat: 3
-+Test "jn (10, 2.0) == 0.25153862827167367096e-6":
-+float: 4
-+ifloat: 4
-+Test "jn (3, 0.1) == 0.000020820315754756261429":
-+double: 1
-+idouble: 1
-+Test "jn (3, 0.7) == 0.0069296548267508408077":
-+float: 1
-+ifloat: 1
-+Test "jn (3, 10.0) == 0.058379379305186812343":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "jn (3, 2.0) == 0.12894324947440205110":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# lgamma
-+Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# log
-+Test "log (0.7) == -0.35667494393873237891263871124118447":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# log10
-+Test "log10 (0.7) == -0.15490195998574316929":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "log10 (e) == log10(e)":
-+float: 1
-+ifloat: 1
-+
-+# log1p
-+Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# log2
-+Test "log2 (0.7) == -0.51457317282975824043":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-+double: 1
-+float: 0.5
-+idouble: 1
-+ifloat: 0.5
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-+double: 0.2758
-+float: 0.3667
-+idouble: 0.2758
-+ifloat: 0.3667
-+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
-+float: 1
-+ifloat: 1
-+
-+# sinh
-+Test "sinh (0.7) == 0.75858370183953350346":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# tan
-+Test "tan (pi/4) == 1":
-+double: 0.5
-+idouble: 0.5
-+
-+# tanh
-+Test "tanh (0.7) == 0.60436777711716349631":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# tgamma
-+Test "tgamma (-0.5) == -2 sqrt (pi)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (0.5) == sqrt (pi)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# y0
-+Test "y0 (0.7) == -0.19066492933739506743":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (1.0) == 0.088256964215676957983":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (1.5) == 0.38244892379775884396":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (10.0) == 0.055671167283599391424":
-+float: 1
-+ifloat: 1
-+Test "y0 (8.0) == 0.22352148938756622053":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# y1
-+Test "y1 (0.1) == -6.4589510947020269877":
-+double: 1
-+idouble: 1
-+Test "y1 (0.7) == -1.1032498719076333697":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y1 (1.5) == -0.41230862697391129595":
-+float: 1
-+ifloat: 1
-+Test "y1 (10.0) == 0.24901542420695388392":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "y1 (2.0) == -0.10703243154093754689":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y1 (8.0) == -0.15806046173124749426":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# yn
-+Test "yn (0, 0.7) == -0.19066492933739506743":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 1.0) == 0.088256964215676957983":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 1.5) == 0.38244892379775884396":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "yn (0, 10.0) == 0.055671167283599391424":
-+float: 1
-+ifloat: 1
-+Test "yn (0, 8.0) == 0.22352148938756622053":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 0.1) == -6.4589510947020269877":
-+double: 1
-+idouble: 1
-+Test "yn (1, 0.7) == -1.1032498719076333697":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 1.5) == -0.41230862697391129595":
-+float: 1
-+ifloat: 1
-+Test "yn (1, 10.0) == 0.24901542420695388392":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "yn (1, 2.0) == -0.10703243154093754689":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (1, 8.0) == -0.15806046173124749426":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+Test "yn (10, 0.1) == -0.11831335132045197885e19":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+Test "yn (10, 0.7) == -0.42447194260703866924e10":
-+double: 3
-+idouble: 3
-+Test "yn (10, 1.0) == -0.12161801427868918929e9":
-+double: 1
-+idouble: 1
-+Test "yn (10, 10.0) == -0.35981415218340272205":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (10, 2.0) == -129184.54220803928264":
-+double: 2
-+idouble: 2
-+Test "yn (3, 0.1) == -5099.3323786129048894":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (3, 0.7) == -15.819479052819633505":
-+double: 3
-+float: 1
-+idouble: 3
-+ifloat: 1
-+Test "yn (3, 10.0) == -0.25136265718383732978":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "yn (3, 2.0) == -1.1277837768404277861":
-+double: 1
-+idouble: 1
-+
-+# Maximal error of functions:
-+Function: "asin":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "atan2":
-+float: 4
-+ifloat: 4
-+
-+Function: "atanh":
-+double: 1
-+idouble: 1
-+
-+Function: "cabs":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "cacos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "cacos":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "cacosh":
-+double: 1
-+float: 7
-+idouble: 1
-+ifloat: 7
-+
-+Function: Imaginary part of "cacosh":
-+double: 1
-+float: 3
-+idouble: 1
-+ifloat: 3
-+
-+Function: Real part of "casin":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+Function: Imaginary part of "casin":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "casinh":
-+double: 5
-+float: 1
-+idouble: 5
-+ifloat: 1
-+
-+Function: Imaginary part of "casinh":
-+double: 3
-+float: 6
-+idouble: 3
-+ifloat: 6
-+
-+Function: Real part of "catan":
-+float: 4
-+ifloat: 4
-+
-+Function: Imaginary part of "catan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "catanh":
-+double: 4
-+float: 1
-+idouble: 4
-+ifloat: 1
-+
-+Function: Imaginary part of "catanh":
-+double: 1
-+float: 6
-+idouble: 1
-+ifloat: 6
-+
-+Function: "cbrt":
-+double: 1
-+idouble: 1
-+
-+Function: Real part of "ccos":
-+double: 1
-+idouble: 1
-+
-+Function: Imaginary part of "ccos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ccosh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "cexp":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "cexp":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "clog":
-+double: 1
-+float: 3
-+idouble: 1
-+ifloat: 3
-+
-+Function: Real part of "clog10":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "clog10":
-+double: 1
-+float: 5
-+idouble: 1
-+ifloat: 5
-+
-+Function: "cos":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: Real part of "cpow":
-+double: 1
-+float: 4
-+idouble: 1
-+ifloat: 4
-+
-+Function: Imaginary part of "cpow":
-+double: 1.1031
-+float: 2
-+idouble: 1.1031
-+ifloat: 2
-+
-+Function: Imaginary part of "csin":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "csinh":
-+float: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "csqrt":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "csqrt":
-+float: 1
-+ifloat: 1
-+
-+Function: Real part of "ctan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Imaginary part of "ctan":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: Real part of "ctanh":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: Imaginary part of "ctanh":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "erfc":
-+double: 24
-+float: 12
-+idouble: 24
-+ifloat: 12
-+
-+Function: "exp10":
-+double: 6
-+float: 2
-+idouble: 6
-+ifloat: 2
-+
-+Function: "expm1":
-+float: 1
-+ifloat: 1
-+
-+Function: "fmod":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "hypot":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "j0":
-+double: 2
-+float: 2
-+idouble: 2
-+ifloat: 2
-+
-+Function: "j1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "jn":
-+double: 6
-+float: 4
-+idouble: 6
-+ifloat: 4
-+
-+Function: "lgamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "log":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "log10":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "log1p":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "log2":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "sincos":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "sinh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "tan":
-+double: 0.5
-+idouble: 0.5
-+
-+Function: "tanh":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "tgamma":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "y0":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "y1":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+Function: "yn":
-+double: 3
-+float: 2
-+idouble: 3
-+ifloat: 2
-+
-+# end of automatic generation
-diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-sh4 uClibc-git/test/math/libm-test-ulps-sh4
---- uClibc-0.9.33.2/test/math/libm-test-ulps-sh4 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/libm-test-ulps-sh4 1970-01-01 01:00:00.000000000 +0100
-@@ -1,1094 +0,0 @@
--# Begin of automatic generation
--
--# asin
--Test "asin (-0.5) == -pi/6":
--float: 2
--ifloat: 2
--Test "asin (0.5) == pi/6":
--float: 2
--ifloat: 2
--Test "asin (0.7) == 0.7753974966107530637":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--# atan2
--Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
--float: 3
--ifloat: 3
--Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
--float: 3
--ifloat: 3
--Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
--float: 4
--ifloat: 4
--
--# atanh
--Test "atanh (0.7) == 0.8673005276940531944":
--double: 1
--idouble: 1
--
--# cabs
--Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
--double: 1
--idouble: 1
--Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--
--# cacos
--Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
--float: 1
--ifloat: 1
--
--# cacosh
--Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
--Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
--Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# casin
--Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
--Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
--float: 1
--ifloat: 1
--
--# casinh
--Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
--double: 5
--float: 1
--idouble: 5
--ifloat: 1
--Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
--double: 3
--float: 6
--idouble: 3
--ifloat: 6
--Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
--double: 1
--idouble: 1
--Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
--float: 1
--ifloat: 1
--
--# catan
--Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
--float: 3
--ifloat: 3
--Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
--float: 4
--ifloat: 4
--Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
--double: 1
--idouble: 1
--
--# catanh
--Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
--double: 4
--idouble: 4
--Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
--float: 4
--ifloat: 4
--Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
--double: 1
--float: 6
--idouble: 1
--ifloat: 6
--
--# cbrt
--Test "cbrt (-27.0) == -3.0":
--double: 1
--idouble: 1
--Test "cbrt (0.970299) == 0.99":
--double: 1
--idouble: 1
--
--# ccos
--Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
--float: 1
--ifloat: 1
--Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
--double: 1
--idouble: 1
--Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
--double: 1
--idouble: 1
--
--# ccosh
--Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
--float: 1
--ifloat: 1
--Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
--double: 1
--idouble: 1
--
--# cexp
--Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
--float: 1
--ifloat: 1
--Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
--float: 1
--ifloat: 1
--
--# clog
--Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
--
--# clog10
--Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
--double: 1
--float: 5
--idouble: 1
--ifloat: 5
--Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
--double: 1
--idouble: 1
--Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
--float: 1
--ifloat: 1
--
--# cos
--Test "cos (0.7) == 0.7648421872844884262":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "cos (M_PI_6l * 2.0) == 0.5":
--double: 1
--float: 0.5
--idouble: 1
--ifloat: 0.5
--Test "cos (M_PI_6l * 4.0) == -0.5":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "cos (pi/2) == 0":
--double: 0.2758
--float: 0.3667
--idouble: 0.2758
--ifloat: 0.3667
--
--# cpow
--Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
--double: 1
--float: 4
--idouble: 1
--ifloat: 4
--Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
--float: 2
--ifloat: 2
--Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
--double: 1.1031
--float: 1.5
--idouble: 1.1031
--ifloat: 1.5
--
--# csin
--Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
--float: 1
--ifloat: 1
--
--# csinh
--Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
--double: 1
--idouble: 1
--Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
--float: 1
--ifloat: 1
--
--# csqrt
--Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
--float: 1
--ifloat: 1
--Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
--float: 1
--ifloat: 1
--Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
--float: 1
--ifloat: 1
--
--# ctan
--Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
--double: 1
--idouble: 1
--Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# ctanh
--Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
--float: 1
--ifloat: 1
--Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--
--# erfc
--Test "erfc (0.7) == 0.32219880616258152702":
--double: 1
--idouble: 1
--Test "erfc (1.2) == 0.089686021770364619762":
--double: 2
--float: 2
--idouble: 2
--ifloat: 2
--Test "erfc (2.0) == 0.0046777349810472658379":
--double: 1
--idouble: 1
--Test "erfc (4.1) == 0.67000276540848983727e-8":
--double: 24
--float: 12
--idouble: 24
--ifloat: 12
--
--# exp10
--Test "exp10 (-1) == 0.1":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "exp10 (0.7) == 5.0118723362727228500":
--float: 1
--ifloat: 1
--Test "exp10 (3) == 1000":
--double: 6
--float: 2
--idouble: 6
--ifloat: 2
--
--# expm1
--Test "expm1 (1) == M_El - 1.0":
--float: 1
--ifloat: 1
--
--# fmod
--Test "fmod (-6.5, -2.3) == -1.9":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "fmod (-6.5, 2.3) == -1.9":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "fmod (6.5, -2.3) == 1.9":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "fmod (6.5, 2.3) == 1.9":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--
--# hypot
--Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
--double: 1
--idouble: 1
--Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
--float: 1
--ifloat: 1
--
--# j0
--Test "j0 (10.0) == -0.24593576445134833520":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "j0 (2.0) == 0.22389077914123566805":
--float: 2
--ifloat: 2
--Test "j0 (8.0) == 0.17165080713755390609":
--float: 1
--ifloat: 1
--
--# j1
--Test "j1 (10.0) == 0.043472746168861436670":
--float: 2
--ifloat: 2
--Test "j1 (2.0) == 0.57672480775687338720":
--double: 1
--idouble: 1
--Test "j1 (8.0) == 0.23463634685391462438":
--double: 1
--idouble: 1
--
--# jn
--Test "jn (0, 10.0) == -0.24593576445134833520":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "jn (0, 2.0) == 0.22389077914123566805":
--float: 2
--ifloat: 2
--Test "jn (0, 8.0) == 0.17165080713755390609":
--float: 1
--ifloat: 1
--Test "jn (1, 10.0) == 0.043472746168861436670":
--float: 2
--ifloat: 2
--Test "jn (1, 2.0) == 0.57672480775687338720":
--double: 1
--idouble: 1
--Test "jn (1, 8.0) == 0.23463634685391462438":
--double: 1
--idouble: 1
--Test "jn (10, 0.1) == 0.26905328954342155795e-19":
--double: 6
--float: 4
--idouble: 6
--ifloat: 4
--Test "jn (10, 0.7) == 0.75175911502153953928e-11":
--double: 3
--float: 1
--idouble: 3
--ifloat: 1
--Test "jn (10, 10.0) == 0.20748610663335885770":
--double: 4
--float: 3
--idouble: 4
--ifloat: 3
--Test "jn (10, 2.0) == 0.25153862827167367096e-6":
--float: 4
--ifloat: 4
--Test "jn (3, 0.1) == 0.000020820315754756261429":
--double: 1
--idouble: 1
--Test "jn (3, 0.7) == 0.0069296548267508408077":
--float: 1
--ifloat: 1
--Test "jn (3, 10.0) == 0.058379379305186812343":
--double: 3
--float: 1
--idouble: 3
--ifloat: 1
--Test "jn (3, 2.0) == 0.12894324947440205110":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--# lgamma
--Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--# log
--Test "log (0.7) == -0.35667494393873237891263871124118447":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# log10
--Test "log10 (0.7) == -0.15490195998574316929":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "log10 (e) == log10(e)":
--float: 1
--ifloat: 1
--
--# log1p
--Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# log2
--Test "log2 (0.7) == -0.51457317282975824043":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# sincos
--Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
--double: 1
--float: 0.5
--idouble: 1
--ifloat: 0.5
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
--double: 0.2758
--float: 0.3667
--idouble: 0.2758
--ifloat: 0.3667
--Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
--float: 1
--ifloat: 1
--
--# sinh
--Test "sinh (0.7) == 0.75858370183953350346":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# tan
--Test "tan (pi/4) == 1":
--double: 0.5
--idouble: 0.5
--
--# tanh
--Test "tanh (0.7) == 0.60436777711716349631":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# tgamma
--Test "tgamma (-0.5) == -2 sqrt (pi)":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "tgamma (0.5) == sqrt (pi)":
--float: 1
--ifloat: 1
--Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# y0
--Test "y0 (0.7) == -0.19066492933739506743":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "y0 (1.0) == 0.088256964215676957983":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "y0 (1.5) == 0.38244892379775884396":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "y0 (10.0) == 0.055671167283599391424":
--float: 1
--ifloat: 1
--Test "y0 (8.0) == 0.22352148938756622053":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--# y1
--Test "y1 (0.1) == -6.4589510947020269877":
--double: 1
--idouble: 1
--Test "y1 (0.7) == -1.1032498719076333697":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "y1 (1.5) == -0.41230862697391129595":
--float: 1
--ifloat: 1
--Test "y1 (10.0) == 0.24901542420695388392":
--double: 3
--float: 1
--idouble: 3
--ifloat: 1
--Test "y1 (2.0) == -0.10703243154093754689":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "y1 (8.0) == -0.15806046173124749426":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--# yn
--Test "yn (0, 0.7) == -0.19066492933739506743":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "yn (0, 1.0) == 0.088256964215676957983":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "yn (0, 1.5) == 0.38244892379775884396":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--Test "yn (0, 10.0) == 0.055671167283599391424":
--float: 1
--ifloat: 1
--Test "yn (0, 8.0) == 0.22352148938756622053":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "yn (1, 0.1) == -6.4589510947020269877":
--double: 1
--idouble: 1
--Test "yn (1, 0.7) == -1.1032498719076333697":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "yn (1, 1.5) == -0.41230862697391129595":
--float: 1
--ifloat: 1
--Test "yn (1, 10.0) == 0.24901542420695388392":
--double: 3
--float: 1
--idouble: 3
--ifloat: 1
--Test "yn (1, 2.0) == -0.10703243154093754689":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "yn (1, 8.0) == -0.15806046173124749426":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--Test "yn (10, 0.1) == -0.11831335132045197885e19":
--double: 2
--float: 2
--idouble: 2
--ifloat: 2
--Test "yn (10, 0.7) == -0.42447194260703866924e10":
--double: 3
--idouble: 3
--Test "yn (10, 1.0) == -0.12161801427868918929e9":
--double: 1
--idouble: 1
--Test "yn (10, 10.0) == -0.35981415218340272205":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "yn (10, 2.0) == -129184.54220803928264":
--double: 2
--idouble: 2
--Test "yn (3, 0.1) == -5099.3323786129048894":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "yn (3, 0.7) == -15.819479052819633505":
--double: 3
--float: 1
--idouble: 3
--ifloat: 1
--Test "yn (3, 10.0) == -0.25136265718383732978":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "yn (3, 2.0) == -1.1277837768404277861":
--double: 1
--idouble: 1
--
--# Maximal error of functions:
--Function: "asin":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--Function: "atan2":
--float: 4
--ifloat: 4
--
--Function: "atanh":
--double: 1
--idouble: 1
--
--Function: "cabs":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Real part of "cacos":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Imaginary part of "cacos":
--float: 1
--ifloat: 1
--
--Function: Real part of "cacosh":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
--
--Function: Imaginary part of "cacosh":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
--
--Function: Real part of "casin":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
--
--Function: Imaginary part of "casin":
--float: 1
--ifloat: 1
--
--Function: Real part of "casinh":
--double: 5
--float: 1
--idouble: 5
--ifloat: 1
--
--Function: Imaginary part of "casinh":
--double: 3
--float: 6
--idouble: 3
--ifloat: 6
--
--Function: Real part of "catan":
--float: 4
--ifloat: 4
--
--Function: Imaginary part of "catan":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Real part of "catanh":
--double: 4
--float: 1
--idouble: 4
--ifloat: 1
--
--Function: Imaginary part of "catanh":
--double: 1
--float: 6
--idouble: 1
--ifloat: 6
--
--Function: "cbrt":
--double: 1
--idouble: 1
--
--Function: Real part of "ccos":
--double: 1
--idouble: 1
--
--Function: Imaginary part of "ccos":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Real part of "ccosh":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Imaginary part of "ccosh":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Real part of "cexp":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Imaginary part of "cexp":
--float: 1
--ifloat: 1
--
--Function: Imaginary part of "clog":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
--
--Function: Real part of "clog10":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Imaginary part of "clog10":
--double: 1
--float: 5
--idouble: 1
--ifloat: 5
--
--Function: "cos":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--
--Function: Real part of "cpow":
--double: 1
--float: 4
--idouble: 1
--ifloat: 4
--
--Function: Imaginary part of "cpow":
--double: 1.1031
--float: 2
--idouble: 1.1031
--ifloat: 2
--
--Function: Imaginary part of "csin":
--float: 1
--ifloat: 1
--
--Function: Real part of "csinh":
--float: 1
--ifloat: 1
--
--Function: Imaginary part of "csinh":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Real part of "csqrt":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Imaginary part of "csqrt":
--float: 1
--ifloat: 1
--
--Function: Real part of "ctan":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Imaginary part of "ctan":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: Real part of "ctanh":
--double: 2
--float: 2
--idouble: 2
--ifloat: 2
--
--Function: Imaginary part of "ctanh":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--
--Function: "erfc":
--double: 24
--float: 12
--idouble: 24
--ifloat: 12
--
--Function: "exp10":
--double: 6
--float: 2
--idouble: 6
--ifloat: 2
--
--Function: "expm1":
--float: 1
--ifloat: 1
--
--Function: "fmod":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--
--Function: "hypot":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "j0":
--double: 2
--float: 2
--idouble: 2
--ifloat: 2
--
--Function: "j1":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--Function: "jn":
--double: 6
--float: 4
--idouble: 6
--ifloat: 4
--
--Function: "lgamma":
--double: 1
--float: 2
--idouble: 1
--ifloat: 2
--
--Function: "log":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "log10":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "log1p":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "log2":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "sincos":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "sinh":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "tan":
--double: 0.5
--idouble: 0.5
--
--Function: "tanh":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "tgamma":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
--Function: "y0":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
--
--Function: "y1":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
--
--Function: "yn":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
--
--# end of automatic generation
-diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-xtensa uClibc-git/test/math/libm-test-ulps-xtensa
---- uClibc-0.9.33.2/test/math/libm-test-ulps-xtensa 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/math/libm-test-ulps-xtensa 2014-07-25 20:36:11.517359363 +0200
-@@ -0,0 +1,129 @@
-+# Begin of automatic generation
-+
-+# cos
-+Test "cos (M_PI_6l * 2.0) == 0.5":
-+double: 1
-+idouble: 1
-+Test "cos (M_PI_6l * 4.0) == -0.5":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+# erf
-+Test "erf (0.75) == 0.711155633653515131598937834591410777":
-+double: 1
-+idouble: 1
-+Test "erf (1.25) == 0.922900128256458230136523481197281140":
-+double: 1
-+idouble: 1
-+
-+# erfc
-+Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-+double: 1
-+idouble: 1
-+
-+# exp
-+Test "exp (1) == e":
-+double: 1
-+idouble: 1
-+
-+# expm1
-+Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-+double: 1
-+idouble: 1
-+
-+# hypot
-+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-+float: 1
-+ifloat: 1
-+
-+# lgamma
-+Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+# log10
-+Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-+double: 1
-+idouble: 1
-+Test "log10 (e) == log10(e)":
-+float: 1
-+ifloat: 1
-+
-+# Maximal error of functions:
-+Function: "cos":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+
-+Function: "erf":
-+double: 1
-+idouble: 1
-+
-+Function: "erfc":
-+double: 1
-+idouble: 1
-+
-+Function: "exp":
-+double: 1
-+idouble: 1
-+
-+Function: "expm1":
-+double: 1
-+idouble: 1
-+
-+Function: "hypot":
-+float: 1
-+ifloat: 1
-+
-+Function: "lgamma":
-+double: 1
-+float: 2
-+idouble: 1
-+ifloat: 2
-+
-+Function: "log":
-+float: 1
-+ifloat: 1
-+
-+Function: "log10":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+Function: "tan":
-+double: 1
-+idouble: 1
-+
-+# end of automatic generation
-diff -Nur uClibc-0.9.33.2/test/math/Makefile uClibc-git/test/math/Makefile
---- uClibc-0.9.33.2/test/math/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/Makefile 2014-07-25 20:36:11.517359363 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/math/Makefile.in uClibc-git/test/math/Makefile.in
---- uClibc-0.9.33.2/test/math/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/Makefile.in 2014-07-25 20:36:11.517359363 +0200
-@@ -1,14 +1,19 @@
- # uClibc math tests
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
--TESTS := basic-test tst-definitions test-fpucw test-float test-ifloat test-double test-idouble \
-- rint signgam ilogb
-+# libm-test.c is a generated file used by the tests internally so skip it
-+TESTS_DISABLED := libm-test
-+
- # gamma (removed from TESTS, need to add "small errors are ok" machinery there)
--ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),y)
--TESTS += test-ldouble test-ildoubl compile_test c99_test
-+TESTS_DISABLED += gamma
-+ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),)
-+TESTS_DISABLED += test-ldouble test-ildoubl compile_test c99_test
- else
- CFLAGS_basic-test := -DNO_LONG_DOUBLE
- endif
-+ifeq ($(DO_C99_MATH),)
-+TESTS_DISABLED += test-float test-ifloat test-double test-idouble rint signgam ilogb
-+endif
-
- DODIFF_rint := 1
- DODIFF_signgam := 1
-@@ -23,9 +28,17 @@
-
- PERL := /usr/bin/perl
-
--$(TESTS): libm-test.c
-+MDEPS := $(wildcard test-*.c)
-+$(MDEPS): libm-test.c
-+
-+TARGET_ULP := $(if $(wildcard libm-test-ulps-$(TARGET_ARCH)),$(TARGET_ARCH),generic)
-+ULP_SUFFIX :=
-+ifeq ($(TARGET_ARCH),mips)
-+ULP_SUFFIX:=$(if $(CONFIG_MIPS_ISA_MIPS64R1)$(CONFIG_MIPS_ISA_MIPS64R2),64,32)
-+endif
-+TARGET_ULP:=$(TARGET_ULP)$(ULP_SUFFIX)
-
--libm-test.c: libm-test-ulps-$(TARGET_ARCH) libm-test.inc gen-libm-test.pl
-- $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ARCH) ./libm-test.inc -o "." 2>&1 > /dev/null
-+libm-test.c: libm-test-ulps-$(TARGET_ULP) libm-test.inc gen-libm-test.pl
-+ $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ULP) ./libm-test.inc -o "." 2>&1 > /dev/null
-
- EXTRA_CLEAN := libm-test.c libm-test-ulps.h
-diff -Nur uClibc-0.9.33.2/test/math/test-double.c uClibc-git/test/math/test-double.c
---- uClibc-0.9.33.2/test/math/test-double.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-double.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FUNC(function) function
- #define FLOAT double
-diff -Nur uClibc-0.9.33.2/test/math/test-float.c uClibc-git/test/math/test-float.c
---- uClibc-0.9.33.2/test/math/test-float.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-float.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FUNC(function) function ## f
- #define FLOAT float
-diff -Nur uClibc-0.9.33.2/test/math/test-fpucw.c uClibc-git/test/math/test-fpucw.c
---- uClibc-0.9.33.2/test/math/test-fpucw.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-fpucw.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fpu_control.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/math/test-idouble.c uClibc-git/test/math/test-idouble.c
---- uClibc-0.9.33.2/test/math/test-idouble.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-idouble.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FUNC(function) function
- #define FLOAT double
-diff -Nur uClibc-0.9.33.2/test/math/test-ifloat.c uClibc-git/test/math/test-ifloat.c
---- uClibc-0.9.33.2/test/math/test-ifloat.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-ifloat.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FUNC(function) function ## f
- #define FLOAT float
-diff -Nur uClibc-0.9.33.2/test/math/test-ildoubl.c uClibc-git/test/math/test-ildoubl.c
---- uClibc-0.9.33.2/test/math/test-ildoubl.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-ildoubl.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FUNC(function) function##l
- #define FLOAT long double
-diff -Nur uClibc-0.9.33.2/test/math/test-ldouble.c uClibc-git/test/math/test-ldouble.c
---- uClibc-0.9.33.2/test/math/test-ldouble.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/test-ldouble.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define FUNC(function) function##l
- #define FLOAT long double
-diff -Nur uClibc-0.9.33.2/test/math/tst-definitions.c uClibc-git/test/math/tst-definitions.c
---- uClibc-0.9.33.2/test/math/tst-definitions.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/math/tst-definitions.c 2014-07-25 20:36:11.521359385 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <math.h>
-diff -Nur uClibc-0.9.33.2/test/misc/bug-glob2.c uClibc-git/test/misc/bug-glob2.c
---- uClibc-0.9.33.2/test/misc/bug-glob2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/bug-glob2.c 2014-07-25 20:36:11.537359468 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/misc/Makefile uClibc-git/test/misc/Makefile
---- uClibc-0.9.33.2/test/misc/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/Makefile 2014-07-25 20:36:11.537359468 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/misc/Makefile.in uClibc-git/test/misc/Makefile.in
---- uClibc-0.9.33.2/test/misc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/Makefile.in 2014-07-25 20:36:11.537359468 +0200
-@@ -4,11 +4,18 @@
- TESTS_DISABLED := outb tst-fnmatch bug-glob1 tst-gnuglob
- ifeq ($(UCLIBC_HAS_LFS),)
- TESTS_DISABLED += dirent64
-+TESTS_DISABLED += tst-statfs # assuming host has LFS on
- endif
- CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-
- DODIFF_dirent := 1
- DODIFF_dirent64 := 1
-+DODIFF_tst-statfs := 1
-+DODIFF_tst-statvfs := 1
-
- OPTS_bug-glob1 := $(PWD)
- OPTS_tst-fnmatch := < tst-fnmatch.input
-+
-+MNTENTS = $(shell mount | while read dev on mp rest; do echo $$mp; done)
-+OPTS_tst-statfs := $(MNTENTS)
-+OPTS_tst-statvfs := $(MNTENTS)
-diff -Nur uClibc-0.9.33.2/test/misc/opendir-tst1.c uClibc-git/test/misc/opendir-tst1.c
---- uClibc-0.9.33.2/test/misc/opendir-tst1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/opendir-tst1.c 2014-07-25 20:36:11.541359489 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <dirent.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/test/misc/tst-fnmatch.c uClibc-git/test/misc/tst-fnmatch.c
---- uClibc-0.9.33.2/test/misc/tst-fnmatch.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/tst-fnmatch.c 2014-07-25 20:36:11.541359489 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/misc/tst-fnmatch.input uClibc-git/test/misc/tst-fnmatch.input
---- uClibc-0.9.33.2/test/misc/tst-fnmatch.input 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/tst-fnmatch.input 2014-07-25 20:36:11.541359489 +0200
-@@ -15,9 +15,8 @@
- # Lesser General Public License for more details.
-
- # You should have received a copy of the GNU Lesser General Public
--# License along with the GNU C Library; if not, write to the Free
--# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
--# 02111-1307 USA.
-+# License along with the GNU C Library; see the file COPYING.LIB. If
-+# not, see <http://www.gnu.org/licenses/>.
-
-
- # Derived from the IEEE 2003.2 text. The standard only contains some
-diff -Nur uClibc-0.9.33.2/test/misc/tst-gnuglob.c uClibc-git/test/misc/tst-gnuglob.c
---- uClibc-0.9.33.2/test/misc/tst-gnuglob.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/tst-gnuglob.c 2014-07-25 20:36:11.541359489 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <dirent.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/test/misc/tst-inotify.c uClibc-git/test/misc/tst-inotify.c
---- uClibc-0.9.33.2/test/misc/tst-inotify.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/misc/tst-inotify.c 2014-07-25 20:36:11.541359489 +0200
-@@ -0,0 +1,66 @@
-+/* vi: set sw=4 ts=4 sts=4: */
-+/*
-+ * inotify test for uClibc
-+ * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include <error.h>
-+#include <inttypes.h>
-+#include <sys/inotify.h>
-+#include <sys/fcntl.h>
-+
-+static int
-+do_test(void)
-+{
-+ int ifd, fd, ret, result = 0;
-+ struct inotify_event e;
-+ char tfile[] = "/tmp/inotify.XXXXXX";
-+
-+ fd = mkstemp(tfile);
-+ close(fd);
-+
-+ ifd = inotify_init1(IN_NONBLOCK);
-+ if (ifd < 0) {
-+ perror("inotify_init1()");
-+ result = 1;
-+ }
-+ if (inotify_add_watch(ifd, tfile, IN_DELETE_SELF) < 0) {
-+ perror("inotify_add_watch()");
-+ result = 1;
-+ }
-+
-+ /* nonblocking inotify should return immediately with no events */
-+ ret = read(ifd, &e, sizeof(e));
-+ if (ret != -1 || errno != EAGAIN) {
-+ error(0, 0, "first read() returned %d", ret);
-+ result = 1;
-+ }
-+
-+ /* generate an event */
-+ unlink(tfile);
-+
-+ /* now check whether our event was seen */
-+ ret = read(ifd, &e, sizeof(e));
-+ if (ret != sizeof(e)) {
-+ error(0, 0, "second read() returned %d", ret);
-+ result = 1;
-+ }
-+
-+ if (!(e.mask & IN_DELETE_SELF)) {
-+ error(0, 0, "incorrect event mask: %" PRIx32, e.mask);
-+ result = 1;
-+ }
-+
-+ return result;
-+}
-+
-+#define TIMEOUT 5
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -Nur uClibc-0.9.33.2/test/misc/tst-statfs.c uClibc-git/test/misc/tst-statfs.c
---- uClibc-0.9.33.2/test/misc/tst-statfs.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/misc/tst-statfs.c 2014-07-25 20:36:11.541359489 +0200
-@@ -0,0 +1,31 @@
-+#include <sys/vfs.h>
-+#include <errno.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+int
-+main(int argc, char* argv[])
-+{
-+ struct statfs s;
-+ int ret = 0, i;
-+
-+ for (i = 1; i < argc; i++) {
-+ if (statfs(argv[i], &s) != 0) {
-+ fprintf(stderr, "%s: %s: statfs failed. %s\n",
-+ *argv, argv[i], strerror(errno));
-+ exit(EXIT_FAILURE);
-+ }
-+ ++ret;
-+ printf("statfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
-+ argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
-+#ifdef _STATFS_F_FRSIZE
-+ printf("\tfrsize=%lld\n", s.f_frsize);
-+#elif defined __mips__
-+ printf("\tfrsize=mips, unsupported?\n");
-+#else
-+# error no _STATFS_F_FRSIZE
-+#endif
-+ }
-+ exit(ret ? EXIT_SUCCESS : EXIT_FAILURE);
-+}
-diff -Nur uClibc-0.9.33.2/test/misc/tst-statvfs.c uClibc-git/test/misc/tst-statvfs.c
---- uClibc-0.9.33.2/test/misc/tst-statvfs.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/misc/tst-statvfs.c 2014-07-25 20:36:11.541359489 +0200
-@@ -0,0 +1,26 @@
-+#include <sys/statvfs.h>
-+#include <errno.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+int
-+main(int argc, char* argv[])
-+{
-+ struct statvfs s;
-+ int i;
-+
-+ for (i = 1; i < argc; i++) {
-+ if (statvfs(argv[i], &s) != 0) {
-+ fprintf(stderr, "%s: %s: statvfs failed. %s\n",
-+ *argv, argv[i], strerror(errno));
-+ exit(EXIT_FAILURE);
-+ }
-+ printf("statvfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
-+ argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
-+#if 1 // def _STATFS_F_FRSIZE
-+ printf("\tfrsize=%lld\n", s.f_frsize);
-+#endif
-+ }
-+ exit(EXIT_SUCCESS);
-+}
-diff -Nur uClibc-0.9.33.2/test/misc/tst-utmp.c uClibc-git/test/misc/tst-utmp.c
---- uClibc-0.9.33.2/test/misc/tst-utmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/misc/tst-utmp.c 2014-07-25 20:36:11.541359489 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/mmap/Makefile uClibc-git/test/mmap/Makefile
---- uClibc-0.9.33.2/test/mmap/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/mmap/Makefile 2014-07-25 20:36:11.561359595 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/nptl/eintr.c uClibc-git/test/nptl/eintr.c
---- uClibc-0.9.33.2/test/nptl/eintr.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/eintr.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/Makefile.in uClibc-git/test/nptl/Makefile.in
---- uClibc-0.9.33.2/test/nptl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/Makefile.in 2014-07-25 20:36:11.581359699 +0200
-@@ -73,21 +73,11 @@
- GLIBC_TESTS_DISABLED += tst-tls3_glibc tst-tls4_glibc tst-tls5_glibc
- endif
-
--PTDIR := $(top_builddir)libpthread/nptl
--SYSDEPS_DIR := $(top_srcdir)libc/sysdeps
--
- EXTRA_CFLAGS := -DNOT_IN_libc=1 -D_LIBC -D__USE_GNU -std=gnu99 \
-- -I$(SYSDEPS_DIR)/linux \
-- -I$(SYSDEPS_DIR)/linux/$(TARGET_ARCH) \
-- -I$(PTDIR) -I$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
-- -I$(PTDIR)/sysdeps/$(TARGET_ARCH) \
-- -I$(PTDIR)/sysdeps/unix/sysv/linux \
-- -I$(PTDIR)/sysdeps/pthread \
-- -I$(PTDIR)/sysdeps/pthread/bits \
-- -I$(PTDIR)/sysdeps/generic \
-- -I$(top_builddir)ldso/include \
-- -I$(top_builddir)ldso/ldso/$(TARGET_ARCH) \
-- -I$(top_builddir)include \
-+ $(PTINC) \
-+ -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
-+ -I$(top_srcdir)libc/sysdeps/linux \
-+ -I$(top_builddir)include \
- -include $(top_builddir)include/libc-symbols.h
-
- ifeq ($(TARGET_ARCH),i386)
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-align2.c uClibc-git/test/nptl/tst-align2.c
---- uClibc-0.9.33.2/test/nptl/tst-align2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-align2.c 2014-07-25 20:36:11.581359699 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sched.h>
- #include <stdbool.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-align3.c uClibc-git/test/nptl/tst-align3.c
---- uClibc-0.9.33.2/test/nptl/tst-align3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-align3.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdbool.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-align.c uClibc-git/test/nptl/tst-align.c
---- uClibc-0.9.33.2/test/nptl/tst-align.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-align.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdbool.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-atfork1.c uClibc-git/test/nptl/tst-atfork1.c
---- uClibc-0.9.33.2/test/nptl/tst-atfork1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-atfork1.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr1.c uClibc-git/test/nptl/tst-attr1.c
---- uClibc-0.9.33.2/test/nptl/tst-attr1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-attr1.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr2.c uClibc-git/test/nptl/tst-attr2.c
---- uClibc-0.9.33.2/test/nptl/tst-attr2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-attr2.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr3.c uClibc-git/test/nptl/tst-attr3.c
---- uClibc-0.9.33.2/test/nptl/tst-attr3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-attr3.c 2014-07-25 20:36:11.581359699 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier1.c uClibc-git/test/nptl/tst-barrier1.c
---- uClibc-0.9.33.2/test/nptl/tst-barrier1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-barrier1.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier2.c uClibc-git/test/nptl/tst-barrier2.c
---- uClibc-0.9.33.2/test/nptl/tst-barrier2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-barrier2.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier3.c uClibc-git/test/nptl/tst-barrier3.c
---- uClibc-0.9.33.2/test/nptl/tst-barrier3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-barrier3.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Test of POSIX barriers. */
-
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier4.c uClibc-git/test/nptl/tst-barrier4.c
---- uClibc-0.9.33.2/test/nptl/tst-barrier4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-barrier4.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This is a test for behavior not guaranteed by POSIX. */
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic1.c uClibc-git/test/nptl/tst-basic1.c
---- uClibc-0.9.33.2/test/nptl/tst-basic1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-basic1.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic2.c uClibc-git/test/nptl/tst-basic2.c
---- uClibc-0.9.33.2/test/nptl/tst-basic2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-basic2.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic3.c uClibc-git/test/nptl/tst-basic3.c
---- uClibc-0.9.33.2/test/nptl/tst-basic3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-basic3.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic4.c uClibc-git/test/nptl/tst-basic4.c
---- uClibc-0.9.33.2/test/nptl/tst-basic4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-basic4.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic5.c uClibc-git/test/nptl/tst-basic5.c
---- uClibc-0.9.33.2/test/nptl/tst-basic5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-basic5.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic6.c uClibc-git/test/nptl/tst-basic6.c
---- uClibc-0.9.33.2/test/nptl/tst-basic6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-basic6.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel10.c uClibc-git/test/nptl/tst-cancel10.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel10.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel10.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel11.c uClibc-git/test/nptl/tst-cancel11.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel11.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel11.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel12.c uClibc-git/test/nptl/tst-cancel12.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel12.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel12.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel13.c uClibc-git/test/nptl/tst-cancel13.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel13.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel13.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel14.c uClibc-git/test/nptl/tst-cancel14.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel14.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel14.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel15.c uClibc-git/test/nptl/tst-cancel15.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel15.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel15.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel16.c uClibc-git/test/nptl/tst-cancel16.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel16.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel16.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel18.c uClibc-git/test/nptl/tst-cancel18.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel18.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel18.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel19.c uClibc-git/test/nptl/tst-cancel19.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel19.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel19.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel1.c uClibc-git/test/nptl/tst-cancel1.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel1.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel20.c uClibc-git/test/nptl/tst-cancel20.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel20.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel20.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel21.c uClibc-git/test/nptl/tst-cancel21.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel21.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel21.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel22.c uClibc-git/test/nptl/tst-cancel22.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel22.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel22.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel2.c uClibc-git/test/nptl/tst-cancel2.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel2.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel3.c uClibc-git/test/nptl/tst-cancel3.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel3.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel4.c uClibc-git/test/nptl/tst-cancel4.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel4.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* NOTE: this tests functionality beyond POSIX. POSIX does not allow
- exit to be called more than once. */
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel6.c uClibc-git/test/nptl/tst-cancel6.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel6.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel7.c uClibc-git/test/nptl/tst-cancel7.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel7.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel8.c uClibc-git/test/nptl/tst-cancel8.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel8.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel9.c uClibc-git/test/nptl/tst-cancel9.c
---- uClibc-0.9.33.2/test/nptl/tst-cancel9.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cancel9.c 2014-07-25 20:36:11.581359699 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fcntl.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup0.c uClibc-git/test/nptl/tst-cleanup0.c
---- uClibc-0.9.33.2/test/nptl/tst-cleanup0.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cleanup0.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup1.c uClibc-git/test/nptl/tst-cleanup1.c
---- uClibc-0.9.33.2/test/nptl/tst-cleanup1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cleanup1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup2.c uClibc-git/test/nptl/tst-cleanup2.c
---- uClibc-0.9.33.2/test/nptl/tst-cleanup2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cleanup2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <setjmp.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup3.c uClibc-git/test/nptl/tst-cleanup3.c
---- uClibc-0.9.33.2/test/nptl/tst-cleanup3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cleanup3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup4aux.c uClibc-git/test/nptl/tst-cleanup4aux.c
---- uClibc-0.9.33.2/test/nptl/tst-cleanup4aux.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cleanup4aux.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup4.c uClibc-git/test/nptl/tst-cleanup4.c
---- uClibc-0.9.33.2/test/nptl/tst-cleanup4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cleanup4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock1.c uClibc-git/test/nptl/tst-clock1.c
---- uClibc-0.9.33.2/test/nptl/tst-clock1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-clock1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock2.c uClibc-git/test/nptl/tst-clock2.c
---- uClibc-0.9.33.2/test/nptl/tst-clock2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-clock2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock.c uClibc-git/test/nptl/tst-clock.c
---- uClibc-0.9.33.2/test/nptl/tst-clock.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-clock.c 2014-07-25 20:36:11.585359720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock_nanosleep.c uClibc-git/test/nptl/tst-clock_nanosleep.c
---- uClibc-0.9.33.2/test/nptl/tst-clock_nanosleep.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-clock_nanosleep.c 2014-07-25 20:36:11.585359720 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond10.c uClibc-git/test/nptl/tst-cond10.c
---- uClibc-0.9.33.2/test/nptl/tst-cond10.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond10.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <error.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond11.c uClibc-git/test/nptl/tst-cond11.c
---- uClibc-0.9.33.2/test/nptl/tst-cond11.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond11.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond12.c uClibc-git/test/nptl/tst-cond12.c
---- uClibc-0.9.33.2/test/nptl/tst-cond12.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond12.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond14.c uClibc-git/test/nptl/tst-cond14.c
---- uClibc-0.9.33.2/test/nptl/tst-cond14.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond14.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond15.c uClibc-git/test/nptl/tst-cond15.c
---- uClibc-0.9.33.2/test/nptl/tst-cond15.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond15.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond16.c uClibc-git/test/nptl/tst-cond16.c
---- uClibc-0.9.33.2/test/nptl/tst-cond16.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond16.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond18.c uClibc-git/test/nptl/tst-cond18.c
---- uClibc-0.9.33.2/test/nptl/tst-cond18.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond18.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond19.c uClibc-git/test/nptl/tst-cond19.c
---- uClibc-0.9.33.2/test/nptl/tst-cond19.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond19.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond1.c uClibc-git/test/nptl/tst-cond1.c
---- uClibc-0.9.33.2/test/nptl/tst-cond1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <error.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond20.c uClibc-git/test/nptl/tst-cond20.c
---- uClibc-0.9.33.2/test/nptl/tst-cond20.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond20.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond23.c uClibc-git/test/nptl/tst-cond23.c
---- uClibc-0.9.33.2/test/nptl/tst-cond23.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond23.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond2.c uClibc-git/test/nptl/tst-cond2.c
---- uClibc-0.9.33.2/test/nptl/tst-cond2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <error.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond3.c uClibc-git/test/nptl/tst-cond3.c
---- uClibc-0.9.33.2/test/nptl/tst-cond3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond4.c uClibc-git/test/nptl/tst-cond4.c
---- uClibc-0.9.33.2/test/nptl/tst-cond4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond5.c uClibc-git/test/nptl/tst-cond5.c
---- uClibc-0.9.33.2/test/nptl/tst-cond5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond5.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond6.c uClibc-git/test/nptl/tst-cond6.c
---- uClibc-0.9.33.2/test/nptl/tst-cond6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond6.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond7.c uClibc-git/test/nptl/tst-cond7.c
---- uClibc-0.9.33.2/test/nptl/tst-cond7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond7.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond8.c uClibc-git/test/nptl/tst-cond8.c
---- uClibc-0.9.33.2/test/nptl/tst-cond8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond8.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond9.c uClibc-git/test/nptl/tst-cond9.c
---- uClibc-0.9.33.2/test/nptl/tst-cond9.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cond9.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cpuclock1.c uClibc-git/test/nptl/tst-cpuclock1.c
---- uClibc-0.9.33.2/test/nptl/tst-cpuclock1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cpuclock1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-cpuclock2.c uClibc-git/test/nptl/tst-cpuclock2.c
---- uClibc-0.9.33.2/test/nptl/tst-cpuclock2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-cpuclock2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
-
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-detach1.c uClibc-git/test/nptl/tst-detach1.c
---- uClibc-0.9.33.2/test/nptl/tst-detach1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-detach1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr1.c uClibc-git/test/nptl/tst-eintr1.c
---- uClibc-0.9.33.2/test/nptl/tst-eintr1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-eintr1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr2.c uClibc-git/test/nptl/tst-eintr2.c
---- uClibc-0.9.33.2/test/nptl/tst-eintr2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-eintr2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr3.c uClibc-git/test/nptl/tst-eintr3.c
---- uClibc-0.9.33.2/test/nptl/tst-eintr3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-eintr3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr4.c uClibc-git/test/nptl/tst-eintr4.c
---- uClibc-0.9.33.2/test/nptl/tst-eintr4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-eintr4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr5.c uClibc-git/test/nptl/tst-eintr5.c
---- uClibc-0.9.33.2/test/nptl/tst-eintr5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-eintr5.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec2.c uClibc-git/test/nptl/tst-exec2.c
---- uClibc-0.9.33.2/test/nptl/tst-exec2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-exec2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <paths.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec3.c uClibc-git/test/nptl/tst-exec3.c
---- uClibc-0.9.33.2/test/nptl/tst-exec3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-exec3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <paths.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec4.c uClibc-git/test/nptl/tst-exec4.c
---- uClibc-0.9.33.2/test/nptl/tst-exec4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-exec4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-exit1.c uClibc-git/test/nptl/tst-exit1.c
---- uClibc-0.9.33.2/test/nptl/tst-exit1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-exit1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* NOTE: this tests functionality beyond POSIX. POSIX does not allow
- exit to be called more than once. */
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-fini1.c uClibc-git/test/nptl/tst-fini1.c
---- uClibc-0.9.33.2/test/nptl/tst-fini1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-fini1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <unistd.h>
-
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-fini1mod.c uClibc-git/test/nptl/tst-fini1mod.c
---- uClibc-0.9.33.2/test/nptl/tst-fini1mod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-fini1mod.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-flock1.c uClibc-git/test/nptl/tst-flock1.c
---- uClibc-0.9.33.2/test/nptl/tst-flock1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-flock1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-flock2.c uClibc-git/test/nptl/tst-flock2.c
---- uClibc-0.9.33.2/test/nptl/tst-flock2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-flock2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork1.c uClibc-git/test/nptl/tst-fork1.c
---- uClibc-0.9.33.2/test/nptl/tst-fork1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-fork1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork2.c uClibc-git/test/nptl/tst-fork2.c
---- uClibc-0.9.33.2/test/nptl/tst-fork2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-fork2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork3.c uClibc-git/test/nptl/tst-fork3.c
---- uClibc-0.9.33.2/test/nptl/tst-fork3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-fork3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork4.c uClibc-git/test/nptl/tst-fork4.c
---- uClibc-0.9.33.2/test/nptl/tst-fork4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-fork4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-initializers1.c uClibc-git/test/nptl/tst-initializers1.c
---- uClibc-0.9.33.2/test/nptl/tst-initializers1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-initializers1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
-
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-join1.c uClibc-git/test/nptl/tst-join1.c
---- uClibc-0.9.33.2/test/nptl/tst-join1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-join1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-join2.c uClibc-git/test/nptl/tst-join2.c
---- uClibc-0.9.33.2/test/nptl/tst-join2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-join2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-join3.c uClibc-git/test/nptl/tst-join3.c
---- uClibc-0.9.33.2/test/nptl/tst-join3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-join3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-join4.c uClibc-git/test/nptl/tst-join4.c
---- uClibc-0.9.33.2/test/nptl/tst-join4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-join4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-join5.c uClibc-git/test/nptl/tst-join5.c
---- uClibc-0.9.33.2/test/nptl/tst-join5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-join5.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-key1.c uClibc-git/test/nptl/tst-key1.c
---- uClibc-0.9.33.2/test/nptl/tst-key1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-key1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-key2.c uClibc-git/test/nptl/tst-key2.c
---- uClibc-0.9.33.2/test/nptl/tst-key2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-key2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-key3.c uClibc-git/test/nptl/tst-key3.c
---- uClibc-0.9.33.2/test/nptl/tst-key3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-key3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-key4.c uClibc-git/test/nptl/tst-key4.c
---- uClibc-0.9.33.2/test/nptl/tst-key4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-key4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill1.c uClibc-git/test/nptl/tst-kill1.c
---- uClibc-0.9.33.2/test/nptl/tst-kill1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-kill1.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill2.c uClibc-git/test/nptl/tst-kill2.c
---- uClibc-0.9.33.2/test/nptl/tst-kill2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-kill2.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill3.c uClibc-git/test/nptl/tst-kill3.c
---- uClibc-0.9.33.2/test/nptl/tst-kill3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-kill3.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill4.c uClibc-git/test/nptl/tst-kill4.c
---- uClibc-0.9.33.2/test/nptl/tst-kill4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-kill4.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill5.c uClibc-git/test/nptl/tst-kill5.c
---- uClibc-0.9.33.2/test/nptl/tst-kill5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-kill5.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill6.c uClibc-git/test/nptl/tst-kill6.c
---- uClibc-0.9.33.2/test/nptl/tst-kill6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-kill6.c 2014-07-25 20:36:11.585359720 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue1.c uClibc-git/test/nptl/tst-mqueue1.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue2.c uClibc-git/test/nptl/tst-mqueue2.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue3.c uClibc-git/test/nptl/tst-mqueue3.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <mqueue.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue4.c uClibc-git/test/nptl/tst-mqueue4.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue4.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue5.c uClibc-git/test/nptl/tst-mqueue5.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue5.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue6.c uClibc-git/test/nptl/tst-mqueue6.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue6.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue7.c uClibc-git/test/nptl/tst-mqueue7.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue7.c 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue8.c uClibc-git/test/nptl/tst-mqueue8.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue8.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <mqueue.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue9.c uClibc-git/test/nptl/tst-mqueue9.c
---- uClibc-0.9.33.2/test/nptl/tst-mqueue9.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue9.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <mqueue.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue.h uClibc-git/test/nptl/tst-mqueue.h
---- uClibc-0.9.33.2/test/nptl/tst-mqueue.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mqueue.h 2014-07-25 20:36:11.589359741 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <mqueue.h>
- #include <search.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex1.c uClibc-git/test/nptl/tst-mutex1.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex2.c uClibc-git/test/nptl/tst-mutex2.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex3.c uClibc-git/test/nptl/tst-mutex3.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex4.c uClibc-git/test/nptl/tst-mutex4.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex4.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex5.c uClibc-git/test/nptl/tst-mutex5.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex5.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex6.c uClibc-git/test/nptl/tst-mutex6.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex6.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex7.c uClibc-git/test/nptl/tst-mutex7.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex7.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex8.c uClibc-git/test/nptl/tst-mutex8.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex8.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This test checks behavior not required by POSIX. */
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex9.c uClibc-git/test/nptl/tst-mutex9.c
---- uClibc-0.9.33.2/test/nptl/tst-mutex9.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-mutex9.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-once1.c uClibc-git/test/nptl/tst-once1.c
---- uClibc-0.9.33.2/test/nptl/tst-once1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-once1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-once2.c uClibc-git/test/nptl/tst-once2.c
---- uClibc-0.9.33.2/test/nptl/tst-once2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-once2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-once3.c uClibc-git/test/nptl/tst-once3.c
---- uClibc-0.9.33.2/test/nptl/tst-once3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-once3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-once4.c uClibc-git/test/nptl/tst-once4.c
---- uClibc-0.9.33.2/test/nptl/tst-once4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-once4.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-popen1.c uClibc-git/test/nptl/tst-popen1.c
---- uClibc-0.9.33.2/test/nptl/tst-popen1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-popen1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-raise1.c uClibc-git/test/nptl/tst-raise1.c
---- uClibc-0.9.33.2/test/nptl/tst-raise1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-raise1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock10.c uClibc-git/test/nptl/tst-rwlock10.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock10.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock10.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #define INIT PTHREAD_RWLOCK_INITIALIZER
- #include "tst-rwlock8.c"
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock11.c uClibc-git/test/nptl/tst-rwlock11.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock11.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock11.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #define INIT PTHREAD_RWLOCK_INITIALIZER
- #include "tst-rwlock9.c"
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock12.c uClibc-git/test/nptl/tst-rwlock12.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock12.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock12.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock13.c uClibc-git/test/nptl/tst-rwlock13.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock13.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock13.c 2014-07-25 20:36:11.589359741 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock14.c uClibc-git/test/nptl/tst-rwlock14.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock14.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock14.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock1.c uClibc-git/test/nptl/tst-rwlock1.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock2.c uClibc-git/test/nptl/tst-rwlock2.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock3.c uClibc-git/test/nptl/tst-rwlock3.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This test case checks more than standard compliance. An
- implementation may provide this service but it is not required to
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock4.c uClibc-git/test/nptl/tst-rwlock4.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock4.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock5.c uClibc-git/test/nptl/tst-rwlock5.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock5.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock6.c uClibc-git/test/nptl/tst-rwlock6.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock6.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock7.c uClibc-git/test/nptl/tst-rwlock7.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock7.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock8.c uClibc-git/test/nptl/tst-rwlock8.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock8.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock9.c uClibc-git/test/nptl/tst-rwlock9.c
---- uClibc-0.9.33.2/test/nptl/tst-rwlock9.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-rwlock9.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sched1.c uClibc-git/test/nptl/tst-sched1.c
---- uClibc-0.9.33.2/test/nptl/tst-sched1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sched1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem10.c uClibc-git/test/nptl/tst-sem10.c
---- uClibc-0.9.33.2/test/nptl/tst-sem10.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem10.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem1.c uClibc-git/test/nptl/tst-sem1.c
---- uClibc-0.9.33.2/test/nptl/tst-sem1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem2.c uClibc-git/test/nptl/tst-sem2.c
---- uClibc-0.9.33.2/test/nptl/tst-sem2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem3.c uClibc-git/test/nptl/tst-sem3.c
---- uClibc-0.9.33.2/test/nptl/tst-sem3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem4.c uClibc-git/test/nptl/tst-sem4.c
---- uClibc-0.9.33.2/test/nptl/tst-sem4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem4.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem5.c uClibc-git/test/nptl/tst-sem5.c
---- uClibc-0.9.33.2/test/nptl/tst-sem5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem5.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem6.c uClibc-git/test/nptl/tst-sem6.c
---- uClibc-0.9.33.2/test/nptl/tst-sem6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem6.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem7.c uClibc-git/test/nptl/tst-sem7.c
---- uClibc-0.9.33.2/test/nptl/tst-sem7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem7.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem8.c uClibc-git/test/nptl/tst-sem8.c
---- uClibc-0.9.33.2/test/nptl/tst-sem8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem8.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem9.c uClibc-git/test/nptl/tst-sem9.c
---- uClibc-0.9.33.2/test/nptl/tst-sem9.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sem9.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <fcntl.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal1.c uClibc-git/test/nptl/tst-signal1.c
---- uClibc-0.9.33.2/test/nptl/tst-signal1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal2.c uClibc-git/test/nptl/tst-signal2.c
---- uClibc-0.9.33.2/test/nptl/tst-signal2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal3.c uClibc-git/test/nptl/tst-signal3.c
---- uClibc-0.9.33.2/test/nptl/tst-signal3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal4.c uClibc-git/test/nptl/tst-signal4.c
---- uClibc-0.9.33.2/test/nptl/tst-signal4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal4.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal5.c uClibc-git/test/nptl/tst-signal5.c
---- uClibc-0.9.33.2/test/nptl/tst-signal5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal5.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal6.c uClibc-git/test/nptl/tst-signal6.c
---- uClibc-0.9.33.2/test/nptl/tst-signal6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal6.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal7.c uClibc-git/test/nptl/tst-signal7.c
---- uClibc-0.9.33.2/test/nptl/tst-signal7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-signal7.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin1.c uClibc-git/test/nptl/tst-spin1.c
---- uClibc-0.9.33.2/test/nptl/tst-spin1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-spin1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin2.c uClibc-git/test/nptl/tst-spin2.c
---- uClibc-0.9.33.2/test/nptl/tst-spin2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-spin2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin3.c uClibc-git/test/nptl/tst-spin3.c
---- uClibc-0.9.33.2/test/nptl/tst-spin3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-spin3.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack1.c uClibc-git/test/nptl/tst-stack1.c
---- uClibc-0.9.33.2/test/nptl/tst-stack1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-stack1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack2.c uClibc-git/test/nptl/tst-stack2.c
---- uClibc-0.9.33.2/test/nptl/tst-stack2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-stack2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
- stack size. */
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack-align.h uClibc-git/test/nptl/tst-stack-align.h
---- uClibc-0.9.33.2/test/nptl/tst-stack-align.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-stack-align.h 2014-07-25 20:36:11.589359741 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdint.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-stdio1.c uClibc-git/test/nptl/tst-stdio1.c
---- uClibc-0.9.33.2/test/nptl/tst-stdio1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-stdio1.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-stdio2.c uClibc-git/test/nptl/tst-stdio2.c
---- uClibc-0.9.33.2/test/nptl/tst-stdio2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-stdio2.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-sysconf.c uClibc-git/test/nptl/tst-sysconf.c
---- uClibc-0.9.33.2/test/nptl/tst-sysconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-sysconf.c 2014-07-25 20:36:11.589359741 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-timer4.c uClibc-git/test/nptl/tst-timer4.c
---- uClibc-0.9.33.2/test/nptl/tst-timer4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-timer4.c 2014-07-25 20:36:11.593359762 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls1.c uClibc-git/test/nptl/tst-tls1.c
---- uClibc-0.9.33.2/test/nptl/tst-tls1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls1.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls2.c uClibc-git/test/nptl/tst-tls2.c
---- uClibc-0.9.33.2/test/nptl/tst-tls2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls2.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls3.c uClibc-git/test/nptl/tst-tls3.c
---- uClibc-0.9.33.2/test/nptl/tst-tls3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls3.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls3mod.c uClibc-git/test/nptl/tst-tls3mod.c
---- uClibc-0.9.33.2/test/nptl/tst-tls3mod.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls3mod.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <semaphore.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4.c uClibc-git/test/nptl/tst-tls4.c
---- uClibc-0.9.33.2/test/nptl/tst-tls4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls4.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <errno.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4moda.c uClibc-git/test/nptl/tst-tls4moda.c
---- uClibc-0.9.33.2/test/nptl/tst-tls4moda.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls4moda.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4modb.c uClibc-git/test/nptl/tst-tls4modb.c
---- uClibc-0.9.33.2/test/nptl/tst-tls4modb.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls4modb.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls5.c uClibc-git/test/nptl/tst-tls5.c
---- uClibc-0.9.33.2/test/nptl/tst-tls5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tls5.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Check alignment, overlapping and layout of TLS variables. */
- #include <stdint.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd1.c uClibc-git/test/nptl/tst-tsd1.c
---- uClibc-0.9.33.2/test/nptl/tst-tsd1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tsd1.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd2.c uClibc-git/test/nptl/tst-tsd2.c
---- uClibc-0.9.33.2/test/nptl/tst-tsd2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tsd2.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd3.c uClibc-git/test/nptl/tst-tsd3.c
---- uClibc-0.9.33.2/test/nptl/tst-tsd3.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tsd3.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd4.c uClibc-git/test/nptl/tst-tsd4.c
---- uClibc-0.9.33.2/test/nptl/tst-tsd4.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tsd4.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <limits.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd5.c uClibc-git/test/nptl/tst-tsd5.c
---- uClibc-0.9.33.2/test/nptl/tst-tsd5.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-tsd5.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <pthread.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-typesizes.c uClibc-git/test/nptl/tst-typesizes.c
---- uClibc-0.9.33.2/test/nptl/tst-typesizes.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-typesizes.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <pthreadP.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-umask1.c uClibc-git/test/nptl/tst-umask1.c
---- uClibc-0.9.33.2/test/nptl/tst-umask1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-umask1.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <fcntl.h>
- #include <pthread.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-unload.c uClibc-git/test/nptl/tst-unload.c
---- uClibc-0.9.33.2/test/nptl/tst-unload.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-unload.c 2014-07-25 20:36:11.593359762 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; see the file COPYING.LIB. If not,
-- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, see <http://www.gnu.org/licenses/>. */
-
- #include <dlfcn.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork1.c uClibc-git/test/nptl/tst-vfork1.c
---- uClibc-0.9.33.2/test/nptl/tst-vfork1.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-vfork1.c 2014-07-25 20:36:11.593359762 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork1x.c uClibc-git/test/nptl/tst-vfork1x.c
---- uClibc-0.9.33.2/test/nptl/tst-vfork1x.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-vfork1x.c 2014-07-25 20:36:11.593359762 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork2.c uClibc-git/test/nptl/tst-vfork2.c
---- uClibc-0.9.33.2/test/nptl/tst-vfork2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-vfork2.c 2014-07-25 20:36:11.593359762 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork2x.c uClibc-git/test/nptl/tst-vfork2x.c
---- uClibc-0.9.33.2/test/nptl/tst-vfork2x.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/nptl/tst-vfork2x.c 2014-07-25 20:36:11.593359762 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/pthread/Makefile uClibc-git/test/pthread/Makefile
---- uClibc-0.9.33.2/test/pthread/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/pthread/Makefile 2014-07-25 20:36:11.621359909 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/pwd_grp/Makefile uClibc-git/test/pwd_grp/Makefile
---- uClibc-0.9.33.2/test/pwd_grp/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/pwd_grp/Makefile 2014-07-25 20:36:11.645360034 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/regex/Makefile uClibc-git/test/regex/Makefile
---- uClibc-0.9.33.2/test/regex/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/regex/Makefile 2014-07-25 20:36:11.661360118 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/regex/tst-regexloc.c uClibc-git/test/regex/tst-regexloc.c
---- uClibc-0.9.33.2/test/regex/tst-regexloc.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/regex/tst-regexloc.c 2014-07-25 20:36:11.661360118 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <sys/types.h>
- #include <regex.h>
-diff -Nur uClibc-0.9.33.2/test/rpc/Makefile uClibc-git/test/rpc/Makefile
---- uClibc-0.9.33.2/test/rpc/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/rpc/Makefile 2014-07-25 20:36:11.681360223 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/Rules.mak uClibc-git/test/Rules.mak
---- uClibc-0.9.33.2/test/Rules.mak 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/Rules.mak 2014-07-25 20:36:10.745355319 +0200
-@@ -8,18 +8,34 @@
- .SUFFIXES:
-
- top_builddir ?= ../
-+abs_top_builddir ?= $(shell cd $(top_builddir); pwd)/
-
- TESTDIR=$(top_builddir)test/
-
--include $(top_builddir)/Rules.mak
--ifndef TEST_INSTALLED_UCLIBC
-+include $(top_srcdir)Rules.mak
-+ifeq ($(filter $(clean_targets) CLEAN_%,$(MAKECMDGOALS)),)
-+ifeq ($(HAVE_DOT_CONFIG),)
-+$(error no HAVE_DOT_CONFIG, failed to read .config)
-+endif
-+endif
-+
- ifdef UCLIBC_LDSO
- ifeq (,$(findstring /,$(UCLIBC_LDSO)))
--UCLIBC_LDSO := $(top_builddir)lib/$(UCLIBC_LDSO)
-+UCLIBC_LDSO := $(UCLIBC_LDSO)
-+else
-+UCLIBC_LDSO := $(notdir $(UCLIBC_LDSO))
- endif
- else
--UCLIBC_LDSO := $(firstword $(wildcard $(top_builddir)lib/ld*))
-+UCLIBC_LDSO := $(notdir $(firstword $(wildcard $(top_builddir)lib/ld*)))
- endif
-+ifndef TEST_INSTALLED_UCLIBC
-+ifeq ($(LDSO_SAFE_RUNPATH),y)
-+UCLIBC_PATH := $(abs_top_builddir)lib
-+else
-+UCLIBC_PATH := $(top_builddir)lib
-+endif
-+else
-+UCLIBC_PATH := $(RUNTIME_PREFIX)$(MULTILIB_DIR)
- endif
- #--------------------------------------------------------
- # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
-@@ -81,15 +97,14 @@
- LDFLAGS += -Wl,-static -static-libgcc
- endif
-
--LDFLAGS += -B$(top_builddir)lib -Wl,-rpath,$(top_builddir)lib -Wl,-rpath-link,$(top_builddir)lib
--UCLIBC_LDSO_ABSPATH=$(shell pwd)
--ifdef TEST_INSTALLED_UCLIBC
--LDFLAGS += -Wl,-rpath,./
--UCLIBC_LDSO_ABSPATH=$(RUNTIME_PREFIX)$(MULTILIB_DIR)
-+ifndef TEST_INSTALLED_UCLIBC
-+LDFLAGS += -B$(UCLIBC_PATH) -Wl,-rpath,$(UCLIBC_PATH):$(shell pwd) -Wl,-rpath-link,$(UCLIBC_PATH):$(shell pwd)
-+else
-+LDFLAGS += -Wl,-rpath,$(shell pwd)
- endif
-
- ifeq ($(findstring -static,$(LDFLAGS)),)
--LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_LDSO_ABSPATH)/$(UCLIBC_LDSO)
-+LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_PATH)/$(UCLIBC_LDSO)
- endif
-
- ifeq ($(LDSO_GNU_HASH_SUPPORT),y)
-diff -Nur uClibc-0.9.33.2/test/setjmp/bug269-setjmp.c uClibc-git/test/setjmp/bug269-setjmp.c
---- uClibc-0.9.33.2/test/setjmp/bug269-setjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/setjmp/bug269-setjmp.c 2014-07-25 20:36:11.689360265 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */ ;
-+ License along with the GNU C Library; If not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* Test case for Bugzilla # 269 */
-
-diff -Nur uClibc-0.9.33.2/test/setjmp/Makefile uClibc-git/test/setjmp/Makefile
---- uClibc-0.9.33.2/test/setjmp/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/setjmp/Makefile 2014-07-25 20:36:11.689360265 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/setjmp/tst-setjmp.c uClibc-git/test/setjmp/tst-setjmp.c
---- uClibc-0.9.33.2/test/setjmp/tst-setjmp.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/setjmp/tst-setjmp.c 2014-07-25 20:36:11.689360265 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <setjmp.h>
-diff -Nur uClibc-0.9.33.2/test/signal/Makefile uClibc-git/test/signal/Makefile
---- uClibc-0.9.33.2/test/signal/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/signal/Makefile 2014-07-25 20:36:11.709360369 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/signal/tst-raise.c uClibc-git/test/signal/tst-raise.c
---- uClibc-0.9.33.2/test/signal/tst-raise.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/signal/tst-raise.c 2014-07-25 20:36:11.709360369 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/signal/tst-signalfd.c uClibc-git/test/signal/tst-signalfd.c
---- uClibc-0.9.33.2/test/signal/tst-signalfd.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/signal/tst-signalfd.c 2014-07-25 20:36:11.709360369 +0200
-@@ -0,0 +1,63 @@
-+/* vi: set sw=4 ts=4 sts=4: */
-+/*
-+ * signalfd test for uClibc
-+ * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include <error.h>
-+#include <signal.h>
-+#include <sys/signalfd.h>
-+#include <sys/fcntl.h>
-+
-+static int
-+do_test(void)
-+{
-+ int fd, ret, result = 0;
-+ struct signalfd_siginfo ssi;
-+ sigset_t mask;
-+
-+ sigemptyset(&mask);
-+ sigaddset(&mask, SIGUSR1);
-+ sigprocmask(SIG_BLOCK, &mask, NULL);
-+
-+ fd = signalfd(-1, &mask, SFD_NONBLOCK);
-+ if (fd < 0) {
-+ printf("signalfd() failed: %s\n", strerror(errno));
-+ result = 1;
-+ }
-+
-+ /* this should return immediately with EAGAIN due to SFD_NONBLOCK */
-+ memset(&ssi, 0, sizeof(ssi));
-+ ret = read(fd, &ssi, sizeof(ssi));
-+ if (ret != -1 || errno != EAGAIN) {
-+ error(0, 0, "first read() returned %d", ret);
-+ result = 1;
-+ }
-+
-+ kill(getpid(), SIGUSR1);
-+
-+ /* this should return a struct ssi indicating receipt of SIGUSR1 */
-+ ret = read(fd, &ssi, sizeof(ssi));
-+ if (ret != sizeof(ssi)) {
-+ error(0, 0, "second read() returned %d", ret);
-+ result = 1;
-+ }
-+
-+ if (ssi.ssi_signo != SIGUSR1) {
-+ error(0, 0, "ssi contains bogus signo");
-+ result = 1;
-+ }
-+
-+ return result;
-+}
-+
-+#define TIMEOUT 5
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -Nur uClibc-0.9.33.2/test/signal/tst-sigsimple.c uClibc-git/test/signal/tst-sigsimple.c
---- uClibc-0.9.33.2/test/signal/tst-sigsimple.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/signal/tst-sigsimple.c 2014-07-25 20:36:11.709360369 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <signal.h>
-diff -Nur uClibc-0.9.33.2/test/silly/Makefile uClibc-git/test/silly/Makefile
---- uClibc-0.9.33.2/test/silly/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/silly/Makefile 2014-07-25 20:36:11.713360391 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/stat/Makefile uClibc-git/test/stat/Makefile
---- uClibc-0.9.33.2/test/stat/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/stat/Makefile 2014-07-25 20:36:11.721360432 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/stdio/Makefile uClibc-git/test/stdio/Makefile
---- uClibc-0.9.33.2/test/stdio/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/stdio/Makefile 2014-07-25 20:36:11.737360516 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/stdlib/Makefile uClibc-git/test/stdlib/Makefile
---- uClibc-0.9.33.2/test/stdlib/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/stdlib/Makefile 2014-07-25 20:36:11.761360643 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/stdlib/testarc4random.c uClibc-git/test/stdlib/testarc4random.c
---- uClibc-0.9.33.2/test/stdlib/testarc4random.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/stdlib/testarc4random.c 2014-07-25 20:36:11.761360643 +0200
-@@ -0,0 +1,12 @@
-+#include <stdlib.h>
-+#include <stdio.h>
-+
-+int main(void)
-+{
-+#ifdef __UCLIBC_HAS_ARC4RANDOM__
-+ int random_number;
-+ random_number = arc4random() % 65536;
-+ printf("%d\n", random_number);
-+#endif
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/test/stdlib/test-canon2.c uClibc-git/test/stdlib/test-canon2.c
---- uClibc-0.9.33.2/test/stdlib/test-canon2.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/stdlib/test-canon2.c 2014-07-25 20:36:11.761360643 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <string.h>
-diff -Nur uClibc-0.9.33.2/test/stdlib/test-canon.c uClibc-git/test/stdlib/test-canon.c
---- uClibc-0.9.33.2/test/stdlib/test-canon.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/stdlib/test-canon.c 2014-07-25 20:36:11.761360643 +0200
-@@ -15,9 +15,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- /* This file must be run from within a directory called "stdlib". */
-
-diff -Nur uClibc-0.9.33.2/test/string/Makefile uClibc-git/test/string/Makefile
---- uClibc-0.9.33.2/test/string/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/Makefile 2014-07-25 20:36:11.809360893 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/string/stratcliff.c uClibc-git/test/string/stratcliff.c
---- uClibc-0.9.33.2/test/string/stratcliff.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/stratcliff.c 2014-07-25 20:36:11.809360893 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define _GNU_SOURCE 1
-
-diff -Nur uClibc-0.9.33.2/test/string/testcopy.c uClibc-git/test/string/testcopy.c
---- uClibc-0.9.33.2/test/string/testcopy.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/testcopy.c 2014-07-25 20:36:11.813360914 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/string/tester.c uClibc-git/test/string/tester.c
---- uClibc-0.9.33.2/test/string/tester.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/tester.c 2014-07-25 20:36:11.813360914 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GNU_SOURCE
- #define _GNU_SOURCE
-diff -Nur uClibc-0.9.33.2/test/string/test-ffs.c uClibc-git/test/string/test-ffs.c
---- uClibc-0.9.33.2/test/string/test-ffs.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/test-ffs.c 2014-07-25 20:36:11.813360914 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdlib.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/string/tst-bswap.c uClibc-git/test/string/tst-bswap.c
---- uClibc-0.9.33.2/test/string/tst-bswap.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/tst-bswap.c 2014-07-25 20:36:11.813360914 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <byteswap.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/string/tst-inlcall.c uClibc-git/test/string/tst-inlcall.c
---- uClibc-0.9.33.2/test/string/tst-inlcall.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/string/tst-inlcall.c 2014-07-25 20:36:11.813360914 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #ifndef _GNU_SOURCE
- #define _GNU_SOURCE
-diff -Nur uClibc-0.9.33.2/test/termios/Makefile uClibc-git/test/termios/Makefile
---- uClibc-0.9.33.2/test/termios/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/termios/Makefile 2014-07-25 20:36:11.825360977 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/Test.mak uClibc-git/test/Test.mak
---- uClibc-0.9.33.2/test/Test.mak 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/Test.mak 2014-07-25 20:36:10.745355319 +0200
-@@ -35,7 +35,9 @@
- CLEAN_TARGETS := $(U_TARGETS) $(G_TARGETS)
- CLEAN_TARGETS += $(TESTS_DISABLED) $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
- COMPILE_TARGETS := $(TARGETS)
--RUN_TARGETS := $(addsuffix .exe,$(TARGETS))
-+# We sort the targets so uClibc and host-libc tests are run adjacent
-+RUN_TARGETS := $(sort $(addsuffix .exe,$(TARGETS)))
-+COMPILE_TARGETS := $(sort $(COMPILE_TARGETS))
- # provide build rules even for disabled tests:
- U_TARGETS += $(TESTS_DISABLED)
- G_TARGETS += $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
-@@ -99,13 +101,15 @@
-
- $(U_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
- $(showlink)
-- $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
-+ $(Q)$(CC) $(filter-out $(CFLAGS-OMIT-$@),$(CFLAGS)) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
- $(Q)$(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$@)
-
- $(G_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
- $(showlink)
-- $(Q)$(HOSTCC) $(HOST_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) -c $(patsubst %_glibc,%,$@).c -o $@.o
-- $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
-+ $(Q)$(HOSTCC) $(filter-out $(HOST_CFLAGS-OMIT-$(patsubst %_glibc,%,$@)),$(HOST_CFLAGS)) \
-+ $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
-+ -c $(patsubst %_glibc,%,$@).c -o $@.o
-+ $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@)) $(LDFLAGS_$@)
-
-
- shell_%:
-@@ -117,9 +121,11 @@
- %.so: %.c
- $(showlink)
- $(Q)$(CC) \
-- $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
-+ $(filter-out $(CFLAGS-OMIT-$<),$(CFLAGS)) $(EXTRA_CFLAGS) \
-+ $(CFLAGS_$(patsubst %_glibc,%,$@)) \
- -fPIC -shared $< -o $@ -Wl,-soname,$@ \
-- $(LDFLAGS) $(EXTRA_LIBS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
-+ $(filter-out $(LDFLAGS-OMIT-$<),$(LDFLAGS)) $(EXTRA_LIBS) \
-+ $(LDFLAGS_$(patsubst %_glibc,%,$@))
-
- clean:
- $(showclean)
-diff -Nur uClibc-0.9.33.2/test/test-skeleton.c uClibc-git/test/test-skeleton.c
---- uClibc-0.9.33.2/test/test-skeleton.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/test-skeleton.c 2014-07-25 20:36:11.825360977 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <getopt.h>
-@@ -104,7 +103,7 @@
- create_temp_file (const char *base, char **filename)
- {
- char *fname;
-- int fd;
-+ int _fd;
-
- fname = (char *) malloc (strlen (test_dir) + 1 + strlen (base)
- + sizeof ("XXXXXX"));
-@@ -115,8 +114,8 @@
- }
- strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base), "XXXXXX");
-
-- fd = mkstemp (fname);
-- if (fd == -1)
-+ _fd = mkstemp (fname);
-+ if (_fd == -1)
- {
- printf ("cannot open temporary file '%s': %s\n", fname, strerror(errno));
- free (fname);
-@@ -127,13 +126,13 @@
- if (filename != NULL)
- *filename = fname;
-
-- return fd;
-+ return _fd;
- }
-
- /* Timeout handler. We kill the child and exit with an error. */
- static void
- __attribute__ ((noreturn))
--timeout_handler (int sig __attribute__ ((unused)))
-+signal_handler (int sig __attribute__ ((unused)))
- {
- int killed = 0;
- int status;
-@@ -168,6 +167,12 @@
- CLEANUP_HANDLER;
- #endif
-
-+ if (sig == SIGINT)
-+ {
-+ signal (sig, SIG_DFL);
-+ raise (sig);
-+ }
-+
- /* If we expected this signal: good! */
- #ifdef EXPECTED_SIGNAL
- if (EXPECTED_SIGNAL == SIGALRM)
-@@ -190,6 +195,7 @@
- exit (1);
- }
-
-+#ifdef __XXX_HANDLE_CTRL_C
- static void
- __attribute__ ((noreturn))
- handler_killpid(int sig)
-@@ -199,6 +205,7 @@
- raise(sig); /* kill ourself */
- _exit(128 + sig); /* paranoia */
- }
-+#endif
-
- /* We provide the entry point here. */
- int
-@@ -345,18 +352,23 @@
- exit (1);
- }
-
-+#ifdef __XXX_HANDLE_CTRL_C
- signal (SIGTERM, handler_killpid);
- signal (SIGINT, handler_killpid);
- signal (SIGQUIT, handler_killpid);
-+#endif
-
- /* Set timeout. */
- #ifndef TIMEOUT
- /* Default timeout is two seconds. */
- # define TIMEOUT 2
- #endif
-- signal (SIGALRM, timeout_handler);
-+ signal (SIGALRM, signal_handler);
- alarm (TIMEOUT * timeoutfactor);
-
-+ /* Make sure we clean up if the wrapper gets interrupted. */
-+ signal (SIGINT, signal_handler);
-+
- /* Wait for the regular termination. */
- termpid = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
- if (termpid == -1)
-diff -Nur uClibc-0.9.33.2/test/testsuite.h uClibc-git/test/testsuite.h
---- uClibc-0.9.33.2/test/testsuite.h 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/testsuite.h 2014-07-25 20:36:11.825360977 +0200
-@@ -27,11 +27,12 @@
- {
- failures++;
-
-- printf("\nFAILED TEST %lu: \n\t%s\n", (unsigned long)test_number, command);
-+ printf("\nFAILED TEST %lu: \n\t%s\nResult: %d",
-+ (unsigned long)test_number, command, result);
- printf("AT LINE: %d, FILE: %s\n\n", line, file);
- }
-
--void success_msg(int result, const char* command)
-+void success_msg(int result __attribute__((unused)), const char* command __attribute__((unused)))
- {
- #if 0
- printf("passed test: %s == 0\n", command);
-diff -Nur uClibc-0.9.33.2/test/time/Makefile uClibc-git/test/time/Makefile
---- uClibc-0.9.33.2/test/time/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/time/Makefile 2014-07-25 20:36:11.849361103 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/time/test_time.c uClibc-git/test/time/test_time.c
---- uClibc-0.9.33.2/test/time/test_time.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/time/test_time.c 2014-07-25 20:36:11.849361103 +0200
-@@ -12,9 +12,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <stdio.h>
- #include <stdlib.h>
-diff -Nur uClibc-0.9.33.2/test/time/tst-strptime.c uClibc-git/test/time/tst-strptime.c
---- uClibc-0.9.33.2/test/time/tst-strptime.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/time/tst-strptime.c 2014-07-25 20:36:11.849361103 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <locale.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/time/tst-timerfd.c uClibc-git/test/time/tst-timerfd.c
---- uClibc-0.9.33.2/test/time/tst-timerfd.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/time/tst-timerfd.c 2014-07-25 20:36:11.853361125 +0200
-@@ -0,0 +1,71 @@
-+/* vi: set sw=4 ts=4 sts=4: */
-+/*
-+ * timerfd test for uClibc
-+ * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include <error.h>
-+#include <signal.h>
-+#include <stdint.h>
-+#include <inttypes.h>
-+#include <time.h>
-+#include <sys/timerfd.h>
-+#include <sys/fcntl.h>
-+
-+static int
-+do_test(void)
-+{
-+ int fd, ret, result = 0;
-+ struct itimerspec s;
-+ uint64_t val;
-+ time_t start, now;
-+
-+ fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
-+ if (fd < 0) {
-+ perror("timerfd() failed");
-+ result = 1;
-+ }
-+ s.it_value.tv_sec = 1;
-+ s.it_value.tv_nsec = 0;
-+ s.it_interval.tv_sec = 0;
-+ s.it_interval.tv_nsec = 0;
-+ timerfd_settime(fd, 0, &s, NULL);
-+ start = time(NULL);
-+
-+ /* this should return immediately with EAGAIN due to TFD_NONBLOCK */
-+ ret = read(fd, &val, sizeof(val));
-+ if (ret != -1 || errno != EAGAIN) {
-+ error(0, 0, "first read() returned %d", ret);
-+ result = 1;
-+ }
-+
-+ /* let the timer expire, then check it again */
-+ do {
-+ now = time(NULL);
-+ } while (now - start < 2);
-+
-+ ret = read(fd, &val, sizeof(val));
-+ if (ret != sizeof(val)) {
-+ error(0, 0, "second read() returned %d", ret);
-+ result = 1;
-+ }
-+
-+ /* we are expecting a single expiration, since it_interval is 0 */
-+ if (val != 1) {
-+ error(0, 0, "wrong number of expirations: %" PRIx64, val);
-+ result = 1;
-+ }
-+
-+ return result;
-+}
-+
-+#define TIMEOUT 5
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -Nur uClibc-0.9.33.2/test/time/tst-timezone.c uClibc-git/test/time/tst-timezone.c
---- uClibc-0.9.33.2/test/time/tst-timezone.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/time/tst-timezone.c 2014-07-25 20:36:11.853361125 +0200
-@@ -13,9 +13,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <time.h>
- #include <stdio.h>
-diff -Nur uClibc-0.9.33.2/test/tls/Makefile.in uClibc-git/test/tls/Makefile.in
---- uClibc-0.9.33.2/test/tls/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/tls/Makefile.in 2014-07-25 20:36:11.865361187 +0200
-@@ -102,9 +102,9 @@
- LDFLAGS_tst-tls7 := -ldl
- LDFLAGS_tst-tls8 := -ldl
- LDFLAGS_tst-tls9 := -ldl
--LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so
--LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod10.so
--LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod12.so
-+LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so tst-tlsmod7.so
-+LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod9.so tst-tlsmod10.so
-+LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod11.so tst-tlsmod12.so
- LDFLAGS_tst-tls13 := -ldl -Wl,-rpath-link=.
- LDFLAGS_tst-tls14 := -ldl -Wl,-rpath-link=. tst-tlsmod14a.so
- LDFLAGS_tst-tls15 := -ldl -Wl,-rpath-link=.
-diff -Nur uClibc-0.9.33.2/test/tls/tst-tls6.c uClibc-git/test/tls/tst-tls6.c
---- uClibc-0.9.33.2/test/tls/tst-tls6.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/tls/tst-tls6.c 2014-07-25 20:36:11.869361208 +0200
-@@ -38,13 +38,12 @@
- time. The value of the first round is used. */
- #ifdef __UCLIBC__
- if (modid == -1)
-- modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid;
-- else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid
-- != (size_t) modid)
-+ modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
-+ else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
- {
- printf ("round %d: modid now %zu, initially %d\n",
- i,
-- ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid,
-+ ((struct dyn_elf *)h)->dyn->l_tls_modid,
- modid);
- result = 1;
- }
-diff -Nur uClibc-0.9.33.2/test/tls/tst-tls7.c uClibc-git/test/tls/tst-tls7.c
---- uClibc-0.9.33.2/test/tls/tst-tls7.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/tls/tst-tls7.c 2014-07-25 20:36:11.869361208 +0200
-@@ -36,13 +36,12 @@
- time. The value of the first round is used. */
- #ifdef __UCLIBC__
- if (modid == -1)
-- modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid;
-- else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid
-- != (size_t) modid)
-+ modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
-+ else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
- {
- printf ("round %d: modid now %zu, initially %d\n",
- i,
-- ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid,
-+ ((struct dyn_elf *)h)->dyn->l_tls_modid,
- modid);
- result = 1;
- }
-diff -Nur uClibc-0.9.33.2/test/tls/tst-tls8.c uClibc-git/test/tls/tst-tls8.c
---- uClibc-0.9.33.2/test/tls/tst-tls8.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/tls/tst-tls8.c 2014-07-25 20:36:11.869361208 +0200
-@@ -41,13 +41,12 @@
- time. The value of the first round is used. */
- #ifdef __UCLIBC__
- if (modid1 == (size_t) -1)
-- modid1 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid;
-- else if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
-- != (size_t) modid1)
-+ modid1 = ((struct dyn_elf *) h1)->dyn->l_tls_modid;
-+ else if (((struct dyn_elf *)h1)->dyn->l_tls_modid != (size_t) modid1)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
-- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
-+ ((struct dyn_elf *)h1)->dyn->l_tls_modid,
- modid1);
- result = 1;
- }
-@@ -85,23 +84,23 @@
- time. The value of the first round is used. */
- #ifdef __UCLIBC__
- if (modid2 == (size_t) -1)
-- modid2 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid;
-- else if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
-+ modid2 = ((struct dyn_elf *)h2)->dyn->l_tls_modid;
-+ else if (((struct dyn_elf *)h2)->dyn->l_tls_modid
- != (size_t) modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
-- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
-+ ((struct dyn_elf *)h2)->dyn->l_tls_modid,
- modid2);
- result = 1;
- }
- #else
- if (modid2 == (size_t) -1)
-- modid2 = ((struct link_map *) h1)->l_tls_modid;
-- else if (((struct link_map *) h1)->l_tls_modid != modid2)
-+ modid2 = ((struct link_map *) h2)->l_tls_modid;
-+ else if (((struct link_map *) h2)->l_tls_modid != modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
-- i, ((struct link_map *) h1)->l_tls_modid, modid2);
-+ i, ((struct link_map *) h2)->l_tls_modid, modid2);
- result = 1;
- }
- #endif
-@@ -139,12 +138,12 @@
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
- #ifdef __UCLIBC__
-- if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
-+ if (((struct dyn_elf *)h1)->dyn->l_tls_modid
- != modid1)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
-- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
-+ ((struct dyn_elf *)h1)->dyn->l_tls_modid,
- modid1);
- result = 1;
- }
-@@ -179,20 +178,20 @@
- We make sure that the module gets assigned the same ID every
- time. The value of the first round is used. */
- #ifdef __UCLIBC__
-- if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
-+ if (((struct dyn_elf *)h2)->dyn->l_tls_modid
- != modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
- i,
-- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
-+ ((struct dyn_elf *)h2)->dyn->l_tls_modid,
- modid2);
- result = 1;
- }
- #else
-- if (((struct link_map *) h1)->l_tls_modid != modid2)
-+ if (((struct link_map *) h2)->l_tls_modid != modid2)
- {
- printf ("round %d: modid now %zd, initially %zd\n",
-- i, ((struct link_map *) h1)->l_tls_modid, modid2);
-+ i, ((struct link_map *) h2)->l_tls_modid, modid2);
- result = 1;
- }
- #endif
-diff -Nur uClibc-0.9.33.2/test/unistd/Makefile uClibc-git/test/unistd/Makefile
---- uClibc-0.9.33.2/test/unistd/Makefile 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/unistd/Makefile 2014-07-25 20:36:11.869361208 +0200
-@@ -2,6 +2,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- top_builddir=../../
-+top_srcdir=../../
- include ../Rules.mak
- -include Makefile.in
- include ../Test.mak
-diff -Nur uClibc-0.9.33.2/test/unistd/Makefile.in uClibc-git/test/unistd/Makefile.in
---- uClibc-0.9.33.2/test/unistd/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/unistd/Makefile.in 2014-07-25 20:36:11.869361208 +0200
-@@ -2,7 +2,10 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
- ifeq ($(UCLIBC_HAS_LFS),)
--TESTS_DISABLED := tst-preadwrite64
-+TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64
-+endif
-+ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),)
-+TESTS_DISABLED += tst-posix_fallocate
- endif
- OPTS_getopt := -abcXXX -9
- OPTS_getopt_long := --add XXX --delete YYY --verbose
-diff -Nur uClibc-0.9.33.2/test/unistd/tst-posix_fallocate64.c uClibc-git/test/unistd/tst-posix_fallocate64.c
---- uClibc-0.9.33.2/test/unistd/tst-posix_fallocate64.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/unistd/tst-posix_fallocate64.c 2014-07-25 20:36:11.869361208 +0200
-@@ -0,0 +1,2 @@
-+#define TST_POSIX_FALLOCATE64
-+#include "tst-posix_fallocate.c"
-diff -Nur uClibc-0.9.33.2/test/unistd/tst-posix_fallocate.c uClibc-git/test/unistd/tst-posix_fallocate.c
---- uClibc-0.9.33.2/test/unistd/tst-posix_fallocate.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-git/test/unistd/tst-posix_fallocate.c 2014-07-25 20:36:11.869361208 +0200
-@@ -0,0 +1,127 @@
-+#include <fcntl.h>
-+#include <sys/stat.h>
-+
-+#ifndef TST_POSIX_FALLOCATE64
-+# define stat64 stat
-+# define fstat64 fstat
-+# else
-+# ifndef O_LARGEFILE
-+# error no O_LARGEFILE but you want to test with LFS enabled
-+# endif
-+#endif
-+
-+static void do_prepare (void);
-+#define PREPARE(argc, argv) do_prepare ()
-+static int do_test (void);
-+#define TEST_FUNCTION do_test ()
-+#include <test-skeleton.c>
-+
-+static int fd;
-+static void
-+do_prepare (void)
-+{
-+ fd = create_temp_file ("tst-posix_fallocate.", NULL);
-+ if (fd == -1)
-+ {
-+ printf ("cannot create temporary file: %m\n");
-+ exit (1);
-+ }
-+}
-+
-+
-+static int
-+do_test (void)
-+{
-+ struct stat64 st;
-+
-+ if (fstat64 (fd, &st) != 0)
-+ {
-+ puts ("1st fstat failed");
-+ return 1;
-+ }
-+
-+ if (st.st_size != 0)
-+ {
-+ puts ("file not created with size 0");
-+ return 1;
-+ }
-+
-+ if (posix_fallocate (fd, 512, 768) != 0)
-+ {
-+ puts ("1st posix_fallocate call failed");
-+ return 1;
-+ }
-+
-+ if (fstat64 (fd, &st) != 0)
-+ {
-+ puts ("2nd fstat failed");
-+ return 1;
-+ }
-+
-+ if (st.st_size != 512 + 768)
-+ {
-+ printf ("file size after 1st posix_fallocate call is %llu, expected %u\n",
-+ (unsigned long long int) st.st_size, 512u + 768u);
-+ return 1;
-+ }
-+
-+ if (posix_fallocate (fd, 0, 1024) != 0)
-+ {
-+ puts ("2nd posix_fallocate call failed");
-+ return 1;
-+ }
-+
-+ if (fstat64 (fd, &st) != 0)
-+ {
-+ puts ("3rd fstat failed");
-+ return 1;
-+ }
-+
-+ if (st.st_size != 512 + 768)
-+ {
-+ puts ("file size changed in 2nd posix_fallocate");
-+ return 1;
-+ }
-+
-+ if (posix_fallocate (fd, 2048, 64) != 0)
-+ {
-+ puts ("3rd posix_fallocate call failed");
-+ return 1;
-+ }
-+
-+ if (fstat64 (fd, &st) != 0)
-+ {
-+ puts ("4th fstat failed");
-+ return 1;
-+ }
-+
-+ if (st.st_size != 2048 + 64)
-+ {
-+ printf ("file size after 3rd posix_fallocate call is %llu, expected %u\n",
-+ (unsigned long long int) st.st_size, 2048u + 64u);
-+ return 1;
-+ }
-+#ifdef TST_POSIX_FALLOCATE64
-+ if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0)
-+ {
-+ puts ("4th posix_fallocate call failed");
-+ return 1;
-+ }
-+
-+ if (fstat64 (fd, &st) != 0)
-+ {
-+ puts ("5th fstat failed");
-+ return 1;
-+ }
-+
-+ if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
-+ {
-+ printf ("file size after 4th posix_fallocate call is %llu, expected %llu\n",
-+ (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
-+ return 1;
-+ }
-+#endif
-+ close (fd);
-+
-+ return 0;
-+}
-diff -Nur uClibc-0.9.33.2/test/unistd/tst-preadwrite64.c uClibc-git/test/unistd/tst-preadwrite64.c
---- uClibc-0.9.33.2/test/unistd/tst-preadwrite64.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/unistd/tst-preadwrite64.c 2014-07-25 20:36:11.869361208 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #define PREAD pread64
- #define PWRITE pwrite64
-diff -Nur uClibc-0.9.33.2/test/unistd/tst-preadwrite.c uClibc-git/test/unistd/tst-preadwrite.c
---- uClibc-0.9.33.2/test/unistd/tst-preadwrite.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/test/unistd/tst-preadwrite.c 2014-07-25 20:36:11.869361208 +0200
-@@ -14,9 +14,8 @@
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-
- #include <errno.h>
- #include <error.h>
-diff -Nur uClibc-0.9.33.2/TODO uClibc-git/TODO
---- uClibc-0.9.33.2/TODO 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/TODO 2014-07-25 20:36:04.409322131 +0200
-@@ -88,6 +88,11 @@
- *) Cleanup/scrub all the Makefile copyright junk
- *) Fix dlopen, for both static and dynamic cases, and make it
- fully comply with SuSv3
-+ *) check if sched_getcpu is only pulled in where it should be
-+ *) remove HANDLE_OLDER_RLIMIT, NEW_GETRLIMIT (conditionalize on
-+ ugetrlimit, it seems, else use the modern variant)
-+ *) simplify exec*() in the light of execvpe (perhaps single internal
-+ impl); USE_GNU for execvpe (and other GNU extensions, see psm).
-
-
- TODO list for AFTER the uClibc 1.0.0 release:
-@@ -180,3 +185,4 @@
- b) Write a space-efficient gettext substitute, to avoid storing large amounts
- of redundant data.
-
-+
-diff -Nur uClibc-0.9.33.2/utils/chroot_realpath.c uClibc-git/utils/chroot_realpath.c
---- uClibc-0.9.33.2/utils/chroot_realpath.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/utils/chroot_realpath.c 2014-07-25 20:36:11.877361249 +0200
-@@ -14,8 +14,7 @@
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; see the file COPYING.LIB. If not,
-- * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- * Boston, MA 02111-1307, USA.
-+ * see <http://www.gnu.org/licenses/>.
- *
- * 2005/09/12: Dan Howell (modified from realpath.c to emulate chroot)
- */
-diff -Nur uClibc-0.9.33.2/utils/getconf.c uClibc-git/utils/getconf.c
---- uClibc-0.9.33.2/utils/getconf.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/utils/getconf.c 2014-07-25 20:36:11.877361249 +0200
-@@ -12,10 +12,10 @@
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software Foundation,
-- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
-
- #define _GNU_SOURCE 1
-+#include "porting.h"
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
-@@ -1052,13 +1052,11 @@
- };
- static const int nspecs = sizeof (specs) / sizeof (specs[0]);
-
--#ifdef __UCLIBC_HAS___PROGNAME__
--extern const char *__progname;
--#else
--#define __progname "foo"
-+#ifndef __UCLIBC_HAS___PROGNAME__
-+static const char *__progname = "getconf";
- #endif
-
--static void
-+static attribute_noreturn void
- usage (void)
- {
- fprintf (stderr,
-@@ -1070,7 +1068,7 @@
- }
-
-
--static void
-+static attribute_noreturn void
- print_all (const char *path)
- {
- register const struct conf *c;
-diff -Nur uClibc-0.9.33.2/utils/iconv.c uClibc-git/utils/iconv.c
---- uClibc-0.9.33.2/utils/iconv.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/utils/iconv.c 2014-07-25 20:36:11.877361249 +0200
-@@ -12,8 +12,8 @@
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * License along with this library; if not, see
-+ * <http://www.gnu.org/licenses/>.
- */
-
- /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
-@@ -98,15 +98,22 @@
- * Manuel
- */
-
-+/* keep libgen before string.h - and porting.h to use the
-+ * XPG version of basename */
-+#include <libgen.h>
- #include "porting.h"
- #include <string.h>
- #include <iconv.h>
- #include <stdarg.h>
--#include <libgen.h>
- #include <wchar.h>
- #include "wchar.c" /* for _UC_iconv_t and __iconv_codesets */
-
--extern const unsigned char __iconv_codesets[];
-+#ifdef L_iconv_main
-+static
-+#else
-+extern
-+#endif
-+const unsigned char __iconv_codesets[];
-
- #define IBUF BUFSIZ
- #define OBUF BUFSIZ
-diff -Nur uClibc-0.9.33.2/utils/ldconfig.c uClibc-git/utils/ldconfig.c
---- uClibc-0.9.33.2/utils/ldconfig.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/utils/ldconfig.c 2014-07-25 20:36:11.877361249 +0200
-@@ -57,8 +57,6 @@
- /* Code indicating core file. */
- #define CMAGIC 0421
-
--char *___strtok = NULL;
--
- char *prog = NULL;
- int debug = 0; /* debug mode */
- int verbose = 0; /* verbose mode */
-@@ -96,6 +94,7 @@
- extern char *chroot_realpath(const char *chroot, const char *path,
- char resolved_path[]);
-
-+#if defined __UCLIBC_STATIC_LDCONFIG__ || !defined __UCLIBC_HAS_BSD_ERR__
- /* These two are used internally -- you shouldn't need to use them */
- static void verror_msg(const char *s, va_list p)
- {
-@@ -114,8 +113,7 @@
- fprintf(stderr, "\n");
- }
-
--static void err(int errnum, const char *s, ...) attribute_noreturn;
--static void err(int errnum, const char *s, ...)
-+static attribute_noreturn void err(int errnum, const char *s, ...)
- {
- va_list p;
-
-@@ -146,6 +144,9 @@
- vperror_msg(s, p);
- va_end(p);
- }
-+#else
-+# include <err.h>
-+#endif
-
- static void *xmalloc(size_t size)
- {
-@@ -257,10 +258,10 @@
- && N_MAGIC_SWAP(exec) != QMAGIC) {
- elf_hdr = (ElfW(Ehdr) *) & exec;
- if (elf_hdr->e_ident[0] != 0x7f ||
-- strncmp((char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
-+ strncmp((const char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
- {
- /* silently ignore linker scripts */
-- if (strncmp((char *)&exec, "/* GNU ld", 9) != 0)
-+ if (strncmp((const char *)&exec, "/* GNU ld", 9) != 0)
- warnx("%s is not a shared library, skipping", buff);
- } else {
- /* always call readsoname to update type */
-@@ -282,7 +283,7 @@
- /* if the soname does not match the filename,
- issue a warning, but only in debug mode. */
- int len = strlen(good);
-- if (debug && (strncmp(good, name, len) != 0
-+ if (debug && (strncmp((const char *)good, name, len) != 0
- || (name[len] != '\0' && name[len] != '.')))
- warnx("%s has inconsistent soname (%s)", buff, good);
- }
-@@ -784,8 +785,7 @@
- }
- #endif
-
--static void usage(void) attribute_noreturn;
--static void usage(void)
-+static attribute_noreturn void usage(void)
- {
- fprintf(stderr,
- #ifdef __LDSO_CACHE_SUPPORT__
-diff -Nur uClibc-0.9.33.2/utils/ldd.c uClibc-git/utils/ldd.c
---- uClibc-0.9.33.2/utils/ldd.c 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/utils/ldd.c 2014-07-25 20:36:11.877361249 +0200
-@@ -20,6 +20,11 @@
- #define ELFCLASSM ELFCLASS64
- #endif
-
-+#if defined(__arc__)
-+#define MATCH_MACHINE(x) (x == EM_ARCOMPACT)
-+#define ELFCLASSM ELFCLASS32
-+#endif
-+
- #if defined(__arm__) || defined(__thumb__)
- #define MATCH_MACHINE(x) (x == EM_ARM)
- #define ELFCLASSM ELFCLASS32
-@@ -63,6 +68,11 @@
- #define ELFCLASSM ELFCLASS32
- #endif
-
-+#if defined(__metag__)
-+#define MATCH_MACHINE(x) (x == EM_METAG)
-+#define ELFCLASSM ELFCLASS32
-+#endif
-+
- #if defined(__mips__)
- #define MATCH_MACHINE(x) (x == EM_MIPS || x == EM_MIPS_RS3_LE)
- #define ELFCLASSM ELFCLASS32
-@@ -106,6 +116,11 @@
- #define ELFCLASSM ELFCLASS32
- #endif
-
-+#if defined(__xtensa__)
-+#define MATCH_MACHINE(x) (x == EM_XTENSA)
-+#define ELFCLASSM ELFCLASS32
-+#endif
-+
- #ifndef MATCH_MACHINE
- # ifdef __linux__
- # include <asm/elf.h>
-@@ -127,7 +142,6 @@
- #define ELFDATAM ELFDATA2MSB
- #endif
-
--#define ARRAY_SIZE(v) (sizeof(v) / sizeof(*v))
- #define TRUSTED_LDSO UCLIBC_RUNTIME_PREFIX "lib/" UCLIBC_LDSO
-
- struct library {
-@@ -145,7 +159,7 @@
-
- static __inline__ uint32_t byteswap32_to_host(uint32_t value)
- {
-- if (byteswap == 1) {
-+ if (byteswap) {
- return (bswap_32(value));
- } else {
- return (value);
-@@ -153,7 +167,7 @@
- }
- static __inline__ uint64_t byteswap64_to_host(uint64_t value)
- {
-- if (byteswap == 1) {
-+ if (byteswap) {
- return (bswap_64(value));
- } else {
- return (value);
-@@ -232,14 +246,7 @@
- }
-
- /* Check if the target endianness matches the host's endianness */
-- byteswap = 0;
-- if (UCLIBC_ENDIAN_HOST == UCLIBC_ENDIAN_LITTLE) {
-- if (ehdr->e_ident[5] == ELFDATA2MSB)
-- byteswap = 1;
-- } else if (UCLIBC_ENDIAN_HOST == UCLIBC_ENDIAN_BIG) {
-- if (ehdr->e_ident[5] == ELFDATA2LSB)
-- byteswap = 1;
-- }
-+ byteswap = !(ehdr->e_ident[5] == ELFDATAM);
-
- /* Be very lazy, and only byteswap the stuff we use */
- if (byteswap) {
-@@ -707,6 +714,7 @@
- };
- # ifdef __LDSO_STANDALONE_SUPPORT__
- char * lib_path = getenv("LD_LIBRARY_PATH");
-+
- /* The 'extended' environment inclusing the LD_LIBRARY_PATH */
- static char *ext_environment[ARRAY_SIZE(environment) + 1];
- char **envp = (char **) environment;
-diff -Nur uClibc-0.9.33.2/utils/Makefile.in uClibc-git/utils/Makefile.in
---- uClibc-0.9.33.2/utils/Makefile.in 2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-git/utils/Makefile.in 2014-07-25 20:36:11.877361249 +0200
-@@ -10,6 +10,7 @@
-
- CFLAGS-utils := \
- $(SSP_ALL_CFLAGS) \
-+ -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
- -I$(top_srcdir)ldso/include \
- -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
- -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" \
-@@ -36,8 +37,7 @@
- # Need CFLAGS-utils explicitly, because the source file is not located in utils
- CFLAGS-iconv := $(CFLAGS-utils) \
- $(CFLAGS-utils-shared) \
-- -I$(top_srcdir)libc/misc/wchar \
-- -DL_iconv_main \
-+ -I$(top_srcdir)libc/misc/wchar
-
- CFLAGS-locale := $(CFLAGS-utils)
- CFLAGS-getconf :=$(CFLAGS-utils) \
-@@ -56,9 +56,11 @@
- $(UTILS_CONFIG_FLAGS-y)
- BUILD_CFLAGS-ldconfig.host := \
- -DBUILDING_LINKAGE \
-+ -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
- -I$(top_srcdir)ldso/include
- BUILD_CFLAGS-ldd.host := \
- -DBUILDING_LINKAGE \
-+ -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
- -I$(top_srcdir)ldso/include \
- -include $(top_srcdir)include/elf.h
- BUILD_CFLAGS-locale.host := \