* elf-bfd.h (struct elf_link_hash_table): Reorder.  Add
	text_index_section and data_index_section.
	(struct elf_backend_data): Add elf_backend_init_index_section.
	(_bfd_elf_init_1_index_section): Declare.
	(_bfd_elf_init_2_index_sections): Declare.
	* elfxx-target.h (elf_backend_init_index_section): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_link_omit_section_dynsym): Keep first tls
	section and text_index_section plus data_index_section.
	(_bfd_elf_link_renumber_dynsyms): Clear dynindx on omitted sections.
	(_bfd_elf_init_1_index_section): New function.
	(_bfd_elf_init_2_index_sections): New function.
	(bfd_elf_size_dynsym_hash_dynstr): Call elf_backend_init_index_section.
	(elf_link_input_bfd): When emitting relocs, use text_index_section
	and data_index_section for removed sections.
	* elf-m10300.c (elf_backend_omit_section_dynsym): Define.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-xstormy16.c: Likewise.
	* elf32-xtensa.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-mmix.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elf32-arm.c (elf32_arm_final_link_relocate): Use text_index_section
	and data_index_section sym for relocs against sections with no dynamic
	section sym.
	(elf_backend_init_index_section): Define.
	* elf32-cris.c: Similarly.
	* elf32-hppa.c: Similarly.
	* elf32-i370.c: Similarly.
	* elf32-m68k.c: Similarly.
	* elf32-mips.c: Similarly.
	* elf32-ppc.c: Similarly.
	* elf32-s390.c: Similarly.
	* elf32-sparc.c: Similarly.
	* elf32-vax.c: Similarly.
	* elf64-mips.c: Similarly.
	* elf64-ppc.c: Similarly.
	* elf64-s390.c: Similarly.
	* elf64-sparc.c: Similarly.
	* elf64-x86-64.c: Similarly.
	* elfn32-mips.c: Similarly.
	* elfxx-mips.c: Similarly.
	* elfxx-sparc.c: Similarly.
	* linker.c (fix_syms): Base symbols in removed sections on
	previous section in preference to using absolute section.

ld/
	* ldlang.c (strip_excluded_output_sections): Do strip sections
	that define syms, but don't ignore them.
	* ld.texinfo (Output Section Discarding): Revise.
	* emultempl/armcoff.em (gld${EMULATION_NAME}_finish): Always call
	finish_default.

ld/testsuite/
	Update for section sym changes.
This commit is contained in:
Alan Modra 2006-10-17 13:41:49 +00:00
parent 2164320415
commit 74541ad4c0
96 changed files with 745 additions and 425 deletions

View file

@ -1,3 +1,55 @@
2006-10-17 Alan Modra <amodra@bigpond.net.au>
* elf-bfd.h (struct elf_link_hash_table): Reorder. Add
text_index_section and data_index_section.
(struct elf_backend_data): Add elf_backend_init_index_section.
(_bfd_elf_init_1_index_section): Declare.
(_bfd_elf_init_2_index_sections): Declare.
* elfxx-target.h (elf_backend_init_index_section): Define.
(elfNN_bed): Init new field.
* elflink.c (_bfd_elf_link_omit_section_dynsym): Keep first tls
section and text_index_section plus data_index_section.
(_bfd_elf_link_renumber_dynsyms): Clear dynindx on omitted sections.
(_bfd_elf_init_1_index_section): New function.
(_bfd_elf_init_2_index_sections): New function.
(bfd_elf_size_dynsym_hash_dynstr): Call elf_backend_init_index_section.
(elf_link_input_bfd): When emitting relocs, use text_index_section
and data_index_section for removed sections.
* elf-m10300.c (elf_backend_omit_section_dynsym): Define.
* elf32-i386.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-xstormy16.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-sh64.c: Likewise.
* elfxx-ia64.c: Likewise.
* elf32-arm.c (elf32_arm_final_link_relocate): Use text_index_section
and data_index_section sym for relocs against sections with no dynamic
section sym.
(elf_backend_init_index_section): Define.
* elf32-cris.c: Similarly.
* elf32-hppa.c: Similarly.
* elf32-i370.c: Similarly.
* elf32-m68k.c: Similarly.
* elf32-mips.c: Similarly.
* elf32-ppc.c: Similarly.
* elf32-s390.c: Similarly.
* elf32-sparc.c: Similarly.
* elf32-vax.c: Similarly.
* elf64-mips.c: Similarly.
* elf64-ppc.c: Similarly.
* elf64-s390.c: Similarly.
* elf64-sparc.c: Similarly.
* elf64-x86-64.c: Similarly.
* elfn32-mips.c: Similarly.
* elfxx-mips.c: Similarly.
* elfxx-sparc.c: Similarly.
* linker.c (fix_syms): Base symbols in removed sections on
previous section in preference to using absolute section.
2006-10-16 Andreas Schwab <schwab@suse.de>
* elfxx-ia64.c (addend_compare): Properly compute return value.

View file

@ -345,6 +345,10 @@ struct elf_link_hash_table
when linking against or generating a shared object. */
bfd_boolean dynamic_sections_created;
/* True if this target has relocatable executables, so needs dynamic
section symbols. */
bfd_boolean is_relocatable_executable;
/* The BFD used to hold special sections created by the linker.
This will be the first BFD found which requires these sections to
be created. */
@ -378,6 +382,12 @@ struct elf_link_hash_table
included in the link. */
struct bfd_link_needed_list *needed;
/* Sections in the output bfd that provides a section symbol
to be used by relocations emitted against local symbols.
Most targets will not use data_index_section. */
asection *text_index_section;
asection *data_index_section;
/* The _GLOBAL_OFFSET_TABLE_ symbol. */
struct elf_link_hash_entry *hgot;
@ -406,10 +416,6 @@ struct elf_link_hash_table
/* A linked list of BFD's loaded in the link. */
struct elf_link_loaded_list *loaded;
/* True if this target has relocatable executables, so needs dynamic
section symbols. */
bfd_boolean is_relocatable_executable;
};
/* Look up an entry in an ELF linker hash table. */
@ -766,6 +772,11 @@ struct elf_backend_data
bfd_boolean (*elf_backend_size_dynamic_sections)
(bfd *output_bfd, struct bfd_link_info *info);
/* Set TEXT_INDEX_SECTION and DATA_INDEX_SECTION, the output sections
we keep to use as a base for relocs and symbols. */
void (*elf_backend_init_index_section)
(bfd *output_bfd, struct bfd_link_info *info);
/* The RELOCATE_SECTION function is called by the ELF backend linker
to handle the relocations for a section.
@ -1697,6 +1708,10 @@ extern bfd_boolean _bfd_elf_create_got_section
(bfd *, struct bfd_link_info *);
extern struct elf_link_hash_entry *_bfd_elf_define_linkage_sym
(bfd *, struct bfd_link_info *, asection *, const char *);
extern void _bfd_elf_init_1_index_section
(bfd *, struct bfd_link_info *);
extern void _bfd_elf_init_2_index_sections
(bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elfcore_make_pseudosection
(bfd *, char *, size_t, ufile_ptr);

View file

@ -4756,6 +4756,8 @@ _bfd_mn10300_elf_reloc_type_class (const Elf_Internal_Rela *rela)
_bfd_mn10300_elf_adjust_dynamic_symbol
#define elf_backend_size_dynamic_sections \
_bfd_mn10300_elf_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_finish_dynamic_symbol \
_bfd_mn10300_elf_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections \

View file

@ -3731,6 +3731,8 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
value |= 1;
if (globals->symbian_p)
{
asection *osec;
/* On Symbian OS, the data segment and text segement
can be relocated independently. Therefore, we
must indicate the segment to which this
@ -3738,11 +3740,27 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
use any symbol in the right segment; we just use
the section symbol as it is convenient. (We
cannot use the symbol given by "h" directly as it
will not appear in the dynamic symbol table.) */
will not appear in the dynamic symbol table.)
Note that the dynamic linker ignores the section
symbol value, so we don't subtract osec->vma
from the emitted reloc addend. */
if (sym_sec)
symbol = elf_section_data (sym_sec->output_section)->dynindx;
osec = sym_sec->output_section;
else
symbol = elf_section_data (input_section->output_section)->dynindx;
osec = input_section->output_section;
symbol = elf_section_data (osec)->dynindx;
if (symbol == 0)
{
struct elf_link_hash_table *htab = elf_hash_table (info);
if ((osec->flags & SEC_READONLY) == 0
&& htab->data_index_section != NULL)
osec = htab->data_index_section;
else
osec = htab->text_index_section;
symbol = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (symbol != 0);
}
else
@ -8551,7 +8569,8 @@ elf32_arm_finish_dynamic_sections (bfd * output_bfd, struct bfd_link_info * info
/* UnixWare sets the entsize of .plt to 4, although that doesn't
really seem like the right value. */
elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4;
if (splt->output_section->owner == output_bfd)
elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4;
if (htab->vxworks_p && !info->shared && htab->splt->size > 0)
{
@ -9494,6 +9513,7 @@ const struct elf_size_info elf32_arm_size_info = {
#define elf_backend_finish_dynamic_sections elf32_arm_finish_dynamic_sections
#define elf_backend_link_output_symbol_hook elf32_arm_output_symbol_hook
#define elf_backend_size_dynamic_sections elf32_arm_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_2_index_sections
#define elf_backend_post_process_headers elf32_arm_post_process_headers
#define elf_backend_reloc_type_class elf32_arm_reloc_type_class
#define elf_backend_object_p elf32_arm_object_p

View file

@ -1430,11 +1430,12 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
outrel.r_addend = relocation + rel->r_addend;
if (r_type == R_CRIS_32)
{
relocate = TRUE;
outrel.r_info = ELF32_R_INFO (0, R_CRIS_RELATIVE);
outrel.r_addend = relocation + rel->r_addend;
}
else
{
@ -1451,13 +1452,24 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
{
asection *osec;
/* We are turning this relocation into one
against a section symbol. It would be
proper to subtract the symbol's value,
osec->vma, from the emitted reloc addend,
but ld.so expects buggy relocs. */
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
BFD_ASSERT (indx > 0);
if (indx == 0)
{
struct elf_cris_link_hash_table *htab;
htab = elf_cris_hash_table (info);
osec = htab->root.text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
}
outrel.r_info = ELF32_R_INFO (indx, r_type);
outrel.r_addend = relocation + rel->r_addend;
}
}
@ -3390,6 +3402,7 @@ elf_cris_reloc_type_class (rela)
elf_cris_adjust_dynamic_symbol
#define elf_backend_size_dynamic_sections \
elf_cris_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_finish_dynamic_symbol \
elf_cris_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections \

View file

@ -4024,17 +4024,22 @@ elf32_hppa_relocate_section (bfd *output_bfd,
&& sym_sec->output_section != NULL
&& ! bfd_is_abs_section (sym_sec))
{
/* Skip this relocation if the output section has
been discarded. */
if (bfd_is_abs_section (sym_sec->output_section))
break;
asection *osec;
osec = sym_sec->output_section;
indx = elf_section_data (osec)->dynindx;
if (indx == 0)
{
osec = htab->etab.text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
indx = elf_section_data (sym_sec->output_section)->dynindx;
/* We are turning this relocation into one
against a section symbol, so subtract out the
output section's address but not the offset
of the input section in the output section. */
outrel.r_addend -= sym_sec->output_section->vma;
outrel.r_addend -= osec->vma;
}
outrel.r_info = ELF32_R_INFO (indx, r_type);
@ -4642,6 +4647,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type)
#define elf_backend_finish_dynamic_symbol elf32_hppa_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections elf32_hppa_finish_dynamic_sections
#define elf_backend_size_dynamic_sections elf32_hppa_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_gc_mark_hook elf32_hppa_gc_mark_hook
#define elf_backend_gc_sweep_hook elf32_hppa_gc_sweep_hook
#define elf_backend_grok_prstatus elf32_hppa_grok_prstatus

View file

@ -1290,9 +1290,21 @@ i370_elf_relocate_section (bfd *output_bfd,
{
asection *osec;
/* We are turning this relocation into one
against a section symbol. It would be
proper to subtract the symbol's value,
osec->vma, from the emitted reloc addend,
but ld.so expects buggy relocs. */
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
BFD_ASSERT(indx > 0);
if (indx == 0)
{
struct elf_link_hash_table *htab;
htab = elf_hash_table (info);
osec = htab->text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
#ifdef DEBUG
if (indx <= 0)
{
@ -1427,6 +1439,7 @@ i370_elf_post_process_headers (bfd * abfd,
link glibc's ld.so without errors. */
#define elf_backend_create_dynamic_sections i370_elf_create_dynamic_sections
#define elf_backend_size_dynamic_sections i370_elf_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_finish_dynamic_sections i370_elf_finish_dynamic_sections
#define elf_backend_fake_sections i370_elf_fake_sections
#define elf_backend_section_from_shdr i370_elf_section_from_shdr

View file

@ -3872,6 +3872,8 @@ elf_i386_hash_symbol (struct elf_link_hash_entry *h)
#define elf_backend_relocate_section elf_i386_relocate_section
#define elf_backend_size_dynamic_sections elf_i386_size_dynamic_sections
#define elf_backend_always_size_sections elf_i386_always_size_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_plt_sym_val elf_i386_plt_sym_val
#define elf_backend_hash_symbol elf_i386_hash_symbol

View file

@ -4141,6 +4141,8 @@ m32r_elf_reloc_type_class (const Elf_Internal_Rela *rela)
#define elf_backend_create_dynamic_sections m32r_elf_create_dynamic_sections
#define bfd_elf32_bfd_link_hash_table_create m32r_elf_link_hash_table_create
#define elf_backend_size_dynamic_sections m32r_elf_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_finish_dynamic_sections m32r_elf_finish_dynamic_sections
#define elf_backend_adjust_dynamic_symbol m32r_elf_adjust_dynamic_symbol
#define elf_backend_finish_dynamic_symbol m32r_elf_finish_dynamic_symbol

View file

@ -1833,11 +1833,12 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
else
{
/* This symbol is local, or marked to become local. */
outrel.r_addend = relocation + rel->r_addend;
if (r_type == R_68K_32)
{
relocate = TRUE;
outrel.r_info = ELF32_R_INFO (0, R_68K_RELATIVE);
outrel.r_addend = relocation + rel->r_addend;
}
else
{
@ -1854,13 +1855,24 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
{
asection *osec;
/* We are turning this relocation into one
against a section symbol. It would be
proper to subtract the symbol's value,
osec->vma, from the emitted reloc addend,
but ld.so expects buggy relocs. */
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
BFD_ASSERT (indx > 0);
if (indx == 0)
{
struct elf_link_hash_table *htab;
htab = elf_hash_table (info);
osec = htab->text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
}
outrel.r_info = ELF32_R_INFO (indx, r_type);
outrel.r_addend = relocation + rel->r_addend;
}
}
@ -2418,6 +2430,7 @@ elf_m68k_plt_sym_val (bfd_vma i, const asection *plt,
elf_m68k_adjust_dynamic_symbol
#define elf_backend_size_dynamic_sections \
elf_m68k_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_relocate_section elf_m68k_relocate_section
#define elf_backend_finish_dynamic_symbol \
elf_m68k_finish_dynamic_symbol

View file

@ -1513,6 +1513,7 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
_bfd_mips_elf_always_size_sections
#define elf_backend_size_dynamic_sections \
_bfd_mips_elf_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_relocate_section _bfd_mips_elf_relocate_section
#define elf_backend_finish_dynamic_symbol \
_bfd_mips_elf_finish_dynamic_symbol

View file

@ -6280,9 +6280,14 @@ ppc_elf_relocate_section (bfd *output_bfd,
but ld.so expects buggy relocs. */
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
BFD_ASSERT (indx > 0);
if (indx == 0)
{
osec = htab->elf.text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
#ifdef DEBUG
if (indx <= 0)
if (indx == 0)
printf ("indx=%ld section=%s flags=%08x name=%s\n",
indx, osec->name, osec->flags,
h->root.root.string);
@ -7472,6 +7477,7 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd,
#define elf_backend_get_sec_type_attr ppc_elf_get_sec_type_attr
#define elf_backend_plt_sym_val ppc_elf_plt_sym_val
#define elf_backend_action_discarded ppc_elf_action_discarded
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#include "elf32-target.h"

View file

@ -2630,14 +2630,18 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
osec = sec->output_section;
sindx = elf_section_data (osec)->dynindx;
BFD_ASSERT (sindx > 0);
if (sindx == 0)
{
osec = htab->elf.text_index_section;
sindx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (sindx != 0);
/* We are turning this relocation into one
against a section symbol, so subtract out
the output section's address but not the
offset of the input section in the output
section. */
outrel.r_addend -= osec->vma;
}
outrel.r_info = ELF32_R_INFO (sindx, r_type);
@ -3542,6 +3546,7 @@ elf_s390_plt_sym_val (bfd_vma i, const asection *plt,
#define elf_backend_reloc_type_class elf_s390_reloc_type_class
#define elf_backend_relocate_section elf_s390_relocate_section
#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_reloc_type_class elf_s390_reloc_type_class
#define elf_backend_grok_prstatus elf_s390_grok_prstatus
#define elf_backend_plt_sym_val elf_s390_plt_sym_val

View file

@ -6028,6 +6028,8 @@ sh_elf_plt_sym_val (bfd_vma i, const asection *plt,
sh_elf_always_size_sections
#define elf_backend_size_dynamic_sections \
sh_elf_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_finish_dynamic_symbol \
sh_elf_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections \

View file

@ -207,6 +207,7 @@ elf32_sparc_reloc_type_class (const Elf_Internal_Rela *rela)
#define elf_backend_gc_mark_hook _bfd_sparc_elf_gc_mark_hook
#define elf_backend_gc_sweep_hook _bfd_sparc_elf_gc_sweep_hook
#define elf_backend_plt_sym_val _bfd_sparc_elf_plt_sym_val
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1

View file

@ -1680,9 +1680,21 @@ elf_vax_relocate_section (bfd *output_bfd,
{
asection *osec;
/* We are turning this relocation into one
against a section symbol. It would be
proper to subtract the symbol's value,
osec->vma, from the emitted reloc addend,
but ld.so expects buggy relocs. */
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
BFD_ASSERT (indx > 0);
if (indx == 0)
{
struct elf_link_hash_table *htab;
htab = elf_hash_table (info);
osec = htab->text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
}
outrel.r_info = ELF32_R_INFO (indx, r_type);
@ -2062,6 +2074,7 @@ elf_vax_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
elf_vax_adjust_dynamic_symbol
#define elf_backend_size_dynamic_sections \
elf_vax_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_relocate_section elf_vax_relocate_section
#define elf_backend_finish_dynamic_symbol \
elf_vax_finish_dynamic_symbol

View file

@ -999,6 +999,8 @@ xstormy16_elf_gc_mark_hook (asection *sec,
#define elf_backend_check_relocs xstormy16_elf_check_relocs
#define elf_backend_always_size_sections \
xstormy16_elf_always_size_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_finish_dynamic_sections \
xstormy16_elf_finish_dynamic_sections

View file

@ -9844,6 +9844,8 @@ static const struct bfd_elf_special_section elf_xtensa_special_sections[] =
#define elf_backend_reloc_type_class elf_xtensa_reloc_type_class
#define elf_backend_relocate_section elf_xtensa_relocate_section
#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_special_sections elf_xtensa_special_sections
#define elf_backend_action_discarded elf_xtensa_action_discarded

View file

@ -5275,6 +5275,8 @@ static const struct elf_size_info alpha_elf_size_info =
elf64_alpha_always_size_sections
#define elf_backend_size_dynamic_sections \
elf64_alpha_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_relocate_section \
elf64_alpha_relocate_section
#define elf_backend_finish_dynamic_symbol \

View file

@ -2820,6 +2820,8 @@ const struct elf_size_info hppa64_elf_size_info =
elf64_hppa_create_dynamic_sections
#define elf_backend_post_process_headers elf64_hppa_post_process_headers
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_adjust_dynamic_symbol \
elf64_hppa_adjust_dynamic_symbol

View file

@ -3034,6 +3034,7 @@ const struct elf_size_info mips_elf64_size_info =
_bfd_mips_elf_always_size_sections
#define elf_backend_size_dynamic_sections \
_bfd_mips_elf_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_relocate_section _bfd_mips_elf_relocate_section
#define elf_backend_finish_dynamic_symbol \
_bfd_mips_elf_finish_dynamic_symbol

View file

@ -2916,6 +2916,8 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
#define elf_backend_check_relocs mmix_elf_check_relocs
#define elf_backend_symbol_processing mmix_elf_symbol_processing
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define bfd_elf64_bfd_is_local_label_name \
mmix_elf_is_local_label_name

View file

@ -97,6 +97,7 @@ static bfd_vma opd_entry_value
#define elf_backend_hide_symbol ppc64_elf_hide_symbol
#define elf_backend_always_size_sections ppc64_elf_func_desc_adjust
#define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_2_index_sections
#define elf_backend_action_discarded ppc64_elf_action_discarded
#define elf_backend_relocate_section ppc64_elf_relocate_section
#define elf_backend_finish_dynamic_symbol ppc64_elf_finish_dynamic_symbol
@ -10840,6 +10841,17 @@ ppc64_elf_relocate_section (bfd *output_bfd,
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
if (indx == 0)
{
if ((osec->flags & SEC_READONLY) == 0
&& htab->elf.data_index_section != NULL)
osec = htab->elf.data_index_section;
else
osec = htab->elf.text_index_section;
indx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (indx != 0);
/* We are turning this relocation into one
against a section symbol, so subtract out
the output section's address but not the

View file

@ -2611,14 +2611,19 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
osec = sec->output_section;
sindx = elf_section_data (osec)->dynindx;
BFD_ASSERT (sindx > 0);
if (sindx == 0)
{
osec = htab->elf.text_index_section;
sindx = elf_section_data (osec)->dynindx;
}
BFD_ASSERT (sindx != 0);
/* We are turning this relocation into one
against a section symbol, so subtract out
the output section's address but not the
offset of the input section in the output
section. */
outrel.r_addend -= osec->vma;
}
outrel.r_info = ELF64_R_INFO (sindx, r_type);
@ -3449,6 +3454,7 @@ const struct elf_size_info s390_elf64_size_info =
#define elf_backend_reloc_type_class elf_s390_reloc_type_class
#define elf_backend_relocate_section elf_s390_relocate_section
#define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_reloc_type_class elf_s390_reloc_type_class
#define elf_backend_plt_sym_val elf_s390_plt_sym_val

View file

@ -4094,6 +4094,8 @@ static const struct bfd_elf_special_section sh64_elf64_special_sections[]=
sh64_elf64_adjust_dynamic_symbol
#define elf_backend_size_dynamic_sections \
sh64_elf64_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_finish_dynamic_symbol \
sh64_elf64_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections \

View file

@ -889,6 +889,8 @@ const struct elf_size_info elf64_sparc_size_info =
_bfd_sparc_elf_gc_mark_hook
#define elf_backend_gc_sweep_hook \
_bfd_sparc_elf_gc_sweep_hook
#define elf_backend_init_index_section \
_bfd_elf_init_1_index_section
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1

View file

@ -2457,9 +2457,19 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
{
asection *osec;
/* We are turning this relocation into one
against a section symbol. It would be
proper to subtract the symbol's value,
osec->vma, from the emitted reloc addend,
but ld.so expects buggy relocs. */
osec = sec->output_section;
sindx = elf_section_data (osec)->dynindx;
BFD_ASSERT (sindx > 0);
if (sindx == 0)
{
asection *oi = htab->elf.text_index_section;
sindx = elf_section_data (oi)->dynindx;
}
BFD_ASSERT (sindx != 0);
}
outrel.r_info = ELF64_R_INFO (sindx, r_type);
@ -3657,6 +3667,7 @@ static const struct bfd_elf_special_section
#define elf_backend_relocate_section elf64_x86_64_relocate_section
#define elf_backend_size_dynamic_sections elf64_x86_64_size_dynamic_sections
#define elf_backend_always_size_sections elf64_x86_64_always_size_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_plt_sym_val elf64_x86_64_plt_sym_val
#define elf_backend_object_p elf64_x86_64_elf_object_p
#define bfd_elf64_mkobject elf64_x86_64_mkobject

View file

@ -712,6 +712,8 @@ _bfd_elf_link_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info,
asection *p)
{
struct elf_link_hash_table *htab;
switch (elf_section_data (p)->this_hdr.sh_type)
{
case SHT_PROGBITS:
@ -719,15 +721,21 @@ _bfd_elf_link_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED,
/* If sh_type is yet undecided, assume it could be
SHT_PROGBITS/SHT_NOBITS. */
case SHT_NULL:
htab = elf_hash_table (info);
if (p == htab->tls_sec)
return FALSE;
if (htab->text_index_section != NULL)
return p != htab->text_index_section && p != htab->data_index_section;
if (strcmp (p->name, ".got") == 0
|| strcmp (p->name, ".got.plt") == 0
|| strcmp (p->name, ".plt") == 0)
{
asection *ip;
bfd *dynobj = elf_hash_table (info)->dynobj;
if (dynobj != NULL
&& (ip = bfd_get_section_by_name (dynobj, p->name)) != NULL
if (htab->dynobj != NULL
&& (ip = bfd_get_section_by_name (htab->dynobj, p->name)) != NULL
&& (ip->flags & SEC_LINKER_CREATED)
&& ip->output_section == p)
return TRUE;
@ -763,6 +771,8 @@ _bfd_elf_link_renumber_dynsyms (bfd *output_bfd,
&& (p->flags & SEC_ALLOC) != 0
&& !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p))
elf_section_data (p)->dynindx = ++dynsymcount;
else
elf_section_data (p)->dynindx = 0;
}
*section_sym_count = dynsymcount;
@ -5932,16 +5942,65 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
return TRUE;
}
/* Find the first non-excluded output section. We'll use its
section symbol for some emitted relocs. */
void
_bfd_elf_init_1_index_section (bfd *output_bfd, struct bfd_link_info *info)
{
asection *s;
for (s = output_bfd->sections; s != NULL; s = s->next)
if ((s->flags & (SEC_EXCLUDE | SEC_ALLOC)) == SEC_ALLOC
&& !_bfd_elf_link_omit_section_dynsym (output_bfd, info, s))
{
elf_hash_table (info)->text_index_section = s;
break;
}
}
/* Find two non-excluded output sections, one for code, one for data.
We'll use their section symbols for some emitted relocs. */
void
_bfd_elf_init_2_index_sections (bfd *output_bfd, struct bfd_link_info *info)
{
asection *s;
for (s = output_bfd->sections; s != NULL; s = s->next)
if (((s->flags & (SEC_EXCLUDE | SEC_ALLOC | SEC_READONLY))
== (SEC_ALLOC | SEC_READONLY))
&& !_bfd_elf_link_omit_section_dynsym (output_bfd, info, s))
{
elf_hash_table (info)->text_index_section = s;
break;
}
for (s = output_bfd->sections; s != NULL; s = s->next)
if (((s->flags & (SEC_EXCLUDE | SEC_ALLOC | SEC_READONLY)) == SEC_ALLOC)
&& !_bfd_elf_link_omit_section_dynsym (output_bfd, info, s))
{
elf_hash_table (info)->data_index_section = s;
break;
}
if (elf_hash_table (info)->text_index_section == NULL)
elf_hash_table (info)->text_index_section
= elf_hash_table (info)->data_index_section;
}
bfd_boolean
bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info)
{
const struct elf_backend_data *bed;
if (!is_elf_hash_table (info->hash))
return TRUE;
bed = get_elf_backend_data (output_bfd);
(*bed->elf_backend_init_index_section) (output_bfd, info);
if (elf_hash_table (info)->dynamic_sections_created)
{
bfd *dynobj;
const struct elf_backend_data *bed;
asection *s;
bfd_size_type dynsymcount;
unsigned long section_sym_count;
@ -5980,7 +6039,6 @@ bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info)
section as we went along in elf_link_add_object_symbols. */
s = bfd_get_section_by_name (dynobj, ".dynsym");
BFD_ASSERT (s != NULL);
bed = get_elf_backend_data (output_bfd);
s->size = dynsymcount * bed->s->sizeof_sym;
if (dynsymcount != 0)
@ -7769,6 +7827,24 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
if (!bfd_is_abs_section (osec))
{
r_symndx = osec->target_index;
if (r_symndx == 0)
{
struct elf_link_hash_table *htab;
asection *oi;
htab = elf_hash_table (finfo->info);
oi = htab->text_index_section;
if ((osec->flags & SEC_READONLY) == 0
&& htab->data_index_section != NULL)
oi = htab->data_index_section;
if (oi != NULL)
{
irela->r_addend += osec->vma - oi->vma;
r_symndx = oi->target_index;
}
}
BFD_ASSERT (r_symndx != 0);
}
}

View file

@ -2301,6 +2301,7 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
_bfd_mips_elf_always_size_sections
#define elf_backend_size_dynamic_sections \
_bfd_mips_elf_size_dynamic_sections
#define elf_backend_init_index_section _bfd_elf_init_1_index_section
#define elf_backend_relocate_section _bfd_mips_elf_relocate_section
#define elf_backend_finish_dynamic_symbol \
_bfd_mips_elf_finish_dynamic_symbol

View file

@ -5762,6 +5762,8 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
elfNN_ia64_adjust_dynamic_symbol
#define elf_backend_size_dynamic_sections \
elfNN_ia64_size_dynamic_sections
#define elf_backend_omit_section_dynsym \
((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
#define elf_backend_relocate_section \
elfNN_ia64_relocate_section
#define elf_backend_finish_dynamic_symbol \

View file

@ -4800,6 +4800,11 @@ mips_elf_create_dynamic_relocation (bfd *output_bfd,
else
{
indx = elf_section_data (sec->output_section)->dynindx;
if (indx == 0)
{
asection *osec = htab->root.text_index_section;
indx = elf_section_data (osec)->dynindx;
}
if (indx == 0)
abort ();
}

View file

@ -2864,6 +2864,8 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
{
long indx;
outrel.r_addend = relocation + rel->r_addend;
if (is_plt)
sec = htab->splt;
@ -2878,9 +2880,20 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
{
asection *osec;
/* We are turning this relocation into one
against a section symbol. It would be
proper to subtract the symbol's value,
osec->vma, from the emitted reloc addend,
but ld.so expects buggy relocs. */
osec = sec->output_section;
indx = elf_section_data (osec)->dynindx;
if (indx == 0)
{
osec = htab->elf.text_index_section;
indx = elf_section_data (osec)->dynindx;
}
/* FIXME: we really should be able to link non-pic
shared libraries. */
if (indx == 0)
@ -2894,8 +2907,8 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
}
}
outrel.r_info = SPARC_ELF_R_INFO (htab, rel, indx, r_type);
outrel.r_addend = relocation + rel->r_addend;
outrel.r_info = SPARC_ELF_R_INFO (htab, rel, indx,
r_type);
}
}

View file

@ -381,6 +381,10 @@
#ifndef elf_backend_size_dynamic_sections
#define elf_backend_size_dynamic_sections 0
#endif
#ifndef elf_backend_init_index_section
#define elf_backend_init_index_section \
((void (*) (bfd *, struct bfd_link_info *)) bfd_void)
#endif
#ifndef elf_backend_relocate_section
#define elf_backend_relocate_section 0
#endif
@ -603,6 +607,7 @@ static struct elf_backend_data elfNN_bed =
elf_backend_adjust_dynamic_symbol,
elf_backend_always_size_sections,
elf_backend_size_dynamic_sections,
elf_backend_init_index_section,
elf_backend_relocate_section,
elf_backend_finish_dynamic_symbol,
elf_backend_finish_dynamic_sections,

View file

@ -3073,7 +3073,7 @@ _bfd_generic_section_already_linked (bfd *abfd, asection *sec)
bfd_section_already_linked_table_insert (already_linked_list, sec);
}
/* Convert symbols in excluded output sections to absolute. */
/* Convert symbols in excluded output sections to use a kept section. */
static bfd_boolean
fix_syms (struct bfd_link_hash_entry *h, void *data)
@ -3092,8 +3092,27 @@ fix_syms (struct bfd_link_hash_entry *h, void *data)
&& (s->output_section->flags & SEC_EXCLUDE) != 0
&& bfd_section_removed_from_list (obfd, s->output_section))
{
asection *op;
for (op = s->output_section->prev; op != NULL; op = op->prev)
if ((op->flags & SEC_EXCLUDE) == 0
&& !bfd_section_removed_from_list (obfd, op))
break;
if (op == NULL)
{
if (s->output_section->prev != NULL)
op = s->output_section->prev->next;
else
op = s->output_section->owner->sections;
for (; op != NULL; op = op->next)
if ((op->flags & SEC_EXCLUDE) == 0
&& !bfd_section_removed_from_list (obfd, op))
break;
if (op == NULL)
op = bfd_abs_section_ptr;
}
h->u.def.value += s->output_offset + s->output_section->vma;
h->u.def.section = bfd_abs_section_ptr;
h->u.def.value -= op->vma;
h->u.def.section = op;
}
}

View file

@ -1,3 +1,11 @@
2006-10-17 Alan Modra <amodra@bigpond.net.au>
* ldlang.c (strip_excluded_output_sections): Do strip sections
that define syms, but don't ignore them.
* ld.texinfo (Output Section Discarding): Revise.
* emultempl/armcoff.em (gld${EMULATION_NAME}_finish): Always call
finish_default.
2006-10-16 Richard Sandiford <richard@codesourcery.com>
* Makefile.am (eelf64bmip.c): Depend on emulparams/elf64bmip-defs.sh.

View file

@ -154,45 +154,46 @@ gld${EMULATION_NAME}_after_open (void)
static void
gld${EMULATION_NAME}_finish (void)
{
struct bfd_link_hash_entry * h;
if (thumb_entry_symbol == NULL)
return;
h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
FALSE, FALSE, TRUE);
if (h != (struct bfd_link_hash_entry *) NULL
&& (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_defweak)
&& h->u.def.section->output_section != NULL)
if (thumb_entry_symbol != NULL)
{
static char buffer[32];
bfd_vma val;
struct bfd_link_hash_entry * h;
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
+ bfd_get_section_vma (output_bfd,
h->u.def.section->output_section)
+ h->u.def.section->output_offset);
h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol,
FALSE, FALSE, TRUE);
val |= 1;
if (h != (struct bfd_link_hash_entry *) NULL
&& (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_defweak)
&& h->u.def.section->output_section != NULL)
{
static char buffer[32];
bfd_vma val;
/* Now convert this value into a string and store it in entry_symbol
where the lang_finish() function will pick it up. */
buffer[0] = '0';
buffer[1] = 'x';
/* Special procesing is required for a Thumb entry symbol. The
bottom bit of its address must be set. */
val = (h->u.def.value
+ bfd_get_section_vma (output_bfd,
h->u.def.section->output_section)
+ h->u.def.section->output_offset);
sprintf_vma (buffer + 2, val);
val |= 1;
if (entry_symbol.name != NULL && entry_from_cmdline)
einfo (_("%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"),
thumb_entry_symbol, entry_symbol.name);
entry_symbol.name = buffer;
/* Now convert this value into a string and store it in entry_symbol
where the lang_finish() function will pick it up. */
buffer[0] = '0';
buffer[1] = 'x';
sprintf_vma (buffer + 2, val);
if (entry_symbol.name != NULL && entry_from_cmdline)
einfo (_("%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"),
thumb_entry_symbol, entry_symbol.name);
entry_symbol.name = buffer;
}
else
einfo (_("%P: warning: connot find thumb start symbol %s\n"),
thumb_entry_symbol);
}
else
einfo (_("%P: warning: connot find thumb start symbol %s\n"), thumb_entry_symbol);
finish_default ();
}

View file

@ -3684,21 +3684,23 @@ scripts.
@cindex discarding sections
@cindex sections, discarding
@cindex removing sections
The linker will not create output section which do not have any
contents. This is for convenience when referring to input sections that
may or may not be present in any of the input files. For example:
The linker will not create output sections with no contents. This is
for convenience when referring to input sections that may or may not
be present in any of the input files. For example:
@smallexample
.foo : @{ *(.foo) @}
@end smallexample
@noindent
will only create a @samp{.foo} section in the output file if there is a
@samp{.foo} section in at least one input file.
@samp{.foo} section in at least one input file, and if the input
sections are not all empty. Other link script directives that allocate
space in an output section will also create the output section.
If you use anything other than an input section description as an output
section command, such as a symbol assignment, then the output section
will always be created, even if there are no matching input sections.
When a section is discarded, its address (@xref{Output Section Address})
will also be ignored.
The linker will ignore address assignments (@xref{Output Section Address})
on discarded output sections, except when the linker script defines
symbols in the output section. In that case the linker will obey
the address assignments, possibly advancing dot and/or current lma
even though the section is discarded.
@cindex /DISCARD/
The special output section name @samp{/DISCARD/} may be used to discard

View file

@ -3342,7 +3342,6 @@ strip_excluded_output_sections (void)
continue;
exclude = (output_section->rawsize == 0
&& !os->section_relative_symbol
&& (output_section->flags & SEC_KEEP) == 0
&& !bfd_section_removed_from_list (output_bfd,
output_section));
@ -3372,7 +3371,8 @@ strip_excluded_output_sections (void)
{
/* We don't set bfd_section to NULL since bfd_section of the
removed output section statement may still be used. */
os->ignored = TRUE;
if (!os->section_relative_symbol)
os->ignored = TRUE;
output_section->flags |= SEC_EXCLUDE;
bfd_section_list_remove (output_bfd, output_section);
output_bfd->section_count--;

View file

@ -1,3 +1,30 @@
2006-10-17 Alan Modra <amodra@bigpond.net.au>
* ld-arm/mixed-app.sym, ld-cris/ldsym1.d, ld-cris/libdso-12.d,
* ld-cris/v32-ba-1.d, ld-elf/orphan.d, ld-elf/orphan2.d,
* ld-i386/tlsbin.rd, ld-i386/tlsbindesc.rd, ld-i386/tlsdesc.rd,
* ld-i386/tlsdesc.sd, ld-i386/tlsgdesc.rd, ld-i386/tlsnopic.rd,
* ld-i386/tlspic.rd, ld-ia64/tlspic.rd, ld-mips-elf/eh-frame1-n32.d,
* ld-mips-elf/eh-frame1-n64.d, ld-mips-elf/eh-frame2-n32.d,
* ld-mips-elf/eh-frame2-n64.d, ld-mips-elf/mips-elf.exp,
* ld-mips-elf/rel32-n32.d, ld-mips-elf/rel32-o32.d,
* ld-mips-elf/rel64.d, ld-mips-elf/tls-multi-got-1.got,
* ld-mips-elf/tls-multi-got-1.r, ld-mips-elf/tlsdyn-o32-1.d,
* ld-mips-elf/tlsdyn-o32-1.got, ld-mips-elf/tlsdyn-o32-2.d,
* ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.d,
* ld-mips-elf/tlsdyn-o32-3.got, ld-mips-elf/tlsdyn-o32.d,
* ld-mips-elf/tlsdyn-o32.got, ld-mips-elf/tlslib-o32-hidden.got,
* ld-mips-elf/tlslib-o32-ver.got, ld-mips-elf/tlslib-o32.got,
* ld-mmix/bpo-10.d, ld-powerpc/tlsso.g, ld-powerpc/tlsso.r,
* ld-powerpc/tlsso32.d, ld-powerpc/tlsso32.g, ld-powerpc/tlsso32.r,
* ld-powerpc/tlstocso.g, ld-powerpc/tlstocso.r, ld-s390/tlspic.rd,
* ld-s390/tlspic_64.rd, ld-scripts/empty-address-1.d,
* ld-scripts/empty-address-3c.d, ld-scripts/empty-orphan.t,
* ld-sh/shared-1.d, ld-sh/tlspic-2.d, ld-sparc/tlssunbin32.rd,
* ld-sparc/tlssunbin64.rd, ld-sparc/tlssunpic32.rd,
* ld-sparc/tlssunpic64.rd, ld-x86-64/tlsdesc.pd, ld-x86-64/tlsdesc.rd,
* ld-x86-64/tlspic.rd: Update for section sym changes.
2006-10-16 Richard Sandiford <richard@codesourcery.com>
* ld-mips-elf/branch-misc-1.d: Set the start address to 0x20000000.

View file

@ -9,7 +9,7 @@ Symbol table for image:
.. ..: 0*[^0]*.* 20 FUNC GLOBAL DEFAULT UND lib_func1
.. ..: ........ 0 NOTYPE GLOBAL DEFAULT ABS __exidx_start
.. ..: ........ 0 NOTYPE GLOBAL DEFAULT 11 __data_start
.. ..: ........ 0 NOTYPE GLOBAL DEFAULT ABS _stack
.. ..: ........ 0 NOTYPE GLOBAL DEFAULT 12 _stack
.. ..: ........ 0 NOTYPE GLOBAL DEFAULT ABS __end__
.. ..: ........ 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
.. ..: .......0 0 FUNC GLOBAL DEFAULT 8 app_func2

View file

@ -13,7 +13,7 @@
Disassembly of section \.text:
0+ <__start>:
0+ <(__start|__Stext)>:
0: 0f05 nop
0+2 <expfn>:

View file

@ -12,40 +12,40 @@
DYNAMIC SYMBOL TABLE:
#...
0+252 g DF \.text 0+12 dsofn4
0+248 g DF \.text 0+2 expfn
0+2310 g DO \.data 0+4 expobj
0+23e g DF \.text 0+12 dsofn4
0+234 g DF \.text 0+2 expfn
0+22fc g DO \.data 0+4 expobj
#...
0+24a g DF \.text 0+8 dsofn3
0+236 g DF \.text 0+8 dsofn3
#...
0+ D \*UND\* 0+ dsofn
#...
Contents of section \.rela\.got:
01d4 0c230000 0a050000 00000000 .*
01c0 f8220000 0a040000 00000000 .*
Contents of section \.rela\.plt:
01e0 04230000 0b030000 00000000 08230000 .*
01f0 0b0b0000 00000000 .*
01cc f0220000 0b020000 00000000 f4220000 .*
01dc 0b0a0000 00000000 .*
Contents of section \.plt:
01f8 84e20401 7e7a3f7a 04f26ffa bf09b005 .*
0208 00000000 00000000 00006f0d 0c000000 .*
0218 6ffabf09 b0053f7e 00000000 bf0ed4ff .*
0228 ffffb005 6f0d1000 00006ffa bf09b005 .*
0238 3f7e0c00 0000bf0e baffffff b005 .*
01e4 84e20401 7e7a3f7a 04f26ffa bf09b005 .*
01f4 00000000 00000000 00006f0d 0c000000 .*
0204 6ffabf09 b0053f7e 00000000 bf0ed4ff .*
0214 ffffb005 6f0d1000 00006ffa bf09b005 .*
0224 3f7e0c00 0000bf0e baffffff b005 .*
Contents of section \.text:
0246 b005b005 bfbee2ff ffffb005 7f0da620 .*
0256 00005f0d 1400bfbe b6ffffff b0050000 .*
0232 b005b005 bfbee2ff ffffb005 7f0da620 .*
0242 00005f0d 1400bfbe b6ffffff b0050000 .*
Contents of section \.dynamic:
2268 04000000 94000000 05000000 98010000 .*
2278 06000000 d8000000 0a000000 3a000000 .*
2288 0b000000 10000000 03000000 f8220000 .*
2298 02000000 18000000 14000000 07000000 .*
22a8 17000000 e0010000 07000000 d4010000 .*
22b8 08000000 0c000000 09000000 0c000000 .*
22c8 00000000 00000000 00000000 00000000 .*
22d8 00000000 00000000 00000000 00000000 .*
22e8 00000000 00000000 00000000 00000000 .*
2254 04000000 94000000 05000000 84010000 .*
2264 06000000 d4000000 0a000000 3a000000 .*
2274 0b000000 10000000 03000000 e4220000 .*
2284 02000000 18000000 14000000 07000000 .*
2294 17000000 cc010000 07000000 c0010000 .*
22a4 08000000 0c000000 09000000 0c000000 .*
22b4 00000000 00000000 00000000 00000000 .*
22c4 00000000 00000000 00000000 00000000 .*
22d4 00000000 00000000 00000000 00000000 .*
Contents of section \.got:
22f8 68220000 00000000 00000000 1e020000 .*
2308 38020000 00000000 .*
22e4 54220000 00000000 00000000 0a020000 .*
22f4 24020000 00000000 .*
Contents of section \.data:
2310 00000000 .*
22fc 00000000 .*

View file

@ -10,7 +10,7 @@
Disassembly of section \.text:
0+ <a>:
0+ <(a|__Stext)>:
0: bf0e 0800 0000 ba 8 <b>
6: 5e82 moveq 30,r8

View file

@ -4,6 +4,7 @@
#...
\[[ 0-9]+\] \.(text|notbad)[ \t]+PROGBITS[ \t0-9a-f]+AX?.*
#...
\[[ 0-9]+\] \.(text|notbad)[ \t]+PROGBITS[ \t0-9a-f]+AX?.*
\[[ 0-9]+\] \.data[ \t]+PROGBITS[ \t0-9a-f]+WA.*
#...

View file

@ -4,5 +4,6 @@
#...
\[[ 0-9]+\] \.text[ \t]+PROGBITS[ \t0-9a-f]+AX?.*
#...
\[[ 0-9]+\] \.modinfo[ \t]+PROGBITS[ \t0-9a-f]+A.*
#pass

View file

@ -70,7 +70,7 @@ Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset +Info +Type +Sym.Value Sym. Name
[0-9a-f ]+R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr
Symbol table '.dynsym' contains 13 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3

View file

@ -64,7 +64,7 @@ Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries:
0+804a0fc 00000825 R_386_TLS_TPOFF32 0+ +sG1
0+804a100 00000b0e R_386_TLS_TPOFF +0+ +sG8
Symbol table '.dynsym' contains 12 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3

View file

@ -49,41 +49,38 @@ Program Headers:
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
[0-9a-f]+ +0+50e R_386_TLS_TPOFF 0+8 sg3
[0-9a-f]+ +0+625 R_386_TLS_TPOFF32 0+c sg4
[0-9a-f]+ +0+60e R_386_TLS_TPOFF 0+c sg4
[0-9a-f]+ +0+70e R_386_TLS_TPOFF 0+10 sg5
[0-9a-f]+ +0+b25 R_386_TLS_TPOFF32 0+4 sg2
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF 0+8 sg3
[0-9a-f ]+R_386_TLS_TPOFF32 0+c sg4
[0-9a-f ]+R_386_TLS_TPOFF 0+c sg4
[0-9a-f ]+R_386_TLS_TPOFF 0+10 sg5
[0-9a-f ]+R_386_TLS_TPOFF32 0+4 sg2
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 5 entries:
Offset Info Type Sym.Value Sym. Name
[0-9a-f]+ +0+829 R_386_TLS_DESC * 0+ sg1
[0-9a-f]+ +0+29 R_386_TLS_DESC *
[0-9a-f]+ +0+29 R_386_TLS_DESC *
[0-9a-f]+ +0+29 R_386_TLS_DESC *
[0-9a-f]+ +0+29 R_386_TLS_DESC *
[0-9a-f ]+R_386_TLS_DESC * 0+ sg1
[0-9a-f ]+R_386_TLS_DESC *
[0-9a-f ]+R_386_TLS_DESC *
[0-9a-f ]+R_386_TLS_DESC *
[0-9a-f ]+R_386_TLS_DESC *
Symbol table '.dynsym' contains 16 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: + Value Size Type + Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
+[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +7 sg8
+[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +7 sg3
+[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +7 sg4

View file

@ -14,7 +14,7 @@ Contents of section \.got:
[0-9a-f]+ 6c000000 b4ffffff 4c000000 68000000 .*
[0-9a-f]+ 50000000 70000000 00000000 bcffffff .*
Contents of section \.got\.plt:
[0-9a-f]+ ec150000 00000000 00000000 00000000 .*
[0-9a-f]+ b0150000 00000000 00000000 00000000 .*
[0-9a-f]+ 20000000 00000000 60000000 00000000 .*
[0-9a-f]+ 00000000 00000000 00000000 00000000 .*
[0-9a-f]+ 40000000 +.*

View file

@ -45,25 +45,24 @@ Program Headers:
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f]+ +0+225 R_386_TLS_TPOFF32 0+ sG3
[0-9a-f]+ +0+30e R_386_TLS_TPOFF 0+ sG5
[0-9a-f]+ +0+423 R_386_TLS_DTPMOD3 0+ sG2
[0-9a-f]+ +0+424 R_386_TLS_DTPOFF3 0+ sG2
[0-9a-f]+ +0+50e R_386_TLS_TPOFF 0+ sG4
[0-9a-f]+ +0+725 R_386_TLS_TPOFF32 0+ sG6
[0-9a-f]+ +0+923 R_386_TLS_DTPMOD3 0+ sG1
[0-9a-f]+ +0+924 R_386_TLS_DTPOFF3 0+ sG1
[0-9a-f ]+R_386_TLS_TPOFF32 0+ sG3
[0-9a-f ]+R_386_TLS_TPOFF 0+ sG5
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ sG2
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ sG2
[0-9a-f ]+R_386_TLS_TPOFF 0+ sG4
[0-9a-f ]+R_386_TLS_TPOFF32 0+ sG6
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ sG1
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ sG1
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 3 entries:
Offset Info Type Sym.Value Sym. Name
[0-9a-f]+ 0+c07 R_386_JUMP_SLOT 0+ ___tls_get_addr
[0-9a-f]+ 0+929 R_386_TLS_DESC 0+ sG1
[0-9a-f]+ 0+429 R_386_TLS_DESC 0+ sG2
[0-9a-f ]+R_386_JUMP_SLOT 0+ ___tls_get_addr
[0-9a-f ]+R_386_TLS_DESC 0+ sG1
[0-9a-f ]+R_386_TLS_DESC 0+ sG2
Symbol table '.dynsym' contains 13 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: + Value Size Type + Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2

View file

@ -69,11 +69,9 @@ Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
[0-9a-f ]+R_386_TLS_TPOFF 0+ sg2
Symbol table '.dynsym' contains 12 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg3
+[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg4
+[0-9]+: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3

View file

@ -81,12 +81,9 @@ Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f ]+R_386_JUMP_SLOT 0+ ___tls_get_addr
Symbol table '.dynsym' contains 17 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
+[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4

View file

@ -59,11 +59,6 @@ Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND *
.* SECTION LOCAL +DEFAULT +7 *
.* SECTION LOCAL +DEFAULT +8 *
.* SECTION LOCAL +DEFAULT +10 *
.* SECTION LOCAL +DEFAULT +11 *
.* SECTION LOCAL +DEFAULT +14 *
.* TLS +GLOBAL DEFAULT +10 sg8
.* TLS +GLOBAL DEFAULT +10 sg3
.* TLS +GLOBAL DEFAULT +10 sg4

View file

@ -7,19 +7,19 @@
Relocation section '\.rel\.dyn' .*:
*Offset .*
00000000 00000000 R_MIPS_NONE *
00000000 [0-9a-f]+ R_MIPS_NONE *
# Initial PCs for the FDEs attached to CIE 0xbc
000300dc 00000003 R_MIPS_REL32 *
000300f0 00000003 R_MIPS_REL32 *
000300dc [0-9a-f]+ R_MIPS_REL32 *
000300f0 [0-9a-f]+ R_MIPS_REL32 *
# Likewise CIE 0x220
00030240 00000003 R_MIPS_REL32 *
00030254 00000003 R_MIPS_REL32 *
0003008b 00000503 R_MIPS_REL32 00000000 foo
000300d0 00000503 R_MIPS_REL32 00000000 foo
0003010e 00000503 R_MIPS_REL32 00000000 foo
000301ef 00000503 R_MIPS_REL32 00000000 foo
00030234 00000503 R_MIPS_REL32 00000000 foo
00030272 00000503 R_MIPS_REL32 00000000 foo
00030240 [0-9a-f]+ R_MIPS_REL32 *
00030254 [0-9a-f]+ R_MIPS_REL32 *
0003008b [0-9a-f]+ R_MIPS_REL32 00000000 foo
000300d0 [0-9a-f]+ R_MIPS_REL32 00000000 foo
0003010e [0-9a-f]+ R_MIPS_REL32 00000000 foo
000301ef [0-9a-f]+ R_MIPS_REL32 00000000 foo
00030234 [0-9a-f]+ R_MIPS_REL32 00000000 foo
00030272 [0-9a-f]+ R_MIPS_REL32 00000000 foo
#...
The section \.eh_frame contains:

View file

@ -7,39 +7,39 @@
Relocation section '\.rel\.dyn' .*:
*Offset .*
000000000000 000000000000 R_MIPS_NONE *
000000000000 [0-9a-f]+ R_MIPS_NONE *
*Type2: R_MIPS_NONE *
*Type3: R_MIPS_NONE *
# Initial PCs for the FDEs attached to CIE 0x120
000000030148 000000001203 R_MIPS_REL32 *
000000030148 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030168 000000001203 R_MIPS_REL32 *
000000030168 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
# Likewise CIE 0x340
000000030368 000000001203 R_MIPS_REL32 *
000000030368 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030388 000000001203 R_MIPS_REL32 *
000000030388 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
0000000300cb 000500001203 R_MIPS_REL32 0000000000000000 foo
0000000300cb [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030138 000500001203 R_MIPS_REL32 0000000000000000 foo
000000030138 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030192 000500001203 R_MIPS_REL32 0000000000000000 foo
000000030192 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
0000000302eb 000500001203 R_MIPS_REL32 0000000000000000 foo
0000000302eb [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030358 000500001203 R_MIPS_REL32 0000000000000000 foo
000000030358 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
0000000303b2 000500001203 R_MIPS_REL32 0000000000000000 foo
0000000303b2 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
#...

View file

@ -7,19 +7,19 @@
Relocation section '\.rel\.dyn' .*:
*Offset .*
00000000 00000000 R_MIPS_NONE *
00000000 [0-9a-f]+ R_MIPS_NONE *
# Initial PCs for the FDEs attached to CIE 0xb8
000300d8 00000003 R_MIPS_REL32 *
000300ec 00000003 R_MIPS_REL32 *
000300d8 [0-9a-f]+ R_MIPS_REL32 *
000300ec [0-9a-f]+ R_MIPS_REL32 *
# Likewise CIE 0x218
00030238 00000003 R_MIPS_REL32 *
0003024c 00000003 R_MIPS_REL32 *
0003008b 00000503 R_MIPS_REL32 00000000 foo
000300cc 00000503 R_MIPS_REL32 00000000 foo
0003010a 00000503 R_MIPS_REL32 00000000 foo
000301eb 00000503 R_MIPS_REL32 00000000 foo
0003022c 00000503 R_MIPS_REL32 00000000 foo
0003026a 00000503 R_MIPS_REL32 00000000 foo
00030238 [0-9a-f]+ R_MIPS_REL32 *
0003024c [0-9a-f]+ R_MIPS_REL32 *
0003008b [0-9a-f]+ R_MIPS_REL32 00000000 foo
000300cc [0-9a-f]+ R_MIPS_REL32 00000000 foo
0003010a [0-9a-f]+ R_MIPS_REL32 00000000 foo
000301eb [0-9a-f]+ R_MIPS_REL32 00000000 foo
0003022c [0-9a-f]+ R_MIPS_REL32 00000000 foo
0003026a [0-9a-f]+ R_MIPS_REL32 00000000 foo
#...
The section \.eh_frame contains:

View file

@ -7,39 +7,39 @@
Relocation section '\.rel\.dyn' .*:
*Offset .*
000000000000 000000000000 R_MIPS_NONE *
000000000000 [0-9a-f]+ R_MIPS_NONE *
*Type2: R_MIPS_NONE *
*Type3: R_MIPS_NONE *
# Initial PCs for the FDEs attached to CIE 0x118
000000030140 000000001203 R_MIPS_REL32 *
000000030140 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030160 000000001203 R_MIPS_REL32 *
000000030160 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
# Likewise CIE 0x330
000000030358 000000001203 R_MIPS_REL32 *
000000030358 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030378 000000001203 R_MIPS_REL32 *
000000030378 [0-9a-f]+ R_MIPS_REL32 *
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
0000000300cb 000500001203 R_MIPS_REL32 0000000000000000 foo
0000000300cb [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030130 000500001203 R_MIPS_REL32 0000000000000000 foo
000000030130 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
00000003018a 000500001203 R_MIPS_REL32 0000000000000000 foo
00000003018a [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
0000000302e3 000500001203 R_MIPS_REL32 0000000000000000 foo
0000000302e3 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
000000030348 000500001203 R_MIPS_REL32 0000000000000000 foo
000000030348 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
0000000303a2 000500001203 R_MIPS_REL32 0000000000000000 foo
0000000303a2 [0-9a-f]+ R_MIPS_REL32 0000000000000000 foo
*Type2: R_MIPS_64 *
*Type3: R_MIPS_NONE *
#...

View file

@ -147,14 +147,13 @@ run_dump_test "hash1c"
if {[istarget mips*-*-linux*]} {
# The number of symbols that are always included in the symbol table
# for these tests. The 5 are:
# for these tests. The 4 are:
#
# the null symbol entry
# the .MIPS.stubs section symbol
# the .text section symbol
# _gp
# _GLOBAL_OFFSET_TABLE_
set base_syms 5
set base_syms 4
foreach dynsym { 7fff 8000 fff0 10000 2fe80 } {
run_ld_link_tests \
[list [list \

View file

@ -6,10 +6,10 @@
Relocation section '.rel.dyn' at offset .* contains 2 entries:
Offset Info Type Sym.Value Sym. Name
00000000 00000000 R_MIPS_NONE
000002d0 00000003 R_MIPS_REL32
[0-9a-f ]+R_MIPS_NONE
[0-9a-f ]+R_MIPS_REL32
Hex dump of section '.text':
0x000002c0 00000000 00000000 00000000 00000000 ................
0x000002d0 000002d0 00000000 00000000 00000000 ................
0x000002e0 00000000 00000000 00000000 00000000 ................
0x000002b0 00000000 00000000 00000000 00000000 ................
0x000002c0 000002c0 00000000 00000000 00000000 ................
0x000002d0 00000000 00000000 00000000 00000000 ................

View file

@ -6,10 +6,10 @@
Relocation section '.rel.dyn' at offset .* contains 2 entries:
Offset Info Type Sym.Value Sym. Name
00000000 00000000 R_MIPS_NONE
000002f0 00000003 R_MIPS_REL32
[0-9a-f ]+R_MIPS_NONE
[0-9a-f ]+R_MIPS_REL32
Hex dump of section '.text':
0x000002c0 00000000 00000000 00000000 00000000 ................
0x000002d0 000002d0 00000000 00000000 00000000 ................
0x000002e0 00000000 00000000 00000000 00000000 ................
0x000002f0 000002f0 00000000 00000000 00000000 ................
0x00000300 00000000 00000000 00000000 00000000 ................

View file

@ -6,14 +6,14 @@
Relocation section '.rel.dyn' at offset .* contains 2 entries:
Offset Info Type Sym. Value Sym. Name
000000000000 000000000000 R_MIPS_NONE
Type2: R_MIPS_NONE
Type3: R_MIPS_NONE
000000000450 000000001203 R_MIPS_REL32
Type2: R_MIPS_64
Type3: R_MIPS_NONE
[0-9a-f ]+R_MIPS_NONE
+Type2: R_MIPS_NONE
+Type3: R_MIPS_NONE
[0-9a-f ]+R_MIPS_REL32
+Type2: R_MIPS_64
+Type3: R_MIPS_NONE
Hex dump of section '.text':
0x00000440 00000000 00000000 00000000 00000000 ................
0x00000450 00000000 00000450 00000000 00000000 ................
0x00000460 00000000 00000000 00000000 00000000 ................
0x00000430 00000000 00000000 00000000 00000000 ................
0x00000440 00000000 00000440 00000000 00000000 ................
0x00000450 00000000 00000000 00000000 00000000 ................

View file

@ -4,17 +4,17 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
001495d0 R_MIPS_TLS_DTPMOD32 \*ABS\*
0013f948 R_MIPS_TLS_DTPMOD32 \*ABS\*
001495dc R_MIPS_TLS_DTPMOD32 tlsvar_gd
001495e0 R_MIPS_TLS_DTPREL32 tlsvar_gd
0013f954 R_MIPS_TLS_DTPMOD32 tlsvar_gd
0013f958 R_MIPS_TLS_DTPREL32 tlsvar_gd
001495d8 R_MIPS_TLS_TPREL32 tlsvar_ie
0013f950 R_MIPS_TLS_TPREL32 tlsvar_ie
00143f7c R_MIPS_REL32 sym_1_9526
001495c0 R_MIPS_TLS_DTPMOD32 \*ABS\*
0013f938 R_MIPS_TLS_DTPMOD32 \*ABS\*
001495cc R_MIPS_TLS_DTPMOD32 tlsvar_gd
001495d0 R_MIPS_TLS_DTPREL32 tlsvar_gd
0013f944 R_MIPS_TLS_DTPMOD32 tlsvar_gd
0013f948 R_MIPS_TLS_DTPREL32 tlsvar_gd
001495c8 R_MIPS_TLS_TPREL32 tlsvar_ie
0013f940 R_MIPS_TLS_TPREL32 tlsvar_ie
00143f6c R_MIPS_REL32 sym_1_9526
#...
00139bd0 R_MIPS_REL32 sym_2_8654
00139bc0 R_MIPS_REL32 sym_2_8654
00000000 R_MIPS_NONE \*ABS\*
00000000 R_MIPS_NONE \*ABS\*
00000000 R_MIPS_NONE \*ABS\*
@ -40,19 +40,19 @@ OFFSET TYPE VALUE
Contents of section .got:
122420 00000000 80000000 00000000 00000000 ................
122430 00000000 00000000 00000000 00000000 ................
122440 00000000 00000000 00000000 00000000 ................
122450 00000000 000d8048 000d66a4 000d2054 .......H..f... T
122410 00000000 80000000 00000000 00000000 .*
122420 00000000 00000000 00000000 00000000 .*
122430 00000000 00000000 00000000 00000000 .*
122440 00000000 000d8038 000d6694 000d2044 .*
#...
13f930 00000000 00000000 00000000 00000000 ................
13f940 00000000 00000000 00000000 00000000 ................
13f950 00000000 00000000 00000000 00000000 ................
13f960 80000000 00000000 00000000 00000000 ................
13f920 00000000 00000000 00000000 00000000 .*
13f930 00000000 00000000 00000000 00000000 .*
13f940 00000000 00000000 00000000 00000000 .*
13f950 80000000 00000000 00000000 00000000 .*
#...
1495a0 00000000 00000000 00000000 00000000 ................
1495b0 00000000 00000000 00000000 00000000 ................
1495c0 00000000 00000000 00000000 00000000 ................
1495d0 00000000 00000000 00000000 00000000 ................
1495e0 00000000 ....
149590 00000000 00000000 00000000 00000000 .*
1495a0 00000000 00000000 00000000 00000000 .*
1495b0 00000000 00000000 00000000 00000000 .*
1495c0 00000000 00000000 00000000 00000000 .*
1495d0 00000000 .*
#pass

View file

@ -2,60 +2,39 @@
Dynamic section at offset 0xec contains 19 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x1ac
0x00000005 \(STRTAB\) 0x71db8
0x00000006 \(SYMTAB\) 0x23ad8
0x00000005 \(STRTAB\).*
0x00000006 \(SYMTAB\).*
0x0000000a \(STRSZ\) 220091 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000015 \(DEBUG\) 0x0
0x00000003 \(PLTGOT\) 0x122420
0x00000011 \(REL\) 0xa7974
0x00000003 \(PLTGOT\) 0x122410
0x00000011 \(REL\) 0xa7960
0x00000012 \(RELSZ\) 160072 \(bytes\)
0x00000013 \(RELENT\) 8 \(bytes\)
0x70000001 \(MIPS_RLD_VERSION\) 1
0x70000005 \(MIPS_FLAGS\) NOTPOT
0x70000006 \(MIPS_BASE_ADDRESS\) 0
0x7000000a \(MIPS_LOCAL_GOTNO\) 13
0x70000011 \(MIPS_SYMTABNO\) 20014
0x70000011 \(MIPS_SYMTABNO\) 20013
0x70000012 \(MIPS_UNREFEXTNO\) 11
0x70000013 \(MIPS_GOTSYM\) 0xe
0x70000013 \(MIPS_GOTSYM\) 0xd
0x0000001e \(FLAGS\) STATIC_TLS
0x00000000 \(NULL\) 0x0
Relocation section '\.rel\.dyn' at offset 0x[0-9a-f]+ contains 20031 entries:
Offset Info Type Sym.Value Sym. Name
00000000 00000000 R_MIPS_NONE
001495d0 00000026 R_MIPS_TLS_DTPMOD
0013f948 00000026 R_MIPS_TLS_DTPMOD
001495dc 00000626 R_MIPS_TLS_DTPMOD 00000000 tlsvar_gd
001495e0 00000627 R_MIPS_TLS_DTPREL 00000000 tlsvar_gd
0013f954 00000626 R_MIPS_TLS_DTPMOD 00000000 tlsvar_gd
0013f958 00000627 R_MIPS_TLS_DTPREL 00000000 tlsvar_gd
001495d8 00000b2f R_MIPS_TLS_TPREL3 00000004 tlsvar_ie
0013f950 00000b2f R_MIPS_TLS_TPREL3 00000004 tlsvar_ie
00143f7c 00000e03 R_MIPS_REL32 000d8048 sym_1_9526
00143768 00000f03 R_MIPS_REL32 000d66a4 sym_1_7885
[0-9a-f ]+R_MIPS_NONE
[0-9a-f ]+R_MIPS_TLS_DTPMOD
[0-9a-f ]+R_MIPS_TLS_DTPMOD
[0-9a-f ]+R_MIPS_TLS_DTPMOD 00000000 tlsvar_gd
[0-9a-f ]+R_MIPS_TLS_DTPREL 00000000 tlsvar_gd
[0-9a-f ]+R_MIPS_TLS_DTPMOD 00000000 tlsvar_gd
[0-9a-f ]+R_MIPS_TLS_DTPREL 00000000 tlsvar_gd
[0-9a-f ]+R_MIPS_TLS_TPREL3 00000004 tlsvar_ie
[0-9a-f ]+R_MIPS_TLS_TPREL3 00000004 tlsvar_ie
[0-9a-f ]+R_MIPS_REL32 000d8038 sym_1_9526
[0-9a-f ]+R_MIPS_REL32 000d6694 sym_1_7885
#...
[0-9a-f ]+R_MIPS_REL32 000cf2a4 sym_1_0465
[0-9a-f ]+R_MIPS_REL32 000e0ee8 sym_2_8654
#...
0014070c 004e2c03 R_MIPS_REL32 000cf2b4 sym_1_0465
00139bd0 004e2d03 R_MIPS_REL32 000e0ef8 sym_2_8654
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE
00000000 00000000 R_MIPS_NONE

View file

@ -5,7 +5,7 @@ Disassembly of section .text:
.* <__start>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7b70 addiu gp,gp,31600
.*: 279c7ba0 addiu gp,gp,31648
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)
@ -55,7 +55,7 @@ Disassembly of section .text:
.* <other>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7ab0 addiu gp,gp,31408
.*: 279c7ae0 addiu gp,gp,31456
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)

View file

@ -4,16 +4,16 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
10000044 R_MIPS_TLS_DTPMOD32 tlsbin_gd
10000048 R_MIPS_TLS_DTPREL32 tlsbin_gd
10000038 R_MIPS_TLS_DTPMOD32 tlsvar_gd
1000003c R_MIPS_TLS_DTPREL32 tlsvar_gd
10000040 R_MIPS_TLS_TPREL32 tlsvar_ie
1000004c R_MIPS_TLS_TPREL32 tlsbin_ie
10000054 R_MIPS_TLS_DTPMOD32 tlsbin_gd
10000058 R_MIPS_TLS_DTPREL32 tlsbin_gd
10000048 R_MIPS_TLS_DTPMOD32 tlsvar_gd
1000004c R_MIPS_TLS_DTPREL32 tlsvar_gd
10000050 R_MIPS_TLS_TPREL32 tlsvar_ie
1000005c R_MIPS_TLS_TPREL32 tlsbin_ie
Contents of section .got:
10000010 00000000 80000000 00000000 00000000 ................
10000020 00000000 00000000 00000000 0040053c .............@..
10000030 00000001 00000000 00000000 00000000 ................
10000040 00000000 00000000 00000000 00000000 ................
10000020 00000000 80000000 00000000 00000000 ................
10000030 00000000 00000000 00000000 0040051c .............@..
10000040 00000001 00000000 00000000 00000000 ................
10000050 00000000 00000000 00000000 00000000 ................

View file

@ -5,7 +5,7 @@ Disassembly of section .text:
.* <__start>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7b70 addiu gp,gp,31600
.*: 279c7ba0 addiu gp,gp,31648
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)
@ -55,7 +55,7 @@ Disassembly of section .text:
.* <other>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7ab0 addiu gp,gp,31408
.*: 279c7ae0 addiu gp,gp,31456
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)

View file

@ -4,17 +4,17 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
10000048 R_MIPS_TLS_DTPMOD32 tlsbin_gd
1000004c R_MIPS_TLS_DTPREL32 tlsbin_gd
1000003c R_MIPS_TLS_DTPMOD32 tlsvar_gd
10000040 R_MIPS_TLS_DTPREL32 tlsvar_gd
10000044 R_MIPS_TLS_TPREL32 tlsvar_ie
10000050 R_MIPS_TLS_TPREL32 tlsbin_ie
10000058 R_MIPS_TLS_DTPMOD32 tlsbin_gd
1000005c R_MIPS_TLS_DTPREL32 tlsbin_gd
1000004c R_MIPS_TLS_DTPMOD32 tlsvar_gd
10000050 R_MIPS_TLS_DTPREL32 tlsvar_gd
10000054 R_MIPS_TLS_TPREL32 tlsvar_ie
10000060 R_MIPS_TLS_TPREL32 tlsbin_ie
Contents of section .got:
10000010 00000000 80000000 00000000 00000000 ................
10000020 00000000 00000000 00000000 00000000 ................
10000030 0040053c 00000001 00000000 00000000 .@.<............
10000040 00000000 00000000 00000000 00000000 ................
10000050 00000000 00000000 00000000 00000000 ................
10000020 00000000 80000000 00000000 00000000 .*
10000030 00000000 00000000 00000000 00000000 .*
10000040 0040051c 00000001 00000000 00000000 .*
10000050 00000000 00000000 00000000 00000000 .*
10000060 00000000 00000000 00000000 00000000 .*

View file

@ -5,7 +5,7 @@ Disassembly of section .text:
.* <other>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7b70 addiu gp,gp,31600
.*: 279c7ba0 addiu gp,gp,31648
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)
@ -51,7 +51,7 @@ Disassembly of section .text:
.* <__start>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7ac0 addiu gp,gp,31424
.*: 279c7af0 addiu gp,gp,31472
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)

View file

@ -4,17 +4,17 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
10000048 R_MIPS_TLS_DTPMOD32 tlsbin_gd
1000004c R_MIPS_TLS_DTPREL32 tlsbin_gd
1000003c R_MIPS_TLS_DTPMOD32 tlsvar_gd
10000040 R_MIPS_TLS_DTPREL32 tlsvar_gd
10000044 R_MIPS_TLS_TPREL32 tlsvar_ie
10000050 R_MIPS_TLS_TPREL32 tlsbin_ie
10000058 R_MIPS_TLS_DTPMOD32 tlsbin_gd
1000005c R_MIPS_TLS_DTPREL32 tlsbin_gd
1000004c R_MIPS_TLS_DTPMOD32 tlsvar_gd
10000050 R_MIPS_TLS_DTPREL32 tlsvar_gd
10000054 R_MIPS_TLS_TPREL32 tlsvar_ie
10000060 R_MIPS_TLS_TPREL32 tlsbin_ie
Contents of section .got:
10000010 00000000 80000000 00000000 00000000 ................
10000020 00000000 00000000 00000000 00000000 ................
10000030 004005ec 00000001 00000000 00000000 .@..............
10000040 00000000 00000000 00000000 00000000 ................
10000020 00000000 80000000 00000000 00000000 ................
10000030 00000000 00000000 00000000 00000000 ................
10000040 004005cc 00000001 00000000 00000000 .@..............
10000050 00000000 00000000 00000000 00000000 ................
10000060 00000000 00000000 00000000 00000000 ................

View file

@ -5,7 +5,7 @@ Disassembly of section .text:
.* <__start>:
.*: 3c1c0fc0 lui gp,0xfc0
.*: 279c7bb0 addiu gp,gp,31664
.*: 279c7bc0 addiu gp,gp,31680
.*: 0399e021 addu gp,gp,t9
.*: 27bdfff0 addiu sp,sp,-16
.*: afbe0008 sw s8,8\(sp\)

View file

@ -4,16 +4,16 @@ tmpdir/tls-dynamic-o32: file format elf32-tradbigmips
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
10000038 R_MIPS_TLS_DTPMOD32 tlsbin_gd
1000003c R_MIPS_TLS_DTPREL32 tlsbin_gd
10000048 R_MIPS_TLS_DTPMOD32 tlsvar_gd
1000004c R_MIPS_TLS_DTPREL32 tlsvar_gd
10000044 R_MIPS_TLS_TPREL32 tlsbin_ie
10000040 R_MIPS_TLS_TPREL32 tlsvar_ie
10000048 R_MIPS_TLS_DTPMOD32 tlsbin_gd
1000004c R_MIPS_TLS_DTPREL32 tlsbin_gd
10000058 R_MIPS_TLS_DTPMOD32 tlsvar_gd
1000005c R_MIPS_TLS_DTPREL32 tlsvar_gd
10000054 R_MIPS_TLS_TPREL32 tlsbin_ie
10000050 R_MIPS_TLS_TPREL32 tlsvar_ie
Contents of section .got:
10000010 00000000 80000000 00000000 00000000 ................
10000020 00000000 00000000 00000000 004004fc ................
10000030 00000001 00000000 00000000 00000000 ................
10000040 00000000 00000000 00000000 00000000 ................
10000020 00000000 80000000 00000000 00000000 ................
10000030 00000000 00000000 00000000 004004fc ................
10000040 00000001 00000000 00000000 00000000 ................
10000050 00000000 00000000 00000000 00000000 ................

View file

@ -4,13 +4,13 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
000403fc R_MIPS_TLS_DTPMOD32 \*ABS\*
000403f4 R_MIPS_TLS_DTPMOD32 \*ABS\*
000403f0 R_MIPS_TLS_TPREL32 \*ABS\*
000403cc R_MIPS_TLS_DTPMOD32 \*ABS\*
000403c4 R_MIPS_TLS_DTPMOD32 \*ABS\*
000403c0 R_MIPS_TLS_TPREL32 \*ABS\*
Contents of section .got:
403d0 00000000 80000000 00000000 00000000 ................
403e0 00000000 00000000 00000000 000003a0 ................
403f0 00000008 00000000 00000000 00000000 ................
40400 ffff8004 ....
403a0 00000000 80000000 00000000 00000000 ................
403b0 00000000 00000000 00000000 00000370 ................
403c0 00000008 00000000 00000000 00000000 ................
403d0 ffff8004 ....

View file

@ -4,14 +4,14 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
00040544 R_MIPS_TLS_DTPMOD32 \*ABS\*
0004054c R_MIPS_TLS_DTPMOD32 tlsvar_gd
00040550 R_MIPS_TLS_DTPREL32 tlsvar_gd
00040540 R_MIPS_TLS_TPREL32 tlsvar_ie
00040514 R_MIPS_TLS_DTPMOD32 \*ABS\*
0004051c R_MIPS_TLS_DTPMOD32 tlsvar_gd
00040520 R_MIPS_TLS_DTPREL32 tlsvar_gd
00040510 R_MIPS_TLS_TPREL32 tlsvar_ie
Contents of section .got:
40520 00000000 80000000 00000000 00000000 ................
40530 00000000 00000000 00000000 000004f0 ................
40540 00000000 00000000 00000000 00000000 ................
40550 00000000 ....
404f0 00000000 80000000 00000000 00000000 ................
40500 00000000 00000000 00000000 000004c0 ................
40510 00000000 00000000 00000000 00000000 ................
40520 00000000 ....

View file

@ -4,14 +4,14 @@ tmpdir/tlslib-o32.so: file format elf32-tradbigmips
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
000404a4 R_MIPS_TLS_DTPMOD32 \*ABS\*
000404ac R_MIPS_TLS_DTPMOD32 tlsvar_gd
000404b0 R_MIPS_TLS_DTPREL32 tlsvar_gd
000404a0 R_MIPS_TLS_TPREL32 tlsvar_ie
00040474 R_MIPS_TLS_DTPMOD32 \*ABS\*
0004047c R_MIPS_TLS_DTPMOD32 tlsvar_gd
00040480 R_MIPS_TLS_DTPREL32 tlsvar_gd
00040470 R_MIPS_TLS_TPREL32 tlsvar_ie
Contents of section .got:
40480 00000000 80000000 00000000 00000000 ................
40490 00000000 00000000 00000000 00000450 ................
404a0 00000000 00000000 00000000 00000000 ................
404b0 00000000 ....
40450 00000000 80000000 00000000 00000000 ................
40460 00000000 00000000 00000000 00000420 ................
40470 00000000 00000000 00000000 00000000 ................
40480 00000000 ....

View file

@ -16,7 +16,7 @@ SYMBOL TABLE:
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+4 g \*ABS\* 0+ _start\.
0+4 g \.init 0+ _start\.
Contents of section \.init:
0000 e37704a6 .*

View file

@ -7,7 +7,7 @@
.*: +file format elf64-powerpc
Contents of section \.got:
.* 00000000 000187b8 00000000 00000000 .*
.* 00000000 00018780 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*

View file

@ -49,9 +49,9 @@ Relocation section '\.rela\.dyn' at offset .* contains 16 entries:
[0-9a-f ]+R_PPC64_TPREL16 +0+60 le0 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_HA +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_LO +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_DS +0+10630 \.tdata \+ 28
[0-9a-f ]+R_PPC64_TPREL16_HA +0+10630 \.tdata \+ 30
[0-9a-f ]+R_PPC64_TPREL16_LO +0+10630 \.tdata \+ 30
[0-9a-f ]+R_PPC64_TPREL16_DS +0+105f8 \.tdata \+ 28
[0-9a-f ]+R_PPC64_TPREL16_HA +0+105f8 \.tdata \+ 30
[0-9a-f ]+R_PPC64_TPREL16_LO +0+105f8 \.tdata \+ 30
[0-9a-f ]+R_PPC64_DTPMOD64 +0+
[0-9a-f ]+R_PPC64_DTPMOD64 +0+
[0-9a-f ]+R_PPC64_DTPREL64 +0+
@ -72,8 +72,6 @@ Symbol table '\.dynsym' contains .* entries:
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr

View file

@ -42,5 +42,5 @@ Disassembly of section \.got:
.* <\.got>:
\.\.\.
.*: 4e 80 00 21 blrl
.*: 00 01 04 00 .*
.*: 00 01 03 ec .*
\.\.\.

View file

@ -9,5 +9,5 @@
Contents of section \.got:
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 4e800021 00010400 00000000 .*
.* 00000000 4e800021 000103ec 00000000 .*
.* 00000000 .*

View file

@ -52,9 +52,9 @@ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
[0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0
[0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0
[0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0
[0-9a-f ]+R_PPC_TPREL16 +0+103e4 +\.tdata \+ 103f8
[0-9a-f ]+R_PPC_TPREL16_HA +0+103e4 +\.tdata \+ 103fc
[0-9a-f ]+R_PPC_TPREL16_LO +0+103e4 +\.tdata \+ 103fc
[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +\.tdata \+ 103e4
[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +\.tdata \+ 103e8
[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +\.tdata \+ 103e8
[0-9a-f ]+R_PPC_DTPMOD32 +0+
[0-9a-f ]+R_PPC_DTPREL32 +0+
[0-9a-f ]+R_PPC_DTPMOD32 +0+
@ -73,7 +73,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries:
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr

View file

@ -7,7 +7,7 @@
.*: +file format elf64-powerpc
Contents of section \.got:
.* 00000000 00018700 00000000 00000000 .*
.* 00000000 000186c8 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*

View file

@ -67,8 +67,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries:
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr

View file

@ -73,7 +73,6 @@ Symbol table '.dynsym' contains [0-9]+ entries:
.* NOTYPE LOCAL DEFAULT UND
.* SECTION LOCAL DEFAULT +7
.* SECTION LOCAL DEFAULT +8
.* SECTION LOCAL DEFAULT +9
.* TLS +GLOBAL DEFAULT +8 sg8
.* TLS +GLOBAL DEFAULT +8 sg3
.* TLS +GLOBAL DEFAULT +8 sg4

View file

@ -73,7 +73,6 @@ Symbol table '.dynsym' contains [0-9]+ entries:
.* NOTYPE LOCAL DEFAULT UND
.* SECTION LOCAL DEFAULT +7
.* SECTION LOCAL DEFAULT +8
.* SECTION LOCAL DEFAULT +9
.* TLS +GLOBAL DEFAULT +8 sg8
.* TLS +GLOBAL DEFAULT +8 sg3
.* TLS +GLOBAL DEFAULT +8 sg4

View file

@ -4,5 +4,5 @@
0+0 T _start
#...
0+2000000 A __data_end
0+2000000 D __data_start
0+2000000 [ADT] __data_start
#pass

View file

@ -6,5 +6,5 @@
#...
0+1010 A __data_end
#...
0+1010 D __data_start
0+1010 [ADT] __data_start
#pass

View file

@ -17,6 +17,6 @@ SECTIONS
.text : { *(.text) } > text_mem : text_phdr
.data : { *(.data) } > data_mem : data_phdr
.bss : { *(.bss) } > data_mem : data_phdr
/DISCARD/ : { *(.reginfo) }
/DISCARD/ : { *(.reginfo) *(.glue*) }
/* .orphan_data is an orphan */
}

View file

@ -13,10 +13,10 @@
Relocation section '\.rela\.text' at offset 0x[0-9a-f]+ contains 1 entries:
.*
000001b0 000000a5 R_SH_RELATIVE +000001b4
0000019c +[0-9a-f]+ R_SH_RELATIVE +000001a0
Hex dump of section '\.rela\.text':
0x0000019c 000001b4 000000a5 000001b0 .*
0x00000188 000001a0 000000a5 0000019c .*
Hex dump of section '\.text':
0x000001a8 000001b4 00090009 00090009 .*
0x00000194 000001a0 00090009 00090009 .*

View file

@ -68,10 +68,6 @@ Relocation section '\.rela\.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT UND *
.* SECTION LOCAL DEFAULT +7 *
.* SECTION LOCAL DEFAULT +8 *
.* SECTION LOCAL DEFAULT +9 *
.* SECTION LOCAL DEFAULT +11 *
.* NOTYPE GLOBAL DEFAULT UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 sg1
#...

View file

@ -88,7 +88,7 @@ Symbol table '.symtab' contains 64 entries:
.* TLS +LOCAL +DEFAULT +8 bl7
.* TLS +LOCAL +DEFAULT +8 bl8
.* OBJECT +LOCAL +HIDDEN +9 _DYNAMIC
.* OBJECT +LOCAL +HIDDEN +ABS _PROCEDURE_LINKAGE_TABLE_
.* OBJECT +LOCAL +HIDDEN +10 _PROCEDURE_LINKAGE_TABLE_
.* OBJECT +LOCAL +HIDDEN +10 _GLOBAL_OFFSET_TABLE_
.* TLS +GLOBAL DEFAULT +7 sg8
.* TLS +GLOBAL DEFAULT +8 bg8

View file

@ -88,7 +88,7 @@ Symbol table '.symtab' contains 64 entries:
.* TLS +LOCAL +DEFAULT +8 bl7
.* TLS +LOCAL +DEFAULT +8 bl8
.* OBJECT +LOCAL +HIDDEN +9 _DYNAMIC
.* OBJECT +LOCAL +HIDDEN +ABS _PROCEDURE_LINKAGE_TABLE_
.* OBJECT +LOCAL +HIDDEN +10 _PROCEDURE_LINKAGE_TABLE_
.* OBJECT +LOCAL +HIDDEN +10 _GLOBAL_OFFSET_TABLE_
.* TLS +GLOBAL DEFAULT +7 sg8
.* TLS +GLOBAL DEFAULT +8 bg8

View file

@ -64,7 +64,6 @@ Symbol table '.dynsym' contains [0-9]+ entries:
.* NOTYPE +LOCAL +DEFAULT +UND *
.* SECTION LOCAL +DEFAULT +6 *
.* SECTION LOCAL +DEFAULT +7 *
.* SECTION LOCAL +DEFAULT +8 *
.* SECTION LOCAL +DEFAULT +10 *
.* TLS +GLOBAL DEFAULT +7 sg8
.* TLS +GLOBAL DEFAULT +7 sg3

View file

@ -64,7 +64,6 @@ Symbol table '.dynsym' contains [0-9]+ entries:
.* NOTYPE +LOCAL +DEFAULT +UND *
.* SECTION LOCAL +DEFAULT +6 *
.* SECTION LOCAL +DEFAULT +7 *
.* SECTION LOCAL +DEFAULT +8 *
.* SECTION LOCAL +DEFAULT +10 *
.* TLS +GLOBAL DEFAULT +7 sg8
.* TLS +GLOBAL DEFAULT +7 sg3

View file

@ -9,12 +9,12 @@
Disassembly of section .plt:
0000000000000470 <.*@plt-0x10>:
470: ff 35 e2 0e 20 00 pushq 2100962\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
476: ff 25 e4 0e 20 00 jmpq \*2100964\(%rip\) # 201360 <_GLOBAL_OFFSET_TABLE_\+0x10>
47c: 0f 1f 40 00 nopl 0x0\(%rax\)
0000000000000480 <.*@plt>:
480: ff 35 d2 0e 20 00 pushq 2100946\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
486: ff 25 bc 0e 20 00 jmpq \*2100924\(%rip\) # 201348 <_DYNAMIC\+0x190>
48c: 0f 1f 40 00 nopl 0x0\(%rax\)
[0-9a-f]+ <.*@plt-0x10>:
[0-9a-f]+: ff 35 .. .. 20 00 pushq .*\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
[0-9a-f]+: ff 25 .. .. 20 00 jmpq \*.*\(%rip\) # 201360 <_GLOBAL_OFFSET_TABLE_\+0x10>
[0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\)
[0-9a-f]+ <.*@plt>:
[0-9a-f]+: ff 35 .. .. 20 00 pushq .*\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
[0-9a-f]+: ff 25 .. .. 20 00 jmpq \*.*\(%rip\) # 201348 <_DYNAMIC\+0x190>
[0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\)

View file

@ -15,7 +15,7 @@ Section Headers:
\[ 3\] .dynstr +.*
\[ 4\] .rela.dyn +.*
\[ 5\] .rela.plt +.*
\[ 6\] .plt +PROGBITS +0+470 0+470 0+20 10 +AX +0 +0 +4
\[ 6\] .plt +PROGBITS +0+450 0+450 0+20 10 +AX +0 +0 +4
\[ 7\] .text +PROGBITS +0+1000 0+1000 0+154 00 +AX +0 +0 4096
\[ 8\] .tdata +PROGBITS +0+201154 0+1154 0+60 00 WAT +0 +0 +1
\[ 9\] .tbss +NOBITS +0+2011b4 0+11b4 0+20 00 WAT +0 +0 +1
@ -59,7 +59,7 @@ Dynamic section at offset 0x[0-9a-f]+ contains 16 entries:
0x[0-9a-f]+ +\(PLTRELSZ\).*
0x[0-9a-f]+ +\(PLTREL\).*
0x[0-9a-f]+ +\(JMPREL\).*
0x[0-9a-f]+ +\(TLSDESC_PLT\) +0x480
0x[0-9a-f]+ +\(TLSDESC_PLT\) +0x460
0x[0-9a-f]+ +\(TLSDESC_GOT\) +0x201348
0x[0-9a-f]+ +\(RELA\).*
0x[0-9a-f]+ +\(RELASZ\).*
@ -69,29 +69,28 @@ Dynamic section at offset 0x[0-9a-f]+ contains 16 entries:
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
0+201308 0+12 R_X86_64_TPOFF64 +0+24
0+201310 0+12 R_X86_64_TPOFF64 +0+30
0+201318 0+12 R_X86_64_TPOFF64 +0+64
0+201328 0+12 R_X86_64_TPOFF64 +0+50
0+201330 0+12 R_X86_64_TPOFF64 +0+70
0+201340 0+12 R_X86_64_TPOFF64 +0+44
0+201320 0+700000012 R_X86_64_TPOFF64 +0+10 sg5 \+ 0
0+201338 0+b00000012 R_X86_64_TPOFF64 +0+4 sg2 \+ 0
0+201308 [0-9a-f]+ R_X86_64_TPOFF64 +0+24
0+201310 [0-9a-f]+ R_X86_64_TPOFF64 +0+30
0+201318 [0-9a-f]+ R_X86_64_TPOFF64 +0+64
0+201328 [0-9a-f]+ R_X86_64_TPOFF64 +0+50
0+201330 [0-9a-f]+ R_X86_64_TPOFF64 +0+70
0+201340 [0-9a-f]+ R_X86_64_TPOFF64 +0+44
0+201320 [0-9a-f]+ R_X86_64_TPOFF64 +0+10 sg5 \+ 0
0+201338 [0-9a-f]+ R_X86_64_TPOFF64 +0+4 sg2 \+ 0
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 5 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
0+201398 0+800000024 R_X86_64_TLSDESC +0+ sg1 \+ 0
0+201368 0+24 R_X86_64_TLSDESC +0+20
0+2013a8 0+24 R_X86_64_TLSDESC +0+40
0+201378 0+24 R_X86_64_TLSDESC +0+60
0+201388 0+24 R_X86_64_TLSDESC +0+
0+201398 [0-9a-f]+ R_X86_64_TLSDESC +0+ sg1 \+ 0
0+201368 [0-9a-f]+ R_X86_64_TLSDESC +0+20
0+2013a8 [0-9a-f]+ R_X86_64_TLSDESC +0+40
0+201378 [0-9a-f]+ R_X86_64_TLSDESC +0+60
0+201388 [0-9a-f]+ R_X86_64_TLSDESC +0+
Symbol table '.dynsym' contains 16 entries:
Symbol table '.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
+[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
+[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4

View file

@ -74,7 +74,6 @@ Symbol table '.dynsym' contains [0-9]+ entries:
.* NOTYPE LOCAL DEFAULT UND *
.* SECTION LOCAL DEFAULT +7 *
.* SECTION LOCAL DEFAULT +8 *
.* SECTION LOCAL DEFAULT +9 *
.* TLS +GLOBAL DEFAULT +8 sg8
.* TLS +GLOBAL DEFAULT +8 sg3
.* TLS +GLOBAL DEFAULT +8 sg4