1.1 --- a/config/libc/uClibc.in Fri Dec 30 14:16:49 2011 +0100
1.2 +++ b/config/libc/uClibc.in Fri Dec 30 22:04:24 2011 +0100
1.3 @@ -21,6 +21,11 @@
1.4 # Don't remove next line
1.5 # CT_INSERT_VERSION_BELOW
1.6
1.7 +config LIBC_UCLIBC_V_0_9_32_1
1.8 + bool
1.9 + prompt "0.9.32.1"
1.10 + select LIBC_UCLIBC_0_9_32_or_later
1.11 +
1.12 config LIBC_UCLIBC_V_0_9_32
1.13 bool
1.14 prompt "0.9.32"
1.15 @@ -86,6 +91,7 @@
1.16 prompt "Enter date (YYYYMMDD)" if LIBC_UCLIBC_V_specific_date
1.17 # Don't remove next line
1.18 # CT_INSERT_VERSION_STRING_BELOW
1.19 + default "0.9.32.1" if LIBC_UCLIBC_V_0_9_32_1
1.20 default "0.9.32" if LIBC_UCLIBC_V_0_9_32
1.21 default "0.9.31" if LIBC_UCLIBC_V_0_9_31
1.22 default "0.9.30.3" if LIBC_UCLIBC_V_0_9_30_3
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/patches/uClibc/0.9.32.1/100-fix-TLS-DTPREL-TPREL-macros.patch Fri Dec 30 22:04:24 2011 +0100
2.3 @@ -0,0 +1,40 @@
2.4 +ldso/mips: workaround for missing TLS macros in elfinterpret.c
2.5 +
2.6 +These macros declarations are missing, so gcc believes the code is calling
2.7 +a function, so any later linking will fail.
2.8 +
2.9 +Work this around by copying the mcaros from:
2.10 + libpthread/nptl/sysdeps/mips/dl-tls.h
2.11 +
2.12 +We can't include the header because of incompatible symbol declarations,
2.13 +so we just copy the macros for now.
2.14 +
2.15 +----> THIS IS A DIRTY HACK! <----
2.16 +
2.17 +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2.18 +
2.19 +diff -durN uClibc-0.9.32.orig/ldso/ldso/mips/elfinterp.c uClibc-0.9.32/ldso/ldso/mips/elfinterp.c
2.20 +--- uClibc-0.9.32.orig/ldso/ldso/mips/elfinterp.c 2011-06-08 21:35:20.000000000 +0200
2.21 ++++ uClibc-0.9.32/ldso/ldso/mips/elfinterp.c 2011-09-12 14:02:37.553628824 +0200
2.22 +@@ -34,6 +34,21 @@
2.23 +
2.24 + #define OFFSET_GP_GOT 0x7ff0
2.25 +
2.26 ++/* The thread pointer points 0x7000 past the first static TLS block. */
2.27 ++#define TLS_TP_OFFSET 0x7000
2.28 ++
2.29 ++/* Dynamic thread vector pointers point 0x8000 past the start of each
2.30 ++ * TLS block. */
2.31 ++#define TLS_DTV_OFFSET 0x8000
2.32 ++
2.33 ++/* Compute the value for a GOTTPREL reloc. */
2.34 ++#define TLS_TPREL_VALUE(sym_map, sym_val) \
2.35 ++ ((sym_map)->l_tls_offset + sym_val - TLS_TP_OFFSET)
2.36 ++
2.37 ++/* Compute the value for a DTPREL reloc. */
2.38 ++#define TLS_DTPREL_VALUE(sym_val) \
2.39 ++ (sym_val - TLS_DTV_OFFSET)
2.40 ++
2.41 + unsigned long __dl_runtime_resolve(unsigned long sym_index,
2.42 + unsigned long old_gpreg)
2.43 + {