Subject: Re: binutils 2.9.1 TESTERS NEEDED
To: Todd Vierling <tv@pobox.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: current-users
Date: 02/05/1999 02:17:05
In message <Pine.NEB.4.05.9902022015480.8387-100000@duhnet.net>,
Todd Vierling writes:


>STILL TO BE TESTED:

ld.new and gas.new aren't built by default anymore on mips platforms,
though: was that an oversight?

Otherwise: on mips, binutils, ld, and gas seem to work mostly okay.
(We've been using an FSF/Cygnus 2.9.1 build to resolve differences,
and i havent found any breakage that wasn't already broken with 2.9.1).

There's a bug _somewhere_ in the toolchain that breaks printing
numbers.  Building egcs without Haifa fixed that, originally, but it
seens to've sneaked back in. but htis happens with both the 2.8
binutils and the 2.9.1, so I dont think that's the problem here.


One fix needed for mips turns off the warnings for elf symbol types
`changing' during a link. Without this, ld emits a warning for every
program that references _gp_disp (he symbol type changes from 1 to 3)
, and for every(?) forward reference to a function (changes from 1 to
2).  (Erik Bertelsen ran into this; the same problem exists in stock
Cygnus binutils-2.9.1, and hte maintainer says it's a holdover
from development debugging.
Here's a patch that shuts up the known-harmless cases.


--- src/gnu/dist/bfd/elflink.h.DIST	Wed Feb  3 04:09:08 1999
+++ src/gnu/dist/bfd/elflink.h	Thu Feb  4 19:59:23 1999
@@ -1297,7 +1297,10 @@
 	    {
 	      if (h->type != STT_NOTYPE
 		  && h->type != ELF_ST_TYPE (sym.st_info)
-		  && ! type_change_ok)
+		  && ! type_change_ok
+		  /* Ignore  changes from data to text or _gp_disp */
+  		  && !(h->type == STT_OBJECT && 
+		       ELF_ST_TYPE (sym.st_info) <= STT_SECTION))
 		(*_bfd_error_handler)
 		  ("Warning: type of symbol `%s' changed from %d to %d in %s",
 		   name, h->type, ELF_ST_TYPE (sym.st_info),