* elf32-v850.c: Define elf_symbol_leading_char to be '_'.
authorStu Grossman <grossman@cygnus>
Tue, 15 Oct 1996 23:19:29 +0000 (23:19 +0000)
committerStu Grossman <grossman@cygnus>
Tue, 15 Oct 1996 23:19:29 +0000 (23:19 +0000)
bfd/ChangeLog
bfd/elf32-v850.c

index d2049ea85145bf2fc4f0ed4f5e1e3413c1c429c2..245b7bbec258a15397715e8f536de5ea37a21306 100644 (file)
@@ -1,3 +1,9 @@
+start-sanitize-v850
+Tue Oct 15 16:17:28 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+       * elf32-v850.c:  Define elf_symbol_leading_char to be '_'.
+
+end-sanitize-v850
 Tue Oct 15 12:40:41 1996  Ian Lance Taylor  <ian@cygnus.com>
 
        * VERSION: Bump for new relocation.
index 4c42d6d2985641937b5a7b062a31ec24b04d78bb..626a21daafb278c641c8b6c069741bc8463e64f2 100644 (file)
@@ -328,12 +328,14 @@ bfd_elf32_v850_reloc (abfd, reloc, symbol, data, isection, obfd, err)
        }
       else if (reloc->howto->type == R_V850_HI16_S)
        {
+         relocation += bfd_get_16 (abfd, (bfd_byte *) data + reloc->address);
          relocation = (relocation >> 16) + ((relocation & 0x8000) != 0);
          bfd_put_16 (abfd, relocation, (bfd_byte *)data + reloc->address);
          return bfd_reloc_ok;
        }
       else if (reloc->howto->type == R_V850_HI16)
        {
+         relocation += bfd_get_16 (abfd, (bfd_byte *) data + reloc->address);
          relocation = (relocation >> 16);
          bfd_put_16 (abfd, relocation, (bfd_byte *)data + reloc->address);
          return bfd_reloc_ok;
@@ -343,6 +345,21 @@ bfd_elf32_v850_reloc (abfd, reloc, symbol, data, isection, obfd, err)
   return bfd_reloc_continue;
 }
 
+static boolean bfd_elf32_v850_is_local_label PARAMS ((bfd *, asymbol *));
+
+/*ARGSUSED*/
+static boolean
+bfd_elf32_v850_is_local_label (abfd, symbol)
+     bfd *abfd;
+     asymbol *symbol;
+{
+  return ((symbol->name[0] == '.' && (symbol->name[1] == 'L' || symbol->name[1] == '.'))
+         || (symbol->name[0] == '_' && symbol->name[1] == '.' && symbol->name[2] == 'L'
+             && symbol->name[3] == '_'));
+}
+
+#define bfd_elf32_bfd_is_local_label   bfd_elf32_v850_is_local_label
+
 #define TARGET_LITTLE_SYM              bfd_elf32_v850_vec
 #define TARGET_LITTLE_NAME             "elf32-v850"
 #define ELF_ARCH               bfd_arch_v850
@@ -352,4 +369,6 @@ bfd_elf32_v850_reloc (abfd, reloc, symbol, data, isection, obfd, err)
 #define elf_info_to_howto      0
 #define elf_info_to_howto_rel  v850_info_to_howto_rel
 
+#define elf_symbol_leading_char '_'
+
 #include "elf32-target.h"