Line 1446... |
Line 1446... |
const char **functionname_ptr,
|
const char **functionname_ptr,
|
unsigned int *line_ptr)
|
unsigned int *line_ptr)
|
{
|
{
|
asection *msec;
|
asection *msec;
|
|
|
if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset,
|
if (_bfd_dwarf2_find_nearest_line (abfd, dwarf_debug_sections,
|
|
section, symbols, offset,
|
filename_ptr, functionname_ptr,
|
filename_ptr, functionname_ptr,
|
line_ptr, 0,
|
line_ptr, 0,
|
&elf_tdata (abfd)->dwarf2_find_line_info))
|
&elf_tdata (abfd)->dwarf2_find_line_info))
|
return TRUE;
|
return TRUE;
|
|
|
Line 4210... |
Line 4211... |
Elf_Internal_Sym *sym = NULL;
|
Elf_Internal_Sym *sym = NULL;
|
asection *sec = NULL;
|
asection *sec = NULL;
|
bfd_vma value;
|
bfd_vma value;
|
bfd_vma addend;
|
bfd_vma addend;
|
bfd_boolean dynamic_symbol_p;
|
bfd_boolean dynamic_symbol_p;
|
|
bfd_boolean unresolved_reloc = FALSE;
|
bfd_boolean undef_weak_ref = FALSE;
|
bfd_boolean undef_weak_ref = FALSE;
|
unsigned long r_type;
|
unsigned long r_type;
|
|
|
r_type = ELF64_R_TYPE(rel->r_info);
|
r_type = ELF64_R_TYPE(rel->r_info);
|
if (r_type >= R_ALPHA_max)
|
if (r_type >= R_ALPHA_max)
|
Line 4291... |
Line 4293... |
dynamic_symbol_p = FALSE;
|
dynamic_symbol_p = FALSE;
|
}
|
}
|
else
|
else
|
{
|
{
|
bfd_boolean warned;
|
bfd_boolean warned;
|
bfd_boolean unresolved_reloc;
|
|
struct elf_link_hash_entry *hh;
|
struct elf_link_hash_entry *hh;
|
struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
|
struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
|
|
|
RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
|
RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
|
r_symndx, symtab_hdr, sym_hashes,
|
r_symndx, symtab_hdr, sym_hashes,
|
Line 4524... |
Line 4525... |
dynaddend = value - dtp_base;
|
dynaddend = value - dtp_base;
|
}
|
}
|
else if (info->shared
|
else if (info->shared
|
&& r_symndx != STN_UNDEF
|
&& r_symndx != STN_UNDEF
|
&& (input_section->flags & SEC_ALLOC)
|
&& (input_section->flags & SEC_ALLOC)
|
&& !undef_weak_ref)
|
&& !undef_weak_ref
|
|
&& !(unresolved_reloc
|
|
&& (_bfd_elf_section_offset (output_bfd, info,
|
|
input_section,
|
|
rel->r_offset)
|
|
== (bfd_vma) -1)))
|
{
|
{
|
if (r_type == R_ALPHA_REFLONG)
|
if (r_type == R_ALPHA_REFLONG)
|
{
|
{
|
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
(_("%B: unhandled dynamic relocation against %s"),
|
(_("%B: unhandled dynamic relocation against %s"),
|
Line 4570... |
Line 4576... |
|
|
|
|
/* ??? .eh_frame references to discarded sections will be smashed
|
/* ??? .eh_frame references to discarded sections will be smashed
|
to relocations against SHN_UNDEF. The .eh_frame format allows
|
to relocations against SHN_UNDEF. The .eh_frame format allows
|
NULL to be encoded as 0 in any format, so this works here. */
|
NULL to be encoded as 0 in any format, so this works here. */
|
if (r_symndx == STN_UNDEF)
|
if (r_symndx == STN_UNDEF
|
|
|| (unresolved_reloc
|
|
&& _bfd_elf_section_offset (output_bfd, info,
|
|
input_section,
|
|
rel->r_offset) == (bfd_vma) -1))
|
howto = (elf64_alpha_howto_table
|
howto = (elf64_alpha_howto_table
|
+ (r_type - R_ALPHA_SREL32 + R_ALPHA_REFLONG));
|
+ (r_type - R_ALPHA_SREL32 + R_ALPHA_REFLONG));
|
goto default_reloc;
|
goto default_reloc;
|
|
|
case R_ALPHA_TLSLDM:
|
case R_ALPHA_TLSLDM:
|