Line 1... |
Line 1... |
/* SPARC-specific support for 64-bit ELF
|
/* SPARC-specific support for 64-bit ELF
|
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
|
|
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
|
|
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
Line 536... |
Line 536... |
which we cannot easily keep in the symbol hash table. */
|
which we cannot easily keep in the symbol hash table. */
|
|
|
static bfd_boolean
|
static bfd_boolean
|
elf64_sparc_output_arch_syms (bfd *output_bfd ATTRIBUTE_UNUSED,
|
elf64_sparc_output_arch_syms (bfd *output_bfd ATTRIBUTE_UNUSED,
|
struct bfd_link_info *info,
|
struct bfd_link_info *info,
|
PTR finfo, bfd_boolean (*func) (PTR, const char *,
|
PTR finfo,
|
|
int (*func) (PTR, const char *,
|
Elf_Internal_Sym *,
|
Elf_Internal_Sym *,
|
asection *,
|
asection *,
|
struct elf_link_hash_entry *))
|
struct elf_link_hash_entry *))
|
{
|
{
|
int reg;
|
int reg;
|
Line 583... |
Line 584... |
sym.st_value = reg < 2 ? reg + 2 : reg + 4;
|
sym.st_value = reg < 2 ? reg + 2 : reg + 4;
|
sym.st_size = 0;
|
sym.st_size = 0;
|
sym.st_other = 0;
|
sym.st_other = 0;
|
sym.st_info = ELF_ST_INFO (app_regs [reg].bind, STT_REGISTER);
|
sym.st_info = ELF_ST_INFO (app_regs [reg].bind, STT_REGISTER);
|
sym.st_shndx = app_regs [reg].shndx;
|
sym.st_shndx = app_regs [reg].shndx;
|
if (! (*func) (finfo, app_regs [reg].name, &sym,
|
if ((*func) (finfo, app_regs [reg].name, &sym,
|
sym.st_shndx == SHN_ABS
|
sym.st_shndx == SHN_ABS
|
? bfd_abs_section_ptr : bfd_und_section_ptr,
|
? bfd_abs_section_ptr : bfd_und_section_ptr,
|
NULL))
|
NULL) != 1)
|
return FALSE;
|
return FALSE;
|
}
|
}
|
|
|
return TRUE;
|
return TRUE;
|
}
|
}
|