diff options
author | Daniel Jacobowitz <drow@false.org> | 2004-10-08 13:55:11 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2004-10-08 13:55:11 +0000 |
commit | d2b2c203e1ff2daf8cfeab0906084f9389e66246 (patch) | |
tree | b26661436e0599afd2ba5bd7f05a8e346fec61bb /bfd | |
parent | d67a454c81bb8395692342d517d935e8bcaa882e (diff) | |
download | gdb-d2b2c203e1ff2daf8cfeab0906084f9389e66246.zip gdb-d2b2c203e1ff2daf8cfeab0906084f9389e66246.tar.gz gdb-d2b2c203e1ff2daf8cfeab0906084f9389e66246.tar.bz2 |
bfd/
* config.bfd: Include 64-bit support for i[3-7]86-*-solaris2*.
* elf64-x86-64.c (elf64_x86_64_section_from_shdr): New function.
(elf_backend_section_from_shdr): Define.
binutils/
* readelf.c (get_x86_64_section_type_name): New function.
(get_section_type_name): Use it.
gas/
* config/tc-i386.c: Include "elf/x86-64.h".
(i386_elf_section_type): New function.
* config/tc-i386.h (md_elf_section_type): Define.
(i386_elf_section_type): New prototype.
gas/testsuite/
* gas/i386/i386.exp: Don't run divide test for targets where '/'
is a comment. Run x86-64-unwind for 64-bit ELF targets.
* gas/i386/x86-64-unwind.d, gas/i386/x86-64-unwind.s: New.
include/
* elf/common.h (PT_SUNW_EH_FRAME): Define.
* elf/x86-64.h (SHT_X86_64_UNWIND): Define.
ld/
* configure.tgt: Include elf_x86_64 for i[3-7]86-*-solaris2*.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/config.bfd | 8 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 18 |
3 files changed, 31 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fcaa499..9f24c81 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-10-08 Daniel Jacobowitz <dan@debian.org> + + * config.bfd: Include 64-bit support for i[3-7]86-*-solaris2*. + * elf64-x86-64.c (elf64_x86_64_section_from_shdr): New function. + (elf_backend_section_from_shdr): Define. + 2004-10-08 Alan Modra <amodra@bigpond.net.au> * syms.c (bfd_is_local_label): Return false for file symbols. diff --git a/bfd/config.bfd b/bfd/config.bfd index d4e0e60..84ecb1b 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -424,12 +424,18 @@ case "${targ}" in targ_defvec=i386coff_vec targ_selvecs=bfd_elf32_i386_vec ;; - i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | i[3-7]86-*-solaris2* | \ + i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \ i[3-7]86-*-elf | i[3-7]86-*-sco3.2v5* | \ i[3-7]86-*-dgux* | i[3-7]86-*-sysv5*) targ_defvec=bfd_elf32_i386_vec targ_selvecs=i386coff_vec ;; + i[3-7]86-*-solaris2*) + targ_defvec=bfd_elf32_i386_vec + targ_selvecs=i386coff_vec + targ64_selvecs=bfd_elf64_x86_64_vec + want64=true + ;; i[3-7]86-*-kaos*) targ_defvec=bfd_elf32_i386_vec targ_selvecs=bfd_elf32_i386_vec diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 8737f23..f039fa7 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -2782,6 +2782,21 @@ elf64_x86_64_plt_sym_val (bfd_vma i, const asection *plt, return plt->vma + (i + 1) * PLT_ENTRY_SIZE; } +/* Handle an x86-64 specific section when reading an object file. This + is called when elfcode.h finds a section with an unknown type. */ + +static bfd_boolean +elf64_x86_64_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr, const char *name) +{ + if (hdr->sh_type != SHT_X86_64_UNWIND) + return FALSE; + + if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) + return FALSE; + + return TRUE; +} + #define TARGET_LITTLE_SYM bfd_elf64_x86_64_vec #define TARGET_LITTLE_NAME "elf64-x86-64" #define ELF_ARCH bfd_arch_i386 @@ -2819,4 +2834,7 @@ elf64_x86_64_plt_sym_val (bfd_vma i, const asection *plt, #define elf_backend_object_p elf64_x86_64_elf_object_p #define bfd_elf64_mkobject elf64_x86_64_mkobject +#define elf_backend_section_from_shdr \ + elf64_x86_64_section_from_shdr + #include "elf64-target.h" |