summaryrefslogtreecommitdiff
path: root/toolchain/uClibc
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/uClibc')
-rw-r--r--toolchain/uClibc/Makefile3
-rw-r--r--toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch39
2 files changed, 42 insertions, 0 deletions
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index bd1b6e8a3..d94bd982b 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -21,6 +21,9 @@ endif
ifeq ($(ADK_TARGET_ENDIAN),big)
UCLIBCCFG=uclibc.config.big
endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_CRIS),y)
+UCLIBCCFG=uclibc.config.v32
+endif
$(WRKBUILD)/.headers:
$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak
diff --git a/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch b/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch
new file mode 100644
index 000000000..3eb5b15c2
--- /dev/null
+++ b/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch
@@ -0,0 +1,39 @@
+SH provides a pt-initfini.c, so use that instead of
+libpthread/nptl/sysdeps/pthread/pt-initfini.c
+
+This prevents:
+ libpthread/nptl/sysdeps/pthread/crti.S: Assembler messages:
+ libpthread/nptl/sysdeps/pthread/crti.S:25: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:26: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:28: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:53: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:56: Error: pcrel too far
+ make[1]: *** [libpthread/nptl/sysdeps/pthread/crti.o] Error 1
+
+There is probably a better way to handle this... but since 9381d622e2411a35a5fd7
+I do not want to even try.
+
+--- uClibc-0.9.32/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-06-11 00:58:59.539341382 -0400
++++ uClibc-0.9.32/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-06-11 00:57:52.848172407 -0400
+@@ -76,12 +76,21 @@
+ ASFLAGS-crti.S = -g0
+ ASFLAGS-crtn.S = -g0
+
++ifneq ($(wildcard $(top_srcdir)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c),)
++$(libpthread_pthread_OUT)/pt-initfini.s: $(top_srcdir)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c
++ $(compile.c)
++$(libpthread_pthread_OUT)/defs.h: $(top_srcdir)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c
++ $(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
++ $(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
++ $(Q)mv $@.tmp $@
++else
+ $(libpthread_pthread_OUT)/pt-initfini.s: $(libpthread_pthread_DIR)/pt-initfini.c
+ $(compile.c)
+ $(libpthread_pthread_OUT)/defs.h: $(libpthread_pthread_DIR)/pt-initfini.c
+ $(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
+ $(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
+ $(Q)mv $@.tmp $@
++endif
+
+ $(libpthread_pthread_OUT)/crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
+ $(do_sed) -n -e '/[ ]*\.file/d' \