bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mips-elf-as problem - Can not represent BFD_RELOC_16_PCREL_S2 relocatio


From: Fred Fish
Subject: mips-elf-as problem - Can not represent BFD_RELOC_16_PCREL_S2 relocation...
Date: Mon, 30 Dec 2002 13:00:25 -0700 (MST)

I just updated a mips toolchain to the latest binutils (as of this
morning) and found a regression.  I narrowed it down to this code
example:

        .globl outbyte
  outbyte:
        beqz $2,outbyte

When configured for mips-elf, the assembler produces:

  bug.s:3: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this 
object file format

I backtracked it to tc_gen_reloc() in tc-mips.c:

  /* To support a PC relative reloc when generating embedded PIC code
     for ECOFF, we use a Cygnus extension.  We check for that here to
     make sure that we don't let such a reloc escape normally.  */
  if ((OUTPUT_FLAVOR == bfd_target_ecoff_flavour
       || OUTPUT_FLAVOR == bfd_target_elf_flavour)
      && code == BFD_RELOC_16_PCREL_S2
      && mips_pic != EMBEDDED_PIC)
    reloc->howto = NULL;
  else
    reloc->howto = bfd_reloc_type_lookup (stdoutput, code);

  if (reloc->howto == NULL)
    {
      as_bad_where (fixp->fx_file, fixp->fx_line,
                    _("Can not represent %s relocation in this object file 
format"),
                    bfd_get_reloc_code_name (code));
      retval[0] = NULL;
    }

Using a previous binutils build that does not exhibit the problem
shows that "code" used to be BFD_RELOC_16_PCREL, but is now
BFD_RELOC_16_PCREL_S2.

-Fred



reply via email to

[Prev in Thread] Current Thread [Next in Thread]