aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-sparc.c
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1993-07-19 19:12:59 +0000
committerKen Raeburn <raeburn@cygnus>1993-07-19 19:12:59 +0000
commit32090b8e4f645bb5c80e8ad9c38cdd21d5b7b7e0 (patch)
tree525fd70fd35bb281b1b49468ae28baa7a2b613d0 /bfd/elf64-sparc.c
parentda374d80433e0ed482abf11deb8e4c9fbd729b2c (diff)
downloadgdb-32090b8e4f645bb5c80e8ad9c38cdd21d5b7b7e0.zip
gdb-32090b8e4f645bb5c80e8ad9c38cdd21d5b7b7e0.tar.gz
gdb-32090b8e4f645bb5c80e8ad9c38cdd21d5b7b7e0.tar.bz2
* elf.c, elfcode.h, libelf.h: Serious reorganization.
Deleted `thunk' structure, merged into tdata, duplicate data eliminated. Rearranged functions, grouping by function. Broke up many functions in elfcode.h, re-ordered many parts of file writing to handle unpredictable state of section relocation table as provided by various applications. Still needs cleanup: Merge functions back together, split out data structure with only data that is used only when writing out object file. * elf.c (bfd_elf_generic_reloc): New function, taken from coff-mips.c. * elf32-sparc.c (elf_sparc_howto_table): Use it, to work around bfd_perform_relocation lossage.
Diffstat (limited to 'bfd/elf64-sparc.c')
-rw-r--r--bfd/elf64-sparc.c76
1 files changed, 38 insertions, 38 deletions
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index ab44fea..882a5aa 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -78,44 +78,44 @@ extern void abort ();
static reloc_howto_type elf_sparc_howto_table[] =
{
- HOWTO(R_SPARC_NONE, 0,0, 0,false,0,false,false, 0,"R_SPARC_NONE", false,0,0x00000000,false),
- HOWTO(R_SPARC_8, 0,0, 8,false,0,true, true, 0,"R_SPARC_8", false,0,0x000000ff,false),
- HOWTO(R_SPARC_16, 0,1,16,false,0,true, true, 0,"R_SPARC_16", false,0,0x0000ffff,false),
- HOWTO(R_SPARC_32, 0,2,32,false,0,true, true, 0,"R_SPARC_32", false,0,0xffffffff,false),
- HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,false, true, 0,"R_SPARC_DISP8", false,0,0x000000ff,false),
- HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,false, true, 0,"R_SPARC_DISP16", false,0,0x0000ffff,false),
- HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,false, true, 0,"R_SPARC_DISP32", false,0,0x00ffffff,false),
- HOWTO(R_SPARC_WDISP30,2,2,30,true, 0,false, true, 0,"R_SPARC_WDISP30",false,0,0x3fffffff,false),
- HOWTO(R_SPARC_WDISP22,2,2,22,true, 0,false, true, 0,"R_SPARC_WDISP22",false,0,0x003fffff,false),
- HOWTO(R_SPARC_HI22, 10,2,22,false,0,true, false, 0,"R_SPARC_HI22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_22, 0,2,22,false,0,true, true, 0,"R_SPARC_22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_13, 0,1,13,false,0,true, true, 0,"R_SPARC_13", false,0,0x00001fff,false),
- HOWTO(R_SPARC_LO10, 0,1,10,false,0,true, false, 0,"R_SPARC_LO10", false,0,0x000003ff,false),
- HOWTO(R_SPARC_GOT10, 0,1,10,false,0,false, true, 0,"R_SPARC_GOT10", false,0,0x000003ff,false),
- HOWTO(R_SPARC_GOT13, 0,1,13,false,0,false, true, 0,"R_SPARC_GOT13", false,0,0x00001fff,false),
- HOWTO(R_SPARC_GOT22, 10,2,22,false,0,false, true, 0,"R_SPARC_GOT22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_PC10, 0,1,10,false,0,true, true, 0,"R_SPARC_PC10", false,0,0x000003ff,false),
- HOWTO(R_SPARC_PC22, 0,2,22,false,0,true, true, 0,"R_SPARC_PC22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_WPLT30, 0,0,00,false,0,false,false, 0,"R_SPARC_WPLT30", false,0,0x00000000,false),
- HOWTO(R_SPARC_COPY, 0,0,00,false,0,false,false, 0,"R_SPARC_COPY", false,0,0x00000000,false),
- HOWTO(R_SPARC_GLOB_DAT,0,0,00,false,0,false,false,0,"R_SPARC_GLOB_DAT",false,0,0x00000000,false),
- HOWTO(R_SPARC_JMP_SLOT,0,0,00,false,0,false,false,0,"R_SPARC_JMP_SLOT",false,0,0x00000000,false),
- HOWTO(R_SPARC_RELATIVE,0,0,00,false,0,false,false,0,"R_SPARC_RELATIVE",false,0,0x00000000,false),
- HOWTO(R_SPARC_UA32, 0,0,00,false,0,false,false,0,"R_SPARC_UA32", false,0,0x00000000,false),
- HOWTO(R_SPARC_10, 0,1,10,false,0,true, true, 0, "R_SPARC_10", false,0,0x000003ff,false),
- HOWTO(R_SPARC_11, 0,1,11,false,0,true, true, 0,"R_SPARC_11", false,0,0x000007ff,false),
- HOWTO(R_SPARC_64, 0,4,00,false,0,true, true, 0,"R_SPARC_64", false,0,(((bfd_vma)0xffffffff)<<32)+0xffffffff,false),
- HOWTO(R_SPARC_OLO10, 0,1,10,false,0,true,false, DIE,"R_SPARC_OLO10",false,0,0x000003ff,false),
- HOWTO(R_SPARC_HH22, 42,2,22,false,0,true, false, 0,"R_SPARC_HH22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_HM10, 32,1,10,false,0,true,false, 0,"R_SPARC_HM10", false,0,0x000003ff,false),
- HOWTO(R_SPARC_LM22, 10,2,22,false,0,true,false, 0,"R_SPARC_LM22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_PC_HH22,42,2,22, true,0,true, false, 0,"R_SPARC_HH22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_PC_HM10,32,1,10, true,0,true,false, 0,"R_SPARC_HM10", false,0,0x000003ff,false),
- HOWTO(R_SPARC_PC_LM22,10,2,22,true, 0,true,false, 0,"R_SPARC_LM22", false,0,0x003fffff,false),
- HOWTO(R_SPARC_WDISP16, 2,2,16,true, 0,false, true,DIE,"R_SPARC_WDISP16",false,0,0,false),
- HOWTO(R_SPARC_WDISP19, 2,2,22,true, 0,false, true, 0, "R_SPARC_WDISP19",false,0,0x0007ffff,false),
- HOWTO(R_SPARC_GLOB_JMP,0,0,00,false,0,false,false,0,"R_SPARC_GLOB_DAT",false,0,0x00000000,false),
- HOWTO(R_SPARC_LO7, 0,1, 7,false,0,false,false,0,"R_SPARC_LO7", false,0,0x0000007f,false),
+ HOWTO(R_SPARC_NONE, 0,0, 0,false,0,false,false, &bfd_elf_generic_reloc,"R_SPARC_NONE", false,0,0x00000000,false),
+ HOWTO(R_SPARC_8, 0,0, 8,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_8", false,0,0x000000ff,false),
+ HOWTO(R_SPARC_16, 0,1,16,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_16", false,0,0x0000ffff,false),
+ HOWTO(R_SPARC_32, 0,2,32,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_32", false,0,0xffffffff,false),
+ HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,false, true, &bfd_elf_generic_reloc,"R_SPARC_DISP8", false,0,0x000000ff,false),
+ HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,false, true, &bfd_elf_generic_reloc,"R_SPARC_DISP16", false,0,0x0000ffff,false),
+ HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,false, true, &bfd_elf_generic_reloc,"R_SPARC_DISP32", false,0,0x00ffffff,false),
+ HOWTO(R_SPARC_WDISP30,2,2,30,true, 0,false, true, &bfd_elf_generic_reloc,"R_SPARC_WDISP30",false,0,0x3fffffff,true),
+ HOWTO(R_SPARC_WDISP22,2,2,22,true, 0,false, true, &bfd_elf_generic_reloc,"R_SPARC_WDISP22",false,0,0x003fffff,false),
+ HOWTO(R_SPARC_HI22, 10,2,22,false,0,true, false, &bfd_elf_generic_reloc,"R_SPARC_HI22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_22, 0,2,22,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_13, 0,1,13,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_13", false,0,0x00001fff,false),
+ HOWTO(R_SPARC_LO10, 0,1,10,false,0,true, false, &bfd_elf_generic_reloc,"R_SPARC_LO10", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_GOT10, 0,1,10,false,0,false, true, &bfd_elf_generic_reloc,"R_SPARC_GOT10", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_GOT13, 0,1,13,false,0,false, true, &bfd_elf_generic_reloc,"R_SPARC_GOT13", false,0,0x00001fff,false),
+ HOWTO(R_SPARC_GOT22, 10,2,22,false,0,false, true, &bfd_elf_generic_reloc,"R_SPARC_GOT22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_PC10, 0,1,10,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_PC10", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_PC22, 0,2,22,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_PC22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_WPLT30, 0,0,00,false,0,false,false, &bfd_elf_generic_reloc,"R_SPARC_WPLT30", false,0,0x00000000,false),
+ HOWTO(R_SPARC_COPY, 0,0,00,false,0,false,false, &bfd_elf_generic_reloc,"R_SPARC_COPY", false,0,0x00000000,false),
+ HOWTO(R_SPARC_GLOB_DAT,0,0,00,false,0,false,false,&bfd_elf_generic_reloc,"R_SPARC_GLOB_DAT",false,0,0x00000000,false),
+ HOWTO(R_SPARC_JMP_SLOT,0,0,00,false,0,false,false,&bfd_elf_generic_reloc,"R_SPARC_JMP_SLOT",false,0,0x00000000,false),
+ HOWTO(R_SPARC_RELATIVE,0,0,00,false,0,false,false,&bfd_elf_generic_reloc,"R_SPARC_RELATIVE",false,0,0x00000000,false),
+ HOWTO(R_SPARC_UA32, 0,0,00,false,0,false,false,&bfd_elf_generic_reloc,"R_SPARC_UA32", false,0,0x00000000,false),
+ HOWTO(R_SPARC_10, 0,1,10,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_10", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_11, 0,1,11,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_11", false,0,0x000007ff,false),
+ HOWTO(R_SPARC_64, 0,4,00,false,0,true, true, &bfd_elf_generic_reloc,"R_SPARC_64", false,0,(((bfd_vma)0xffffffff)<<32)+0xffffffff,false),
+ HOWTO(R_SPARC_OLO10, 0,1,10,false,0,true,false, &bfd_elf_generic_reloc,"R_SPARC_OLO10",false,0,0x000003ff,false),
+ HOWTO(R_SPARC_HH22, 42,2,22,false,0,true, false, &bfd_elf_generic_reloc,"R_SPARC_HH22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_HM10, 32,1,10,false,0,true,false, &bfd_elf_generic_reloc,"R_SPARC_HM10", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_LM22, 10,2,22,false,0,true,false, &bfd_elf_generic_reloc,"R_SPARC_LM22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_PC_HH22,42,2,22, true,0,true, false, &bfd_elf_generic_reloc,"R_SPARC_HH22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_PC_HM10,32,1,10, true,0,true,false, &bfd_elf_generic_reloc,"R_SPARC_HM10", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_PC_LM22,10,2,22,true, 0,true,false, &bfd_elf_generic_reloc,"R_SPARC_LM22", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_WDISP16, 2,2,16,true, 0,false, true,&bfd_elf_generic_reloc,"R_SPARC_WDISP16",false,0,0,false),
+ HOWTO(R_SPARC_WDISP19, 2,2,22,true, 0,false, true, &bfd_elf_generic_reloc,"R_SPARC_WDISP19",false,0,0x0007ffff,false),
+ HOWTO(R_SPARC_GLOB_JMP,0,0,00,false,0,false,false,&bfd_elf_generic_reloc,"R_SPARC_GLOB_DAT",false,0,0x00000000,false),
+ HOWTO(R_SPARC_LO7, 0,1, 7,false,0,false,false,&bfd_elf_generic_reloc,"R_SPARC_LO7", false,0,0x0000007f,false),
};
struct elf_reloc_map {