Remove our custom ELF branding -- we have moved to our own ELF vectors

that DTRT.
This commit is contained in:
obrien 2002-12-02 09:22:58 +00:00
parent 0f84a0d91d
commit 0aba58f39d
2 changed files with 38 additions and 41 deletions

View File

@ -506,11 +506,7 @@ elf_i386_grok_psinfo (abfd, note)
/* The name of the dynamic interpreter. This is put in the .interp
section. */
#ifndef ELF_DYNAMIC_INTERPRETER
#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
#endif
/* The size in bytes of an entry in the procedure linkage table. */
@ -2622,36 +2618,40 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
BFD_ASSERT (rel->r_offset >= 1);
val = bfd_get_8 (input_bfd, contents + rel->r_offset - 1);
BFD_ASSERT (rel->r_offset + 4 <= input_section->_raw_size);
if (val != 0xa1)
{
BFD_ASSERT (rel->r_offset >= 2);
type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2);
}
if (val == 0xa1)
{
/* movl foo, %eax. */
bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 2);
}
else if (type == 0x8b)
{
/* movl */
BFD_ASSERT ((val & 0xc7) == 0x05);
bfd_put_8 (output_bfd, 0xc7,
contents + rel->r_offset - 2);
bfd_put_8 (output_bfd, 0xc0 | ((val >> 3) & 7),
contents + rel->r_offset - 1);
}
else if (type == 0x03)
{
/* addl */
BFD_ASSERT ((val & 0xc7) == 0x05);
bfd_put_8 (output_bfd, 0x81,
contents + rel->r_offset - 2);
bfd_put_8 (output_bfd, 0xc0 | ((val >> 3) & 7),
contents + rel->r_offset - 1);
bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 1);
}
else
BFD_FAIL ();
{
BFD_ASSERT (rel->r_offset >= 2);
type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2);
switch (type)
{
case 0x8b:
/* movl */
BFD_ASSERT ((val & 0xc7) == 0x05);
bfd_put_8 (output_bfd, 0xc7,
contents + rel->r_offset - 2);
bfd_put_8 (output_bfd,
0xc0 | ((val >> 3) & 7),
contents + rel->r_offset - 1);
break;
case 0x03:
/* addl */
BFD_ASSERT ((val & 0xc7) == 0x05);
bfd_put_8 (output_bfd, 0x81,
contents + rel->r_offset - 2);
bfd_put_8 (output_bfd,
0xc0 | ((val >> 3) & 7),
contents + rel->r_offset - 1);
break;
default:
BFD_FAIL ();
break;
}
}
bfd_put_32 (output_bfd, -tpoff (info, relocation),
contents + rel->r_offset);
continue;
@ -3390,6 +3390,4 @@ elf_i386_finish_dynamic_sections (output_bfd, info)
#define elf_backend_relocate_section elf_i386_relocate_section
#define elf_backend_size_dynamic_sections elf_i386_size_dynamic_sections
#ifndef ELF32_I386_C_INCLUDED
#include "elf32-target.h"
#endif

View File

@ -2317,9 +2317,7 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
#define MAX_GOT_SIZE (64*1024)
#ifndef ELF_DYNAMIC_INTERPRETER
#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so"
#endif
/* Handle an Alpha specific section when reading an object file. This
is called when elfcode.h finds a section with an unknown type.
@ -2484,6 +2482,7 @@ elf64_alpha_create_dynamic_sections (abfd, info)
{
asection *s;
struct elf_link_hash_entry *h;
struct bfd_link_hash_entry *bh;
/* We need to create .plt, .rela.plt, .got, and .rela.got sections. */
@ -2499,13 +2498,13 @@ elf64_alpha_create_dynamic_sections (abfd, info)
/* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
.plt section. */
h = NULL;
bh = NULL;
if (! (_bfd_generic_link_add_one_symbol
(info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
(bfd_vma) 0, (const char *) NULL, false,
get_elf_backend_data (abfd)->collect,
(struct bfd_link_hash_entry **) &h)))
get_elf_backend_data (abfd)->collect, &bh)))
return false;
h = (struct elf_link_hash_entry *) bh;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
h->type = STT_OBJECT;
@ -2543,13 +2542,13 @@ elf64_alpha_create_dynamic_sections (abfd, info)
dynobj's .got section. We don't do this in the linker script
because we don't want to define the symbol if we are not creating
a global offset table. */
h = NULL;
bh = NULL;
if (!(_bfd_generic_link_add_one_symbol
(info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL,
alpha_elf_tdata(abfd)->got, (bfd_vma) 0, (const char *) NULL,
false, get_elf_backend_data (abfd)->collect,
(struct bfd_link_hash_entry **) &h)))
false, get_elf_backend_data (abfd)->collect, &bh)))
return false;
h = (struct elf_link_hash_entry *) bh;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
h->type = STT_OBJECT;
@ -3103,7 +3102,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
case R_ALPHA_REFLONG:
case R_ALPHA_REFQUAD:
if (info->shared || maybe_dynamic)
if ((info->shared && (sec->flags & SEC_ALLOC)) || maybe_dynamic)
need = NEED_DYNREL;
break;
@ -4580,7 +4579,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
case STO_ALPHA_NOPV:
break;
case STO_ALPHA_STD_GPLOAD:
addend += 8;
value += 8;
break;
default:
if (h != NULL)