aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1996-10-15 23:19:29 +0000
committerStu Grossman <grossman@cygnus>1996-10-15 23:19:29 +0000
commit1336da39bdff0b483b302de0ec43f482a6d770a9 (patch)
tree12e99884ce5bd6981c0ce5f53acb1cbbdb0c05d3 /bfd
parent03e2a8c8a0a5cebf068c6bde3a643ba58390fa43 (diff)
downloadgdb-1336da39bdff0b483b302de0ec43f482a6d770a9.zip
gdb-1336da39bdff0b483b302de0ec43f482a6d770a9.tar.gz
gdb-1336da39bdff0b483b302de0ec43f482a6d770a9.tar.bz2
* elf32-v850.c: Define elf_symbol_leading_char to be '_'.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-v850.c19
2 files changed, 25 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d2049ea..245b7bb 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 4c42d6d..626a21d 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -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"