mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 22:48:57 +08:00
2000-09-07 Kazu Hirata <kazu@hxi.com>
* elf.c: Fix formatting.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2000-09-07 Kazu Hirata <kazu@hxi.com>
|
||||||
|
|
||||||
|
* elf.c: Fix formatting.
|
||||||
|
|
||||||
2000-09-07 Alexandre Oliva <aoliva@redhat.com>
|
2000-09-07 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* config.bfd (sh-*-linux*): Added.
|
* config.bfd (sh-*-linux*): Added.
|
||||||
|
50
bfd/elf.c
50
bfd/elf.c
@ -256,13 +256,13 @@ boolean
|
|||||||
bfd_elf_mkobject (abfd)
|
bfd_elf_mkobject (abfd)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
{
|
{
|
||||||
/* this just does initialization */
|
/* This just does initialization. */
|
||||||
/* coff_mkobject zalloc's space for tdata.coff_obj_data ... */
|
/* coff_mkobject zalloc's space for tdata.coff_obj_data ... */
|
||||||
elf_tdata (abfd) = (struct elf_obj_tdata *)
|
elf_tdata (abfd) = (struct elf_obj_tdata *)
|
||||||
bfd_zalloc (abfd, sizeof (struct elf_obj_tdata));
|
bfd_zalloc (abfd, sizeof (struct elf_obj_tdata));
|
||||||
if (elf_tdata (abfd) == 0)
|
if (elf_tdata (abfd) == 0)
|
||||||
return false;
|
return false;
|
||||||
/* since everything is done at close time, do we need any
|
/* Since everything is done at close time, do we need any
|
||||||
initialization? */
|
initialization? */
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -512,7 +512,6 @@ const char *const bfd_elf_section_type_names[] = {
|
|||||||
function. It just short circuits the reloc if producing
|
function. It just short circuits the reloc if producing
|
||||||
relocateable output against an external symbol. */
|
relocateable output against an external symbol. */
|
||||||
|
|
||||||
/*ARGSUSED*/
|
|
||||||
bfd_reloc_status_type
|
bfd_reloc_status_type
|
||||||
bfd_elf_generic_reloc (abfd,
|
bfd_elf_generic_reloc (abfd,
|
||||||
reloc_entry,
|
reloc_entry,
|
||||||
@ -1675,7 +1674,6 @@ _bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p)
|
|||||||
|
|
||||||
/* Set up an ELF internal section header for a section. */
|
/* Set up an ELF internal section header for a section. */
|
||||||
|
|
||||||
/*ARGSUSED*/
|
|
||||||
static void
|
static void
|
||||||
elf_fake_sections (abfd, asect, failedptrarg)
|
elf_fake_sections (abfd, asect, failedptrarg)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -3396,24 +3394,24 @@ prep_headers (abfd)
|
|||||||
i_ehdrp->e_version = bed->s->ev_current;
|
i_ehdrp->e_version = bed->s->ev_current;
|
||||||
i_ehdrp->e_ehsize = bed->s->sizeof_ehdr;
|
i_ehdrp->e_ehsize = bed->s->sizeof_ehdr;
|
||||||
|
|
||||||
/* no program header, for now. */
|
/* No program header, for now. */
|
||||||
i_ehdrp->e_phoff = 0;
|
i_ehdrp->e_phoff = 0;
|
||||||
i_ehdrp->e_phentsize = 0;
|
i_ehdrp->e_phentsize = 0;
|
||||||
i_ehdrp->e_phnum = 0;
|
i_ehdrp->e_phnum = 0;
|
||||||
|
|
||||||
/* each bfd section is section header entry */
|
/* Each bfd section is section header entry. */
|
||||||
i_ehdrp->e_entry = bfd_get_start_address (abfd);
|
i_ehdrp->e_entry = bfd_get_start_address (abfd);
|
||||||
i_ehdrp->e_shentsize = bed->s->sizeof_shdr;
|
i_ehdrp->e_shentsize = bed->s->sizeof_shdr;
|
||||||
|
|
||||||
/* if we're building an executable, we'll need a program header table */
|
/* If we're building an executable, we'll need a program header table. */
|
||||||
if (abfd->flags & EXEC_P)
|
if (abfd->flags & EXEC_P)
|
||||||
{
|
{
|
||||||
/* it all happens later */
|
/* It all happens later. */
|
||||||
#if 0
|
#if 0
|
||||||
i_ehdrp->e_phentsize = sizeof (Elf_External_Phdr);
|
i_ehdrp->e_phentsize = sizeof (Elf_External_Phdr);
|
||||||
|
|
||||||
/* elf_build_phdrs() returns a (NULL-terminated) array of
|
/* elf_build_phdrs() returns a (NULL-terminated) array of
|
||||||
Elf_Internal_Phdrs */
|
Elf_Internal_Phdrs. */
|
||||||
i_phdrp = elf_build_phdrs (abfd, i_ehdrp, i_shdrp, &i_ehdrp->e_phnum);
|
i_phdrp = elf_build_phdrs (abfd, i_ehdrp, i_shdrp, &i_ehdrp->e_phnum);
|
||||||
i_ehdrp->e_phoff = outbase;
|
i_ehdrp->e_phoff = outbase;
|
||||||
outbase += i_ehdrp->e_phentsize * i_ehdrp->e_phnum;
|
outbase += i_ehdrp->e_phentsize * i_ehdrp->e_phnum;
|
||||||
@ -3527,7 +3525,9 @@ _bfd_elf_write_corefile_contents (abfd)
|
|||||||
/* Hopefully this can be done just like an object file. */
|
/* Hopefully this can be done just like an object file. */
|
||||||
return _bfd_elf_write_object_contents (abfd);
|
return _bfd_elf_write_object_contents (abfd);
|
||||||
}
|
}
|
||||||
/* given a section, search the header to find them... */
|
|
||||||
|
/* Given a section, search the header to find them. */
|
||||||
|
|
||||||
int
|
int
|
||||||
_bfd_elf_section_from_bfd_section (abfd, asect)
|
_bfd_elf_section_from_bfd_section (abfd, asect)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -3756,7 +3756,8 @@ copy_private_bfd_data (ibfd, obfd)
|
|||||||
/* Merge the two segments together. */
|
/* Merge the two segments together. */
|
||||||
if (segment2->p_vaddr < segment->p_vaddr)
|
if (segment2->p_vaddr < segment->p_vaddr)
|
||||||
{
|
{
|
||||||
/* Extend SEGMENT2 to include SEGMENT and then delete SEGMENT. */
|
/* Extend SEGMENT2 to include SEGMENT and then delete
|
||||||
|
SEGMENT. */
|
||||||
extra_length =
|
extra_length =
|
||||||
SEGMENT_END (segment, segment->p_vaddr)
|
SEGMENT_END (segment, segment->p_vaddr)
|
||||||
- SEGMENT_END (segment2, segment2->p_vaddr);
|
- SEGMENT_END (segment2, segment2->p_vaddr);
|
||||||
@ -3776,7 +3777,8 @@ copy_private_bfd_data (ibfd, obfd)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Extend SEGMENT to include SEGMENT2 and then delete SEGMENT2. */
|
/* Extend SEGMENT to include SEGMENT2 and then delete
|
||||||
|
SEGMENT2. */
|
||||||
extra_length =
|
extra_length =
|
||||||
SEGMENT_END (segment2, segment2->p_vaddr)
|
SEGMENT_END (segment2, segment2->p_vaddr)
|
||||||
- SEGMENT_END (segment, segment->p_vaddr);
|
- SEGMENT_END (segment, segment->p_vaddr);
|
||||||
@ -4146,7 +4148,8 @@ copy_private_bfd_data (ibfd, obfd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Final Step: Sort the segments into ascending order of physical address. */
|
/* Final Step: Sort the segments into ascending order of physical
|
||||||
|
address. */
|
||||||
if (map_first != NULL)
|
if (map_first != NULL)
|
||||||
{
|
{
|
||||||
struct elf_segment_map *prev;
|
struct elf_segment_map *prev;
|
||||||
@ -5237,7 +5240,6 @@ _bfd_elf_rel_vtable_reloc_fn (abfd, re, symbol, data, is, obfd, errmsg)
|
|||||||
{
|
{
|
||||||
return bfd_reloc_ok;
|
return bfd_reloc_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Elf core file support. Much of this only works on native
|
/* Elf core file support. Much of this only works on native
|
||||||
toolchains, since we rely on knowing the
|
toolchains, since we rely on knowing the
|
||||||
@ -5248,14 +5250,12 @@ _bfd_elf_rel_vtable_reloc_fn (abfd, re, symbol, data, is, obfd, errmsg)
|
|||||||
# include <sys/procfs.h>
|
# include <sys/procfs.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Define offsetof for those systems which lack it. */
|
/* Define offsetof for those systems which lack it. */
|
||||||
|
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
# define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
|
# define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* FIXME: this is kinda wrong, but it's what gdb wants. */
|
/* FIXME: this is kinda wrong, but it's what gdb wants. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -5266,7 +5266,6 @@ elfcore_make_pid (abfd)
|
|||||||
+ (elf_tdata (abfd)->core_pid));
|
+ (elf_tdata (abfd)->core_pid));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* If there isn't a section called NAME, make one, using
|
/* If there isn't a section called NAME, make one, using
|
||||||
data from SECT. Note, this function will generate a
|
data from SECT. Note, this function will generate a
|
||||||
reference to NAME, so you shouldn't deallocate or
|
reference to NAME, so you shouldn't deallocate or
|
||||||
@ -5294,7 +5293,6 @@ elfcore_maybe_make_sect (abfd, name, sect)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* prstatus_t exists on:
|
/* prstatus_t exists on:
|
||||||
solaris 2.5+
|
solaris 2.5+
|
||||||
linux 2.[01] + glibc
|
linux 2.[01] + glibc
|
||||||
@ -5390,7 +5388,6 @@ elfcore_grok_prstatus (abfd, note)
|
|||||||
}
|
}
|
||||||
#endif /* defined (HAVE_PRSTATUS_T) */
|
#endif /* defined (HAVE_PRSTATUS_T) */
|
||||||
|
|
||||||
|
|
||||||
/* Create a pseudosection containing the exact contents of NOTE. This
|
/* Create a pseudosection containing the exact contents of NOTE. This
|
||||||
actually creates up to two pseudosections:
|
actually creates up to two pseudosections:
|
||||||
- For the single-threaded case, a section named NAME, unless
|
- For the single-threaded case, a section named NAME, unless
|
||||||
@ -5431,10 +5428,10 @@ elfcore_make_note_pseudosection (abfd, name, note)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* There isn't a consistent prfpregset_t across platforms,
|
/* There isn't a consistent prfpregset_t across platforms,
|
||||||
but it doesn't matter, because we don't have to pick this
|
but it doesn't matter, because we don't have to pick this
|
||||||
data structure apart. */
|
data structure apart. */
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
elfcore_grok_prfpreg (abfd, note)
|
elfcore_grok_prfpreg (abfd, note)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -5443,10 +5440,10 @@ elfcore_grok_prfpreg (abfd, note)
|
|||||||
return elfcore_make_note_pseudosection (abfd, ".reg2", note);
|
return elfcore_make_note_pseudosection (abfd, ".reg2", note);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Linux dumps the Intel SSE regs in a note named "LINUX" with a note
|
/* Linux dumps the Intel SSE regs in a note named "LINUX" with a note
|
||||||
type of 5 (NT_PRXFPREG). Just include the whole note's contents
|
type of 5 (NT_PRXFPREG). Just include the whole note's contents
|
||||||
literally. */
|
literally. */
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
elfcore_grok_prxfpreg (abfd, note)
|
elfcore_grok_prxfpreg (abfd, note)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -5455,7 +5452,6 @@ elfcore_grok_prxfpreg (abfd, note)
|
|||||||
return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
|
return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined (HAVE_PRPSINFO_T)
|
#if defined (HAVE_PRPSINFO_T)
|
||||||
typedef prpsinfo_t elfcore_psinfo_t;
|
typedef prpsinfo_t elfcore_psinfo_t;
|
||||||
#if defined (HAVE_PRPSINFO32_T) /* Sparc64 cross Sparc32 */
|
#if defined (HAVE_PRPSINFO32_T) /* Sparc64 cross Sparc32 */
|
||||||
@ -5470,7 +5466,6 @@ typedef psinfo32_t elfcore_psinfo32_t;
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
|
#if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
|
||||||
|
|
||||||
/* return a malloc'ed copy of a string at START which is at
|
/* return a malloc'ed copy of a string at START which is at
|
||||||
@ -5558,7 +5553,6 @@ elfcore_grok_psinfo (abfd, note)
|
|||||||
}
|
}
|
||||||
#endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */
|
#endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */
|
||||||
|
|
||||||
|
|
||||||
#if defined (HAVE_PSTATUS_T)
|
#if defined (HAVE_PSTATUS_T)
|
||||||
static boolean
|
static boolean
|
||||||
elfcore_grok_pstatus (abfd, note)
|
elfcore_grok_pstatus (abfd, note)
|
||||||
@ -5592,7 +5586,6 @@ elfcore_grok_pstatus (abfd, note)
|
|||||||
}
|
}
|
||||||
#endif /* defined (HAVE_PSTATUS_T) */
|
#endif /* defined (HAVE_PSTATUS_T) */
|
||||||
|
|
||||||
|
|
||||||
#if defined (HAVE_LWPSTATUS_T)
|
#if defined (HAVE_LWPSTATUS_T)
|
||||||
static boolean
|
static boolean
|
||||||
elfcore_grok_lwpstatus (abfd, note)
|
elfcore_grok_lwpstatus (abfd, note)
|
||||||
@ -5800,7 +5793,6 @@ elfcore_grok_note (abfd, note)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
elfcore_read_notes (abfd, offset, size)
|
elfcore_read_notes (abfd, offset, size)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -5853,7 +5845,6 @@ elfcore_read_notes (abfd, offset, size)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* FIXME: This function is now unnecessary. Callers can just call
|
/* FIXME: This function is now unnecessary. Callers can just call
|
||||||
bfd_section_from_phdr directly. */
|
bfd_section_from_phdr directly. */
|
||||||
|
|
||||||
@ -5868,14 +5859,13 @@ _bfd_elfcore_section_from_phdr (abfd, phdr, sec_num)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Providing external access to the ELF program header table. */
|
/* Providing external access to the ELF program header table. */
|
||||||
|
|
||||||
/* Return an upper bound on the number of bytes required to store a
|
/* Return an upper bound on the number of bytes required to store a
|
||||||
copy of ABFD's program header table entries. Return -1 if an error
|
copy of ABFD's program header table entries. Return -1 if an error
|
||||||
occurs; bfd_get_error will return an appropriate code. */
|
occurs; bfd_get_error will return an appropriate code. */
|
||||||
|
|
||||||
long
|
long
|
||||||
bfd_get_elf_phdr_upper_bound (abfd)
|
bfd_get_elf_phdr_upper_bound (abfd)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -5890,7 +5880,6 @@ bfd_get_elf_phdr_upper_bound (abfd)
|
|||||||
* sizeof (Elf_Internal_Phdr));
|
* sizeof (Elf_Internal_Phdr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Copy ABFD's program header table entries to *PHDRS. The entries
|
/* Copy ABFD's program header table entries to *PHDRS. The entries
|
||||||
will be stored as an array of Elf_Internal_Phdr structures, as
|
will be stored as an array of Elf_Internal_Phdr structures, as
|
||||||
defined in include/elf/internal.h. To find out how large the
|
defined in include/elf/internal.h. To find out how large the
|
||||||
@ -5898,6 +5887,7 @@ bfd_get_elf_phdr_upper_bound (abfd)
|
|||||||
|
|
||||||
Return the number of program header table entries read, or -1 if an
|
Return the number of program header table entries read, or -1 if an
|
||||||
error occurs; bfd_get_error will return an appropriate code. */
|
error occurs; bfd_get_error will return an appropriate code. */
|
||||||
|
|
||||||
int
|
int
|
||||||
bfd_get_elf_phdrs (abfd, phdrs)
|
bfd_get_elf_phdrs (abfd, phdrs)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
|
Reference in New Issue
Block a user