From 487096bf0bd5499b1d23ecbe5fd64f9f0079c0b5 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 20 Aug 2018 19:36:05 +0930 Subject: [PATCH] Delete NEWHOWTO and tidy some uses of reloc_howto_struct NEWHOWTO was promised way back in 1991 (git commit e5683622186). I doubt it's ever going to be implemented. This patch removes it, and tidies some reloc howtos. I was going to make some changes to reloc_howto_struct, so I think it's important that all relocs howtos are initialized with HOWTO. * reloc.c (HOWTO): Revise comment. (NEWHOWTO, HOWTO_PREPARE): Delete. * coff-arm.c (coff_arm_reloc_type_lookup): Replace const struc reloc_howto_struct with reloc_howto_type. * ns32knetbsd.c (MY_bfd_reloc_type_lookup): Likewise. * vms-alpha.c (alpha_vms_bfd_reloc_type_lookup): Likewise. * elf-hppa.h (HOW): Define. (elf_hppa_howto_table): Use it to simplify this table, correcting name of R_PARISC_LTOFF16WF, R_PARISC_LTOFF_FPTR64, and R_PARISC_LTOFF_FPTR16DF. * elf32-mep.c (MEPREL): Use HOWTO. * bfd-in2.h: Regenerate. --- bfd/ChangeLog | 15 + bfd/bfd-in2.h | 19 -- bfd/coff-arm.c | 2 +- bfd/elf-hppa.h | 742 ++++++++++++++++------------------------------ bfd/elf32-mep.c | 2 +- bfd/ns32knetbsd.c | 2 +- bfd/reloc.c | 31 +- bfd/vms-alpha.c | 2 +- 8 files changed, 271 insertions(+), 544 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2af1fc04e9a..f6dfda92b06 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +2018-08-21 Alan Modra + + * reloc.c (HOWTO): Revise comment. + (NEWHOWTO, HOWTO_PREPARE): Delete. + * coff-arm.c (coff_arm_reloc_type_lookup): Replace const struc + reloc_howto_struct with reloc_howto_type. + * ns32knetbsd.c (MY_bfd_reloc_type_lookup): Likewise. + * vms-alpha.c (alpha_vms_bfd_reloc_type_lookup): Likewise. + * elf-hppa.h (HOW): Define. + (elf_hppa_howto_table): Use it to simplify this table, correcting + name of R_PARISC_LTOFF16WF, R_PARISC_LTOFF_FPTR64, and + R_PARISC_LTOFF_FPTR16DF. + * elf32-mep.c (MEPREL): Use HOWTO. + * bfd-in2.h: Regenerate. + 2018-08-20 Alan Modra * mmo.c (valid_mmo_symbol_character_set): Initialize and make diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 58afff24c9f..617f2c9e04d 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2660,29 +2660,10 @@ struct reloc_howto_struct #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } -#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ - HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ - NAME, FALSE, 0, 0, IN) - #define EMPTY_HOWTO(C) \ HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ NULL, FALSE, 0, 0, FALSE) -#define HOWTO_PREPARE(relocation, symbol) \ - { \ - if (symbol != NULL) \ - { \ - if (bfd_is_com_section (symbol->section)) \ - { \ - relocation = 0; \ - } \ - else \ - { \ - relocation = symbol->value; \ - } \ - } \ - } - unsigned int bfd_get_reloc_size (reloc_howto_type *); typedef struct relent_chain diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c index f0e3e30128a..a07fc64febb 100644 --- a/bfd/coff-arm.c +++ b/bfd/coff-arm.c @@ -814,7 +814,7 @@ coff_thumb_pcrel_12 (bfd *abfd, b12); } -static const struct reloc_howto_struct * +static reloc_howto_type * coff_arm_reloc_type_lookup (bfd * abfd, bfd_reloc_code_real_type code) { #define ASTD(i,j) case i: return aoutarm_std_reloc_howto + j diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h index 5eac12996d1..9f34a030cc8 100644 --- a/bfd/elf-hppa.h +++ b/bfd/elf-hppa.h @@ -47,531 +47,289 @@ static reloc_howto_type elf_hppa_howto_table[ELF_HOWTO_TABLE_SIZE] = { - { R_PARISC_NONE, 0, 3, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_NONE", FALSE, 0, 0, FALSE }, +#define HOW(type, size, bitsize, pc_rel, complain, mask) \ + HOWTO (type, 0, size, bitsize, pc_rel, 0, complain_overflow_ ## complain, \ + bfd_elf_generic_reloc, #type, FALSE, 0, mask, FALSE) /* The values in DIR32 are to placate the check in _bfd_stab_section_find_nearest_line. */ - { R_PARISC_DIR32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR32", FALSE, 0, 0xffffffff, FALSE }, - { R_PARISC_DIR21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR21L", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR17R, 0, 2, 17, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR17R", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR17F, 0, 2, 17, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR17F", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14R", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_NONE, 3, 0, FALSE, dont, 0), + HOW (R_PARISC_DIR32, 2, 32, FALSE, bitfield, 0xffffffff), + HOW (R_PARISC_DIR21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_DIR17R, 2, 17, FALSE, bitfield, 0), + HOW (R_PARISC_DIR17F, 2, 17, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DIR14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DIR14F, 2, 14, FALSE, bitfield, 0), /* 8 */ - { R_PARISC_PCREL12F, 0, 2, 12, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL12F", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL32", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL21L, 0, 2, 21, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL21L", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL17R, 0, 2, 17, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL17R", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL17F, 0, 2, 17, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL17F", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL17C, 0, 2, 17, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL17C", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL14R, 0, 2, 14, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14R", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL14F, 0, 2, 14, TRUE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_PCREL12F, 2, 12, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL32, 2, 32, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL21L, 2, 21, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL17R, 2, 17, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL17F, 2, 17, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL17C, 2, 17, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL14R, 2, 14, TRUE, bitfield, 0), + HOW (R_PARISC_PCREL14F, 2, 14, TRUE, bitfield, 0), /* 16 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DPREL21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL21L", FALSE, 0, 0, FALSE }, - { R_PARISC_DPREL14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_DPREL14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DPREL14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14R", FALSE, 0, 0, FALSE }, - { R_PARISC_DPREL14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DPREL21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_DPREL14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DPREL14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DPREL14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DPREL14F, 2, 14, FALSE, bitfield, 0), /* 24 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTREL21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTREL14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14R", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTREL14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DLTREL21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DLTREL14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DLTREL14F, 2, 14, FALSE, bitfield, 0), /* 32 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTIND21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTIND14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14R", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTIND14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DLTIND21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DLTIND14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DLTIND14F, 2, 14, FALSE, bitfield, 0), /* 40 */ - { R_PARISC_SETBASE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SETBASE", FALSE, 0, 0, FALSE }, - { R_PARISC_SECREL32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SECREL32", FALSE, 0, 0xffffffff, FALSE }, - { R_PARISC_BASEREL21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL21L", FALSE, 0, 0, FALSE }, - { R_PARISC_BASEREL17R, 0, 2, 17, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL17R", FALSE, 0, 0, FALSE }, - { R_PARISC_BASEREL17F, 0, 2, 17, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL17F", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_BASEREL14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14R", FALSE, 0, 0, FALSE }, - { R_PARISC_BASEREL14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_SETBASE, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_SECREL32, 2, 32, FALSE, bitfield, 0xffffffff), + HOW (R_PARISC_BASEREL21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_BASEREL17R, 2, 17, FALSE, bitfield, 0), + HOW (R_PARISC_BASEREL17F, 2, 17, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_BASEREL14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_BASEREL14F, 2, 14, FALSE, bitfield, 0), /* 48 */ - { R_PARISC_SEGBASE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SEGBASE", FALSE, 0, 0, FALSE }, - { R_PARISC_SEGREL32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SEGREL32", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_SEGBASE, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_SEGREL32, 2, 32, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF14F, 2, 14, FALSE, bitfield, 0), /* 56 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR32, 2, 32, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 64 */ - { R_PARISC_FPTR64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_FPTR64", FALSE, 0, 0, FALSE }, - { R_PARISC_PLABEL32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLABEL32", FALSE, 0, 0, FALSE }, - { R_PARISC_PLABEL21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLABEL21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_PLABEL14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLABEL14R", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_FPTR64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_PLABEL32, 2, 32, FALSE, bitfield, 0), + HOW (R_PARISC_PLABEL21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_PLABEL14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 72 */ - { R_PARISC_PCREL64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL64", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL22C, 0, 2, 22, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL22C", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL22F, 0, 2, 22, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL22F", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL16F", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_PCREL16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_PCREL64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL22C, 2, 22, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL22F, 2, 22, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_PCREL16DF, 2, 16, FALSE, bitfield, 0), /* 80 */ - { R_PARISC_DIR64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR64", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR16F", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_DIR16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_DIR64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DIR14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DIR14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DIR16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_DIR16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_DIR16DF, 2, 16, FALSE, bitfield, 0), /* 88 */ - { R_PARISC_GPREL64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL64", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTREL14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTREL14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_GPREL16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL16F", FALSE, 0, 0, FALSE }, - { R_PARISC_GPREL16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_GPREL16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_GPREL64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DLTREL14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DLTREL14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_GPREL16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_GPREL16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_GPREL16DF, 2, 16, FALSE, bitfield, 0), /* 96 */ - { R_PARISC_LTOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF64", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTIND14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_DLTIND14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF16F", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_LTOFF64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_DLTIND14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_DLTIND14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF16DF, 2, 16, FALSE, bitfield, 0), /* 104 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_BASEREL14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_BASEREL14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_BASEREL14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_BASEREL14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 112 */ - { R_PARISC_SEGREL64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SEGREL64", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_PLTOFF16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_SEGREL64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_PLTOFF16DF, 2, 16, FALSE, bitfield, 0), /* 120 */ - { R_PARISC_LTOFF_FPTR64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_FPTR16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_LTOFF_FPTR64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_FPTR16DF, 2, 16, FALSE, bitfield, 0), /* 128 */ - { R_PARISC_COPY, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_COPY", FALSE, 0, 0, FALSE }, - { R_PARISC_IPLT, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_IPLT", FALSE, 0, 0, FALSE }, - { R_PARISC_EPLT, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_EPLT", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_COPY, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_IPLT, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_EPLT, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 136 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 144 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), /* 152 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL32, 0, 2, 32, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL32", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL14R", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_TPREL32, 2, 32, FALSE, dont, 0), + HOW (R_PARISC_TPREL21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_TPREL14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), /* 160 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14R", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP14F, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_LTOFF_TP21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_TP14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_TP14F, 2, 14, FALSE, bitfield, 0), /* 168 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 176 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 184 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), /* 192 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 200 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 208 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), /* 216 */ - { R_PARISC_TPREL64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL64", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL14WR, 0, 2, 14, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL16F, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL16F", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL16WF, 0, 2, 16, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_TPREL16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_TPREL64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_TPREL14WR, 2, 14, FALSE, dont, 0), + HOW (R_PARISC_TPREL14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_TPREL16F, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_TPREL16WF, 2, 16, FALSE, dont, 0), + HOW (R_PARISC_TPREL16DF, 2, 16, FALSE, bitfield, 0), /* 224 */ - { R_PARISC_LTOFF_TP64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP14WR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP14DR, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP16F, 0, 2, 16, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16F", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP16WF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF", FALSE, 0, 0, FALSE }, - { R_PARISC_LTOFF_TP16DF, 0, 2, 16, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_LTOFF_TP64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_UNIMPLEMENTED, 0, 0, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_TP14WR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_TP14DR, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_TP16F, 2, 16, FALSE, dont, 0), + HOW (R_PARISC_LTOFF_TP16WF, 2, 16, FALSE, bitfield, 0), + HOW (R_PARISC_LTOFF_TP16DF, 2, 16, FALSE, bitfield, 0), /* 232 */ - { R_PARISC_GNU_VTENTRY, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_GNU_VTENTRY", FALSE, 0, 0, FALSE }, - { R_PARISC_GNU_VTINHERIT, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_GNU_VTINHERIT", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_GD21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_GD21L", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_GD14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_GD14R", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_GDCALL, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TLS_GDCALL", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_LDM21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_LDM21L", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_LDM14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_LDM14R", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_LDMCALL, 0, 0, 0, FALSE, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TLS_LDMCALL", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_GNU_VTENTRY, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_GNU_VTINHERIT, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_TLS_GD21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_GD14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_GDCALL, 0, 0, FALSE, dont, 0), + HOW (R_PARISC_TLS_LDM21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_LDM14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_LDMCALL, 0, 0, FALSE, dont, 0), /* 240 */ - { R_PARISC_TLS_LDO21L, 0, 2, 21, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_LDO21L", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_LDO14R, 0, 2, 14, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_LDO14R", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_DTPMOD32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_DTPMOD32", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_DTPMOD64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_DTPMOD64", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_DTPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_DTPOFF32", FALSE, 0, 0, FALSE }, - { R_PARISC_TLS_DTPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TLS_DTPOFF64", FALSE, 0, 0, FALSE }, + HOW (R_PARISC_TLS_LDO21L, 2, 21, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_LDO14R, 2, 14, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_DTPMOD32, 2, 32, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_DTPMOD64, 4, 64, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_DTPOFF32, 2, 32, FALSE, bitfield, 0), + HOW (R_PARISC_TLS_DTPOFF64, 4, 64, FALSE, bitfield, 0) +#undef HOW }; #define OFFSET_14R_FROM_21L 4 diff --git a/bfd/elf32-mep.c b/bfd/elf32-mep.c index 5224d9abfa0..473e84c1c1f 100644 --- a/bfd/elf32-mep.c +++ b/bfd/elf32-mep.c @@ -30,7 +30,7 @@ /* Private relocation functions. */ #define MEPREL(type, size, bits, right, left, pcrel, overflow, mask) \ - {(unsigned)type, right, size, bits, pcrel, left, overflow, bfd_elf_generic_reloc, #type, FALSE, 0, mask, 0 } + HOWTO (type, right, size, bits, pcrel, left, overflow, bfd_elf_generic_reloc, #type, FALSE, 0, mask, 0) #define N complain_overflow_dont #define S complain_overflow_signed diff --git a/bfd/ns32knetbsd.c b/bfd/ns32knetbsd.c index cc6871c7e10..09d3323602a 100644 --- a/bfd/ns32knetbsd.c +++ b/bfd/ns32knetbsd.c @@ -48,6 +48,6 @@ #include "sysdep.h" #include "bfd.h" /* To ensure following declaration is OK. */ -const struct reloc_howto_struct * MY_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); +reloc_howto_type * MY_bfd_reloc_type_lookup (bfd *, bfd_reloc_code_real_type); #include "netbsd.h" diff --git a/bfd/reloc.c b/bfd/reloc.c index aaf3a801fdd..ec58a7e4af9 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -372,20 +372,12 @@ FUNCTION The HOWTO Macro DESCRIPTION - The HOWTO define is horrible and will go away. + The HOWTO macro fills in a reloc_howto_type (a typedef for + const struct reloc_howto_struct). .#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ . { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } -DESCRIPTION - And will be replaced with the totally magic way. But for the - moment, we are compatible, so do it this way. - -.#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ -. HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ -. NAME, FALSE, 0, 0, IN) -. - DESCRIPTION This is used to fill in an empty howto entry in an array. @@ -393,25 +385,6 @@ DESCRIPTION . HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ . NULL, FALSE, 0, 0, FALSE) . - -DESCRIPTION - Helper routine to turn a symbol into a relocation value. - -.#define HOWTO_PREPARE(relocation, symbol) \ -. { \ -. if (symbol != NULL) \ -. { \ -. if (bfd_is_com_section (symbol->section)) \ -. { \ -. relocation = 0; \ -. } \ -. else \ -. { \ -. relocation = symbol->value; \ -. } \ -. } \ -. } -. */ /* diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index 11817cfbec1..fc45260e49b 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -5601,7 +5601,7 @@ static reloc_howto_type alpha_howto_table[] = /* Return a pointer to a howto structure which, when invoked, will perform the relocation code on data from the architecture noted. */ -static const struct reloc_howto_struct * +static reloc_howto_type * alpha_vms_bfd_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real_type code) { -- 2.30.2