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' \