From 7b58591634b646821040def0d25083ae86bc1179 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 28 Jan 1999 17:17:17 +0000 Subject: [PATCH] Add support for ZVTINHERIT and VTENTRY relocs. --- bfd/ChangeLog | 5 +++++ bfd/elf32-fr30.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 50b246c44c8..ecbcbaca5fb 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +1999-01-28 Nick Clifton + + * elf32-fr30.c (fr30_reloc_map): Add R_FR30_GNU_VTINHERIT and + R_FR30_GNU_VTENTRY relocs. + Thu Jan 28 11:08:16 1999 Catherine Moore * elflink.h (elf_link_output_sym): Zero syms which are diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c index 3cd100fba7b..8bd5b91c1b5 100644 --- a/bfd/elf32-fr30.c +++ b/bfd/elf32-fr30.c @@ -203,6 +203,36 @@ static reloc_howto_type fr30_elf_howto_table [] = 0x0000, /* src_mask */ 0x07ff, /* dst_mask */ false), /* pcrel_offset */ + /* GNU extension to record C++ vtable hierarchy */ + HOWTO (R_FR30_GNU_VTINHERIT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + NULL, /* special_function */ + "R_FR30_GNU_VTINHERIT", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + false), /* pcrel_offset */ + + /* GNU extension to record C++ vtable member usage */ + HOWTO (R_FR30_GNU_VTENTRY, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_elf_rel_vtable_reloc_fn, /* special_function */ + "R_FR30_GNU_VTENTRY", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + false), /* pcrel_offset */ + }; /* Utility to actually perform an R_FR30_20 reloc. */ @@ -313,6 +343,8 @@ static const struct fr30_reloc_map fr30_reloc_map [] = { BFD_RELOC_FR30_10_IN_8, R_FR30_10_IN_8 }, { BFD_RELOC_FR30_9_PCREL, R_FR30_9_PCREL }, { BFD_RELOC_FR30_12_PCREL, R_FR30_12_PCREL }, + { BFD_RELOC_VTABLE_INHERIT, R_FR30_GNU_VTINHERIT }, + { BFD_RELOC_VTABLE_ENTRY, R_FR30_GNU_VTENTRY }, }; static reloc_howto_type * -- 2.30.2