[RFA] MIPS_TEXT symbols should be associated to .text section?

Joel Brobecker brobecker@gnat.com
Fri Jul 30 23:03:00 GMT 2004


Thiemo,

> I prefer the first. Please test this patch.

I successfully tested this patch using the following testsuites:
  - binutils
  - libiberty
  - gas
  - ld
without any regression.

I also verified that the problem fixes the GDB problem on IRIX,
and ran the gdb-testsuite with success as well.

I think we can commit this patch :-). I have write privs, if this
can save you a couple minutes.

> Index: bfd/elfxx-mips.c
> ===================================================================
> RCS file: /cvs/src/src/bfd/elfxx-mips.c,v
> retrieving revision 1.106
> diff -u -p -r1.106 elfxx-mips.c
> --- bfd/elfxx-mips.c	1 Jul 2004 14:53:40 -0000	1.106
> +++ bfd/elfxx-mips.c	30 Jul 2004 18:53:18 -0000
> @@ -4192,15 +4192,37 @@ _bfd_mips_elf_symbol_processing (bfd *ab
>        asym->section = bfd_und_section_ptr;
>        break;
>  
> -#if 0 /* for SGI_COMPAT */
>      case SHN_MIPS_TEXT:
> -      asym->section = mips_elf_text_section_ptr;
> +      {
> +	asection *section = bfd_get_section_by_name (abfd, ".text");
> +
> +	BFD_ASSERT (SGI_COMPAT (abfd));
> +	if (section != NULL)
> +	  {
> +	    asym->section = section;
> +	    /* MIPS_TEXT is a bit special, the address is not an offset
> +	       to the base of the .text section.  So substract the section
> +	       base address to make it an offset.  */
> +	    asym->value -= section->vma;
> +	  }
> +      }
>        break;
>  
>      case SHN_MIPS_DATA:
> -      asym->section = mips_elf_data_section_ptr;
> +      {
> +	asection *section = bfd_get_section_by_name (abfd, ".data");
> +
> +	BFD_ASSERT (SGI_COMPAT (abfd));
> +	if (section != NULL)
> +	  {
> +	    asym->section = section;
> +	    /* MIPS_DATA is a bit special, the address is not an offset
> +	       to the base of the .data section.  So substract the section
> +	       base address to make it an offset.  */
> +	    asym->value -= section->vma;
> +	  }
> +      }
>        break;
> -#endif
>      }
>  }
>  

Thanks,
-- 
Joel



More information about the Gdb-patches mailing list