summaryrefslogtreecommitdiff
path: root/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch
blob: 3eb5b15c26fffda9c67f9d24d9e2c3b4977ef390 (plain)
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
35
36
37
38
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' \