-diff -urN uClibc-0.9.26.org/extra/gcc-uClibc/.cvsignore uClibc-0.9.26/extra/gcc-uClibc/.cvsignore
---- uClibc-0.9.26.org/extra/gcc-uClibc/.cvsignore 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-0.9.26/extra/gcc-uClibc/.cvsignore 2002-01-29 10:02:51.000000000 +0100
-@@ -0,0 +1,2 @@
-+gcc-uClibc.h
-+*-uclibc-*
-diff -urN uClibc-0.9.26.org/extra/gcc-uClibc/gcc-uClibc.c uClibc-0.9.26/extra/gcc-uClibc/gcc-uClibc.c
---- uClibc-0.9.26.org/extra/gcc-uClibc/gcc-uClibc.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-0.9.26/extra/gcc-uClibc/gcc-uClibc.c 2003-08-28 07:51:04.000000000 +0200
-@@ -0,0 +1,660 @@
+diff -urN uClibc-0.9.29.org/extra/gcc-uClibc/gcc-uClibc.c uClibc-0.9.29/extra/gcc-uClibc/gcc-uClibc.c
+--- uClibc-0.9.29.org/extra/gcc-uClibc/gcc-uClibc.c 1970-01-01 01:00:00.000000000 +0100
++++ uClibc-0.9.29/extra/gcc-uClibc/gcc-uClibc.c 2007-06-03 22:10:49.372320596 +0200
+@@ -0,0 +1,672 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2000 Manuel Novoa III
+ char *dlstr;
+ char *incstr;
+ char *devprefix;
++ char *runprefix;
+ char *builddir;
+ char *libstr;
+ char *build_dlstr = 0;
+ devprefix = UCLIBC_DEVEL_PREFIX;
+ }
+
++ runprefix = getenv("UCLIBC_RUNTIME_PREFIX");
++ if (!runprefix) {
++ runprefix = UCLIBC_RUNTIME_PREFIX;
++ }
++
+ builddir = getenv("UCLIBC_BUILD_DIR");
+ if (!builddir) {
+ builddir = UCLIBC_BUILD_DIR;
+ }
+
+
-+ xstrcat(&(rpath_link[0]), "-Wl,-rpath-link,", devprefix, "/lib", NULL);
++ xstrcat(&(rpath_link[0]), "-Wl,-rpath-link,", devprefix, "/lib:", runprefix, "/lib", NULL);
+ xstrcat(&(rpath_link[1]), "-Wl,-rpath-link,", builddir, "/lib", NULL);
+
-+ xstrcat(&(rpath[0]), "-Wl,-rpath,", devprefix, "/lib", NULL);
++ xstrcat(&(rpath[0]), "-Wl,-rpath,", devprefix, "/lib:", runprefix, "/lib", NULL);
+ xstrcat(&(rpath[1]), "-Wl,-rpath,", builddir, "/lib", NULL);
+
+ xstrcat(&(uClibc_inc[0]), devprefix, "/include/", NULL);
+ if (strstr(argv[i],"--dynamic-linker") != 0) {
+ dlstr = 0;
+ }
++ if ((strstr(argv[i],"-z,combreloc") != 0) ||
++ (strstr(argv[i],"-z,relro") != 0)) {
++ argv[i] = '\0';
++ }
+ }
+ break;
+#ifdef __UCLIBC_PROFILING__
+ if (status < 0) {
+ goto crash_n_burn;
+ }
++ buf[(status == sizeof(buf)) ? status-1 : status] = 0;
+ dir = dirname(buf);
+ xstrcat(&(crtbegin_path[0]), dir, "/crtbegin.o", NULL);
+ xstrcat(&(crtbegin_path[1]), dir, "/crtbeginS.o", NULL);
+ }
+
+ if (linking && source_count) {
++ gcc_argv[i++] = "-Wl,--hash-style=gnu";
+#if defined __HAVE_ELF__ && ! defined __UCLIBC_HAS_MMU__
+ gcc_argv[i++] = "-Wl,-elf2flt";
+#endif
+ }
+ exit(EXIT_FAILURE);
+}
-diff -urN uClibc-0.9.26.org/extra/gcc-uClibc/Makefile uClibc-0.9.26/extra/gcc-uClibc/Makefile
---- uClibc-0.9.26.org/extra/gcc-uClibc/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc-0.9.26/extra/gcc-uClibc/Makefile 2004-01-25 16:06:22.372828491 +0100
-@@ -0,0 +1,90 @@
+diff -urN uClibc-0.9.29.org/extra/gcc-uClibc/Makefile uClibc-0.9.29/extra/gcc-uClibc/Makefile
+--- uClibc-0.9.29.org/extra/gcc-uClibc/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ uClibc-0.9.29/extra/gcc-uClibc/Makefile 2007-06-03 22:10:14.593807939 +0200
+@@ -0,0 +1,93 @@
+# Makefile for building a fake gcc/binutils toolchain
+# that simply spoofs the location of the C library
+#
+
+TOPDIR = ../../
+include $(TOPDIR)Rules.mak
++include $(TOPDIR)/.config
+
+UCLIBC_DIR = $(shell (cd ../.. ; /bin/pwd))
+GCC_BIN = $(shell which $(CC))
+ @echo "/* this file was autogenerated by make */" > gcc-uClibc.h
+ @echo "#define UCLIBC_TARGET_PREFIX " \"$(TARGET_PREFIX)\" >> gcc-uClibc.h
+ @echo "#define UCLIBC_DEVEL_PREFIX " \"$(DEVEL_PREFIX)\" >> gcc-uClibc.h
++ @echo "#define UCLIBC_RUNTIME_PREFIX " \"$(RUNTIME_PREFIX)\" >> gcc-uClibc.h
+ @echo "#define UCLIBC_BUILD_DIR " \"$(UCLIBC_DIR)\" >> gcc-uClibc.h
+ @echo "#define GCC_BIN " \"$(GCC_BIN)\" >> gcc-uClibc.h
+ @echo "#define LIBGCC_DIR " \"$(LIBGCC_DIR)\" >> gcc-uClibc.h
+ @echo "#define TARGET_ARCH " \"$(TARGET_ARCH)\" >> gcc-uClibc.h
-+ @echo "#define DYNAMIC_LINKER " \"$(DYNAMIC_LINKER)\" >> gcc-uClibc.h
++ @echo "#define DYNAMIC_LINKER " \"$(RUNTIME_PREFIX)/lib/$(UCLIBC_LDSO)\" >> gcc-uClibc.h
+ @echo "#define BUILD_DYNAMIC_LINKER " \"$(UCLIBC_DIR)/lib/$(UCLIBC_LDSO)\" >> gcc-uClibc.h
+ifeq ($(strip $(HAVE_SHARED)),y)
+ @echo "#define __UCLIBC_HAS_SHARED__ 1" >> gcc-uClibc.h
+
+gcc-uClibc: gcc-uClibc.h gcc-uClibc.c
+ $(HOSTCC) $(HOSTCFLAGS) -s gcc-uClibc.c -o $(TARGET_ARCH)-uclibc-gcc
++ touch gcc-uClibc
+
+ld-uClibc:
+ @echo "#!/bin/sh" > $(TARGET_ARCH)-uclibc-ld
+ @echo "# This file was autogenerated by make" >> $(TARGET_ARCH)-uclibc-ld
-+ @echo "$(LD_BIN) \$$@ -L$(DEVEL_PREFIX)/usr/lib -L$(DEVEL_PREFIX)/lib "\
-+ "-L$(UCLIBC_DIR)" >> $(TARGET_ARCH)-uclibc-ld
++ @echo "exec $(LD_BIN) \$$@ -L$(DEVEL_PREFIX)/lib" >> $(TARGET_ARCH)-uclibc-ld
+ chmod a+x $(TARGET_ARCH)-uclibc-ld
++ touch ld-uClibc
+
+install: all
+ install -d $(PREFIX)$(DEVEL_PREFIX)/bin;
+ ln -fs $(RUNTIME_PREFIX)/bin/$(TARGET_ARCH)-uclibc-gcc $(PREFIX)$(DEVEL_PREFIX)/bin/c++
+ ln -fs $(RUNTIME_PREFIX)/bin/$(TARGET_ARCH)-uclibc-gcc $(PREFIX)$(DEVEL_PREFIX)/bin/g++
+endif
-+ for app in addr2line ar as cpp gasp nm objcopy \
++ for app in addr2line ar as cpp nm objcopy \
+ objdump ranlib size strings strip; do \
+ APPNAME=`which $(CROSS)$${app}`; \
+ if [ -x "$$APPNAME" ] ; then \
+ rm -f gcc-uClibc.h *-uclibc-gcc *-uclibc-ld core
+
+
-diff -urN uClibc-0.9.26.org/extra/Makefile uClibc-0.9.26/extra/Makefile
---- uClibc-0.9.26.org/extra/Makefile 2004-01-25 15:20:33.050030242 +0100
-+++ uClibc-0.9.26/extra/Makefile 2004-01-25 16:02:02.133944484 +0100
-@@ -26,7 +26,7 @@
- LIBC=$(TOPDIR)libc.a
+--- uClibc-0.9.32/Makefile.in.orig 2011-06-08 21:35:20.000000000 +0200
++++ uClibc-0.9.32/Makefile.in 2011-06-12 09:20:09.634046086 +0200
+@@ -23,7 +23,7 @@
+ ifeq ($(HAVE_DOT_CONFIG),y)
--DIRS =
-+DIRS = gcc-uClibc
- EXTRA_DIRS_TO_CLEAN = config
+-all: pregen libs
++all: pregen libs toolchain
+ libs: pregen
- all: subdirs
-diff -urN uClibc-0.9.26.org/Makefile uClibc-0.9.26/Makefile
---- uClibc-0.9.26.org/Makefile 2004-01-25 15:20:32.825077096 +0100
-+++ uClibc-0.9.26/Makefile 2004-01-25 16:45:25.616652058 +0100
-@@ -28,7 +28,7 @@
- TOPDIR=./
- include Rules.mak
+ # In this section, we need .config
+@@ -192,7 +192,7 @@
+ HOSTCC="$(HOSTCC)" \
+ install_dev
--DIRS = ldso libc libcrypt libresolv libnsl libutil libm libpthread
-+DIRS = extra ldso libc libcrypt libresolv libnsl libutil libm libpthread
- ifeq ($(strip $(UCLIBC_HAS_GETTEXT_AWARENESS)),y)
- DIRS += libintl
- endif
-@@ -183,7 +183,7 @@
- tags:
- ctags -R
+-install: install_runtime install_dev
++install: install_runtime install_dev install_toolchain
--install: install_runtime install_dev finished2
-+install: install_runtime install_dev install_toolchain finished2
+ RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX)$(MULTILIB_DIR) $(RUNTIME_PREFIX)$(MULTILIB_DIR))
+@@ -405,6 +405,12 @@
- # Installs header files and development library links.
-@@ -302,6 +302,9 @@
- # $(INSTALL) -m 755 libc/misc/wchar/iconv.target $(PREFIX)$(RUNTIME_PREFIX)/usr/bin/iconv
- #endif
+ endif # ifeq ($(HAVE_DOT_CONFIG),y)
-+install_toolchain:
-+ $(MAKE) -C extra/gcc-uClibc install
++toolchain:
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C extra/gcc-uClibc
+
- finished2:
- @echo
- @echo Finished installing...
++install_toolchain: toolchain
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C extra/gcc-uClibc install
++
+ hostutils: | pregen
+ $(Q)$(MAKE) CROSS="$(CROSS)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils $@
+