This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Change got[1] flag for MIPS



Last August there was a discussion on the binutils list started by
Ralf Baechle about "elf32-mips breaks binary compatibility" (see
<http://sourceware.cygnus.com/ml/binutils/1999-q3/msg00446.html>).

I propose to add the following patch to binutils (I discussed the
patch with Ralf).  glibc needs also to be changed (the patch is small
and easy).  This way we get binary compatibility with older binutils
again.

Andreas

2000-04-04  Andreas Jaeger  <aj@suse.de>

	* elf32-mips.c (_bfd_mips_elf_finish_dynamic_sections): Change
	value of got[1] to mark this as a file generated by new binutils.


Index: bfd/elf32-mips.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-mips.c,v
retrieving revision 1.60
diff -u -p -r1.60 elf32-mips.c
--- elf32-mips.c	2000/03/11 02:23:10	1.60
+++ elf32-mips.c	2000/04/05 01:21:58
@@ -8668,7 +8668,15 @@ _bfd_mips_elf_finish_dynamic_sections (o
   if (sgot != NULL && sgot->_raw_size > 0)
     {
       MIPS_ELF_PUT_WORD (output_bfd, (bfd_vma) 0, sgot->contents);
-      MIPS_ELF_PUT_WORD (output_bfd, (bfd_vma) 0x80000000, 
+      /* Older binutils used to write 0x80000000.  The value has been
+	 changed to signal that newer binutils are used.  We do need
+	 to differentiate because older binutils generated some wrong
+	 relocations - and the dynamic linker has to work around this.
+	 Since this bug is fixed, the workaround has to be disabled.
+	 For details see the thread "elf32-mips breaks binary
+	 compatibility" at
+	 <http://sourceware.cygnus.com/ml/binutils/1999-q3/msg00446.html>. */
+      MIPS_ELF_PUT_WORD (output_bfd, (bfd_vma) 0xC0000000, 
 			 sgot->contents + MIPS_ELF_GOT_SIZE (output_bfd));
     }
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]