This is the mail archive of the binutils@sources.redhat.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]

Re: binutils 2.11.2 sh-coff asserts building gcc 3.0-cvs




Nick Clifton wrote:
> 
> Hi Michael,
> 
> > libgcc2.s:14: Error: Cannot represent relocation type BFD_RELOC_32
> > libgcc2.s:15: Internal error!
> > Assertion failure in tc_gen_reloc at /usr/local/src/gnu/binutils-cvs/src/gas/config/tc-sh.c line 3353.
> > Please report this bug.
> 
> Hmm, I am not sure what is going on here.  It appears that the coff-sh
> target does not support any relocs in its binaries.  This seems rather
> strange to me, but I do not know if this is intended or not.
> 
> Anyway the patch below will make the error above go away, but I doubt
> if it is really the right thing to do.  You can try it if you like.
> IF it works, let me know.

Other than being able to bootstrap gcc completely, how would one know if
it worked?  

--joel

> Cheers
>         Nick
> 
> 2001-07-11  Nick Clifton  <nickc@cambridge.redhat.com>
> 
>         * coff-sh.c (sh_coff_reloc_type_lookup): Provide for sh-coff
>         targets as well as sh-pe.
> 
> Index: bfd/coff-sh.c
> ===================================================================
> RCS file: /cvs/src/src/bfd/coff-sh.c,v
> retrieving revision 1.15
> diff -w -p -r1.15 coff-sh.c
> *** coff-sh.c   2001/03/08 21:03:57     1.15
> --- coff-sh.c   2001/07/11 11:22:58
> *************** Foundation, Inc., 59 Temple Place - Suit
> *** 24,29 ****
> --- 24,30 ----
>   #include "bfd.h"
>   #include "sysdep.h"
>   #include "libbfd.h"
> + #include "libiberty.h"
>   #include "bfdlink.h"
>   #include "coff/sh.h"
>   #include "coff/internal.h"
> *************** coff_sh_rtype_to_howto (abfd, sec, rel,
> *** 460,465 ****
> --- 461,468 ----
>     return howto;
>   }
> 
> + #endif /* COFF_WITH_PE */
> +
>   /* This structure is used to map BFD reloc codes to SH PE relocs.  */
>   struct shcoff_reloc_map
>   {
> *************** sh_coff_reloc_type_lookup (abfd, code)
> *** 486,501 ****
>   {
>     unsigned int i;
> 
> !   for (i = 0; i < sizeof (sh_reloc_map) / sizeof (struct shcoff_reloc_map); i++)
> !     {
>         if (sh_reloc_map[i].bfd_reloc_val == code)
>         return &sh_coff_howtos[(int) sh_reloc_map[i].shcoff_reloc_val];
> -     }
> 
>     fprintf (stderr, "SH Error: unknown reloc type %d\n", code);
>     return NULL;
>   }
> - #endif /* COFF_WITH_PE */
> 
>   /* This macro is used in coffcode.h to get the howto corresponding to
>      an internal reloc.  */
> --- 489,501 ----
>   {
>     unsigned int i;
> 
> !   for (i = ARRAY_SIZE (sh_reloc_map); i--;)
>       if (sh_reloc_map[i].bfd_reloc_val == code)
>         return &sh_coff_howtos[(int) sh_reloc_map[i].shcoff_reloc_val];
> 
>     fprintf (stderr, "SH Error: unknown reloc type %d\n", code);
>     return NULL;
>   }
> 
>   /* This macro is used in coffcode.h to get the howto corresponding to
>      an internal reloc.  */

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel@OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985


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