summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-08-01 15:43:10 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-08-01 15:44:41 +0200
commit17417c2b44cf5f23676e142ab435b5523b8dddfa (patch)
tree3facf0354aa6f785d910caf1fbbc5e5a31f7b466
parentf7c0014d2f7d30a708153d51e85278e39adbc8a0 (diff)
allow to use git version for C library.
-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 highligh