mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
2000-05-04 Michael Snyder <msnyder@seadog.cygnus.com>
* elf.c (bfd_elf_get_arch_size): New function, return 32 | 64 | -1. * bfd-in.h: Prototype bfd_elf_get_arch_size. * bfd-in2.h: Prototype bfd_elf_get_arch_size.
This commit is contained in:
parent
318b21ef35
commit
3425c18298
@ -1,3 +1,9 @@
|
||||
2000-05-04 Michael Snyder <msnyder@seadog.cygnus.com>
|
||||
|
||||
* elf.c (bfd_elf_get_arch_size): New function, return 32 | 64 | -1.
|
||||
* bfd-in.h: Prototype bfd_elf_get_arch_size.
|
||||
* bfd-in2.h: Prototype bfd_elf_get_arch_size.
|
||||
|
||||
2000-05-04 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* libhppa.h (HPPA_R_CONSTANT): Cast argument to bfd_signed_vma.
|
||||
|
@ -640,6 +640,9 @@ extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
|
||||
error occurs; bfd_get_error will return an appropriate code. */
|
||||
extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs));
|
||||
|
||||
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
|
||||
extern int bfd_elf_get_arch_size PARAMS ((bfd *));
|
||||
|
||||
/* SunOS shared library support routines for the linker. */
|
||||
|
||||
extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
|
||||
|
@ -640,6 +640,9 @@ extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
|
||||
error occurs; bfd_get_error will return an appropriate code. */
|
||||
extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs));
|
||||
|
||||
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
|
||||
extern int bfd_elf_get_arch_size PARAMS ((bfd *));
|
||||
|
||||
/* SunOS shared library support routines for the linker. */
|
||||
|
||||
extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
|
||||
|
21
bfd/elf.c
21
bfd/elf.c
@ -1752,6 +1752,22 @@ elf_fake_sections (abfd, asect, failedptrarg)
|
||||
*failedptr = true;
|
||||
}
|
||||
|
||||
/* Get elf arch size (32 / 64).
|
||||
Returns -1 if not elf. */
|
||||
|
||||
int
|
||||
bfd_elf_get_arch_size (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
if (abfd->xvec->flavour != bfd_target_elf_flavour)
|
||||
{
|
||||
bfd_set_error (bfd_error_wrong_format);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return (get_elf_backend_data (abfd))->s->arch_size;
|
||||
}
|
||||
|
||||
/* Assign all ELF section numbers. The dummy first section is handled here
|
||||
too. The link/info pointers for the standard section types are filled
|
||||
in here too, while we're at it. */
|
||||
@ -1764,7 +1780,6 @@ assign_section_numbers (abfd)
|
||||
asection *sec;
|
||||
unsigned int section_number;
|
||||
Elf_Internal_Shdr **i_shdrp;
|
||||
struct elf_backend_data *bed = get_elf_backend_data (abfd);
|
||||
|
||||
section_number = 1;
|
||||
|
||||
@ -1899,7 +1914,7 @@ assign_section_numbers (abfd)
|
||||
|
||||
/* This is a .stab section. */
|
||||
elf_section_data (s)->this_hdr.sh_entsize =
|
||||
4 + 2 * (bed->s->arch_size / 8);
|
||||
4 + 2 * bfd_elf_get_arch_size (abfd) / 8;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -3226,7 +3241,7 @@ prep_headers (abfd)
|
||||
i_ehdrp->e_machine = EM_NONE;
|
||||
break;
|
||||
case bfd_arch_sparc:
|
||||
if (bed->s->arch_size == 64)
|
||||
if (bfd_elf_get_arch_size (abfd) == 64)
|
||||
i_ehdrp->e_machine = EM_SPARCV9;
|
||||
else
|
||||
i_ehdrp->e_machine = EM_SPARC;
|
||||
|
Loading…
Reference in New Issue
Block a user