patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
This is a workaround for
yann@1
     2
yann@1
     3
mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c  -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio  -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC   -DASSEMBLER   -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
yann@1
     4
../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
yann@1
     5
../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
yann@1
     6
make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
yann@1
     7
yann@1
     8
which was using h.j.lu's binutils-2.13.90.0.18.
yann@1
     9
yann@1
    10
yann@1
    11
But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
yann@1
    12
which says
yann@1
    13
"A newer version of binutils (CVS post 2003-03-12) fixes it without
yann@1
    14
the need of changing perfectly legal code."
yann@1
    15
So presumably this can be ditched sooner or later.
yann@1
    16
yann@1
    17
From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
yann@1
    18
yann@1
    19
2003-03-13  Guido Guenther  <agx@sigxcpu.org>
yann@1
    20
yann@1
    21
	* sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
yann@1
    22
	  .Lthread_start since current binutils don't allow branches to globally
yann@1
    23
	  visible symbols.
yann@1
    24
yann@1
    25
===================================================================
yann@1
    26
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
yann@1
    27
retrieving revision 1.10
yann@1
    28
diff -u -r1.10 clone.S
yann@1
    29
--- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 01:04:51 -0000	1.10
yann@1
    30
+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 19:04:39 -0000
yann@1
    31
@@ -63,7 +63,7 @@
yann@1
    32
 	syscall
yann@1
    33
 
yann@1
    34
 	bnez		a3,error
yann@1
    35
-	beqz		v0,__thread_start
yann@1
    36
+	beqz		v0,.Lthread_start
yann@1
    37
 
yann@1
    38
 	/* Successful return from the parent */
yann@1
    39
 	addiu		sp,32
yann@1
    40
@@ -85,6 +85,7 @@
yann@1
    41
    debug info.  */
yann@1
    42
 
yann@1
    43
 ENTRY(__thread_start)
yann@1
    44
+.Lthread_start:
yann@1
    45
 	/* cp is already loaded.  */
yann@1
    46
 	.cprestore	16
yann@1
    47
 	/* The stackframe has been created on entry of clone().  */