include/elf/

* tic6x.h (R_C6000_JUMP_SPLOT, R_C6000_EHTYPE,
	R_C6000_PCR_H16, R_C6000_PCR_L16): New relocs.
	(SHN_TIC6X_SCOMMON): Define.

bfd/
	* elf32-tic6x.h (struct elf32_tic6x_params): New.
	(elf32_tic6x_setup): Declare.
	* elf32-tic6x.c: Include <limits.h>.
	(ELF_DYNAMIC_LINKER, DEFAULT_STACK_SIZE, PLT_ENTRY_SIZE): Define.
	(struct elf32_tic6x_link_hash_table, struct elf32_link_hash_entry):
	New structures.
	(elf32_tic6x_link_hash_table, is_tic6x_elf): New macros.
	(tic6x_elf_scom_section, tic6x_elf_scom_symbol,
	tic6x_elf_scom_symbol_ptr): New static variables.
	(elf32_tic6x_howto_table, elf32_tic6x_howto_table_rel,
	elf32_tic6x_reloc_map): Add R_C6000_JUMP_SLOT, R_C6000_EHTYPE,
	R_C6000_PCR_H16 and R_C6000_PCR_L16.
	(elf32_tic6x_link_hash_newfunc, elf32_tic6x_link_hash_table_create,
	elf32_tic6x_link_hash_table_free, elf32_tic6x_setup,
	elf32_tic6x_using_dsbt, elf32_tic6x_install_rela,
	elf32_tic6x_create_dynamic_sections, elf32_tic6x_make_got_dynreloc,
	elf32_tic6x_finish_dynamic_symbol, elf32_tic6x_gc_sweep_hook,
	elf32_tic6x_adjust_dynamic_symbol): New static functions.
	(elf32_tic6x_relocate_section): For R_C6000_PCR_S21, convert branches
	to weak symbols as required by the ABI.
	Handle GOT and DSBT_INDEX relocs, and copy relocs to the output file
	as needed when generating DSBT output.
	(elf32_tic6x_check_relocs, elf32_tic6x_add_symbol_hook,
	elf32_tic6x_symbol_processing, elf32_tic6x_section_from_bfd_section,
	elf32_tic6x_allocate_dynrelocs, elf32_tic6x_size_dynamic_sections,
	elf32_tic6x_always_size_sections, elf32_tic6x_modify_program_headers,
	elf32_tic6x_finish_dynamic_sections, elf32_tic6x_plt_sym_val,
	elf32_tic6x_copy_private_data, elf32_tic6x_link_omit_section_dynsym):
	New static functions.
	(ELF_MAXPAGESIZE): Define to 0x1000.
	(bfd_elf32_bfd_copy_private_bfd_data,
	bfd_elf32_bfd_link_hash_table_create,
	bfd_elf32_bfd_link_hash_table_free, elf_backend_can_refcount,
	elf_backend_want_got_plt, elf_backend_want_dynbss,
	elf_backend_plt_readonly, elf_backend_got_header_size,
	elf_backend_gc_sweep_hook, elf_backend_modify_program_headers,
	elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol,
	elf_backend_check_relocs, elf_backend_add_symbol_hook,
	elf_backend_symbol_processing, elf_backend_link_output_symbol_hook,
	elf_backend_section_from_bfd_section,
	elf_backend_finish_dynamic_symbol, elf_backend_always_size_sections,
	elf32_tic6x_size_dynamic_sections, elf_backend_finish_dynamic_sections,
	elf_backend_omit_section_dynsym, elf_backend_plt_sym_val): Define.

	* bfd/reloc.c (BFD_RELOC_C6000_JUMP_SLOT, BFD_RELOC_C6000_EHTYPE,
	BFD_RELOC_C6000_PCR_H16, BFD_RELOC_C6000_PCR_S16): Add.
	* bfd/bfd-in2.h: Regenerate.
	* bfd/libbfd.h: Regenerate.
	* config.bfd: Accept tic6x-*-* instead of tic6x-*-elf.

gas/
	* config/tc-tic6x.c (sbss_section, scom_section, scom_symbol): New
	static variables.
	(md_begin): Initialize them.
	(s_tic6x_scomm): New static function.
	(md_pseudo_table): Add "scomm".
	(tc_gen_reloc): Really undo all adjustments made by
	bfd_install_relocation.
	* doc/c-tic6x.texi: Document the .scomm directive.

gas/testsuite/
	* gas/tic6x/scomm-directive-1.s: New test.
	* gas/tic6x/scomm-directive-1.d: New test.
	* gas/tic6x/scomm-directive-2.s: New test.
	* gas/tic6x/scomm-directive-2.d: New test.
	* gas/tic6x/scomm-directive-3.s: New test.
	* gas/tic6x/scomm-directive-3.d: New test.
	* gas/tic6x/scomm-directive-4.s: New test.
	* gas/tic6x/scomm-directive-4.d: New test.
	* gas/tic6x/scomm-directive-5.s: New test.
	* gas/tic6x/scomm-directive-5.d: New test.
	* gas/tic6x/scomm-directive-6.s: New test.
	* gas/tic6x/scomm-directive-6.d: New test.
	* gas/tic6x/scomm-directive-7.s: New test.
	* gas/tic6x/scomm-directive-7.d: New test.
	* gas/tic6x/scomm-directive-8.s: New test.
	* gas/tic6x/scomm-directive-8.d: New test.

ld/
	* emulparams/elf32_tic6x_le.sh (BIG_OUTPUT_FORMAT, EXTRA_EM_FILE,
	GENERATE_SHLIB_SCRIPT): New defines.
	(TEXT_START_ADDR): Define differently depending on target.
	(.got): Redefine to include "*(.dsbt)".
	(SDATA_START_SYMBOLS): Remove, replace with
	(OTHER_GOT_SYMBOLS): New.
	(OTHER_BSS_SECTIONS): Define only for ELF targets.
	* emultempl/tic6xdsbt.em: New file.
	* gen-doc.texi: Set C6X.
	* ld.texinfo: Likewise.
	(Options specific to C6X uClinux targets): New section.

binutils/
	* readelf.c (get_symbol_index_type): Handle SCOM for TIC6X.
	(dump_relocations): Likewise.

binutils/testsuite/
	* lib/binutils-common.exp (is_elf_format): Accept tic6x*-*-uclinux*.

ld/testsuite/
	* ld-scripts/crossref.exp: Add CFLAGS for tic6x*-*-*.
	* ld-elf/sec-to-seg.exp: Remove tic6x from list of targets defining
	pagesize to 1.
	* ld-tic6x/tic6x.exp: Add support for DSBT shared library/executable
	linking tests.
	* ld-tic6x/dsbt.ld: New linker script.
	* ld-tic6x/dsbt-be.ld: New linker script.
	* ld-tic6x/dsbt-overflow.ld: New linker script.
	* ld-tic6x/dsbt-inrange.ld: New linker script.
	* ld-tic6x/shlib-1.s: New test.
	* ld-tic6x/shlib-2.s: New test.
	* ld-tic6x/shlib-app-1r.s: New test.
	* ld-tic6x/shlib-app-1.s: New test.
	* ld-tic6x/shlib-1.sd: New test.
	* ld-tic6x/shlib-1.dd: New test.
	* ld-tic6x/shlib-app-1.rd: New test.
	* ld-tic6x/shlib-app-1rb.rd: New test.
	* ld-tic6x/shlib-app-1.sd: New test.
	* ld-tic6x/static-app-1rb.od: New test.
	* ld-tic6x/shlib-app-1.dd: New test.
	* ld-tic6x/shlib-app-1rb.sd: New test.
	* ld-tic6x/static-app-1b.od: New test.
	* ld-tic6x/static-app-1r.od: New test.
	* ld-tic6x/shlib-1rb.rd: New test.
	* ld-tic6x/shlib-app-1rb.dd: New test.
	* ld-tic6x/shlib-1rb.sd: New test.
	* ld-tic6x/shlib-1rb.dd: New test.
	* ld-tic6x/shlib-app-1b.od: New test.
	* ld-tic6x/tic6x.exp: New test.
	* ld-tic6x/static-app-1rb.rd: New test.
	* ld-tic6x/shlib-app-1r.od: New test.
	* ld-tic6x/static-app-1.od: New test.
	* ld-tic6x/static-app-1b.rd: New test.
	* ld-tic6x/static-app-1r.rd: New test.
	* ld-tic6x/static-app-1rb.sd: New test.
	* ld-tic6x/static-app-1b.sd: New test.
	* ld-tic6x/static-app-1rb.dd: New test.
	* ld-tic6x/static-app-1r.sd: New test.
	* ld-tic6x/static-app-1b.dd: New test.
	* ld-tic6x/shlib-1b.rd: New test.
	* ld-tic6x/static-app-1r.dd: New test.
	* ld-tic6x/shlib-app-1b.rd: New test.
	* ld-tic6x/shlib-1r.rd: New test.
	* ld-tic6x/shlib-app-1r.rd: New test.
	* ld-tic6x/shlib-1b.sd: New test.
	* ld-tic6x/static-app-1.rd: New test.
	* ld-tic6x/shlib-app-1b.sd: New test.
	* ld-tic6x/shlib-1r.sd: New test.
	* ld-tic6x/shlib-1b.dd: New test.
	* ld-tic6x/shlib-app-1r.sd: New test.
	* ld-tic6x/shlib-app-1b.dd: New test.
	* ld-tic6x/shlib-1r.dd: New test.
	* ld-tic6x/static-app-1.sd: New test.
	* ld-tic6x/shlib-app-1r.dd: New test.
	* ld-tic6x/static-app-1.dd: New test.
	* ld-tic6x/shlib-noindex.rd: New test.
	* ld-tic6x/shlib-noindex.dd: New test.
	* ld-tic6x/shlib-noindex.sd: New test.
	* ld-tic6x/got-reloc-local-1.s: New test.
	* ld-tic6x/got-reloc-local-2.s: New test.
	* ld-tic6x/got-reloc-local-r.d: New test.
	* ld-tic6x/got-reloc-global.s: New test.
	* ld-tic6x/got-reloc-global-addend-1.d: New test.
	* ld-tic6x/got-reloc-global-addend-1.s: New test.
	* ld-tic6x/got-reloc-global-addend-2.d: New test.
	* ld-tic6x/got-reloc-inrange.d: New test.
	* ld-tic6x/got-reloc-overflow.d: New test.
	* ld-tic6x/got-reloc-global-addend-2.s: New test.
	* ld-tic6x/dsbt-index-error.d: New test.
	* ld-tic6x/dsbt-index.d: New test.
	* ld-tic6x/dsbt-index.s: New test.
	* ld-tic6x/shlib-app-1.od: New test.
	* ld-tic6x/shlib-app-1rb.od: New test.
	* ld-tic6x/shlib-1.rd: New test.
	* ld-tic6x/weak.d: New test.
	* ld-tic6x/weak-be.d: New test.
	* ld-tic6x/weak.s: New test.
 	* ld-tic6x/weak-data.d: New test.
	* ld-tic6x/common.d: New test.
	* ld-tic6x/common.ld: New test.
	* ld-tic6x/common.s: New test.
This commit is contained in:
Bernd Schmidt 2011-03-31 08:58:28 +00:00
parent 53dd76d35f
commit ac14530735
117 changed files with 5748 additions and 30 deletions

View File

@ -1,3 +1,55 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* elf32-tic6x.h (struct elf32_tic6x_params): New.
(elf32_tic6x_setup): Declare.
* elf32-tic6x.c: Include <limits.h>.
(ELF_DYNAMIC_LINKER, DEFAULT_STACK_SIZE, PLT_ENTRY_SIZE): Define.
(struct elf32_tic6x_link_hash_table, struct elf32_link_hash_entry):
New structures.
(elf32_tic6x_link_hash_table, is_tic6x_elf): New macros.
(tic6x_elf_scom_section, tic6x_elf_scom_symbol,
tic6x_elf_scom_symbol_ptr): New static variables.
(elf32_tic6x_howto_table, elf32_tic6x_howto_table_rel,
elf32_tic6x_reloc_map): Add R_C6000_JUMP_SLOT, R_C6000_EHTYPE,
R_C6000_PCR_H16 and R_C6000_PCR_L16.
(elf32_tic6x_link_hash_newfunc, elf32_tic6x_link_hash_table_create,
elf32_tic6x_link_hash_table_free, elf32_tic6x_setup,
elf32_tic6x_using_dsbt, elf32_tic6x_install_rela,
elf32_tic6x_create_dynamic_sections, elf32_tic6x_make_got_dynreloc,
elf32_tic6x_finish_dynamic_symbol, elf32_tic6x_gc_sweep_hook,
elf32_tic6x_adjust_dynamic_symbol): New static functions.
(elf32_tic6x_relocate_section): For R_C6000_PCR_S21, convert branches
to weak symbols as required by the ABI.
Handle GOT and DSBT_INDEX relocs, and copy relocs to the output file
as needed when generating DSBT output.
(elf32_tic6x_check_relocs, elf32_tic6x_add_symbol_hook,
elf32_tic6x_symbol_processing, elf32_tic6x_section_from_bfd_section,
elf32_tic6x_allocate_dynrelocs, elf32_tic6x_size_dynamic_sections,
elf32_tic6x_always_size_sections, elf32_tic6x_modify_program_headers,
elf32_tic6x_finish_dynamic_sections, elf32_tic6x_plt_sym_val,
elf32_tic6x_copy_private_data, elf32_tic6x_link_omit_section_dynsym):
New static functions.
(ELF_MAXPAGESIZE): Define to 0x1000.
(bfd_elf32_bfd_copy_private_bfd_data,
bfd_elf32_bfd_link_hash_table_create,
bfd_elf32_bfd_link_hash_table_free, elf_backend_can_refcount,
elf_backend_want_got_plt, elf_backend_want_dynbss,
elf_backend_plt_readonly, elf_backend_got_header_size,
elf_backend_gc_sweep_hook, elf_backend_modify_program_headers,
elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol,
elf_backend_check_relocs, elf_backend_add_symbol_hook,
elf_backend_symbol_processing, elf_backend_link_output_symbol_hook,
elf_backend_section_from_bfd_section,
elf_backend_finish_dynamic_symbol, elf_backend_always_size_sections,
elf32_tic6x_size_dynamic_sections, elf_backend_finish_dynamic_sections,
elf_backend_omit_section_dynsym, elf_backend_plt_sym_val): Define.
* bfd/reloc.c (BFD_RELOC_C6000_JUMP_SLOT, BFD_RELOC_C6000_EHTYPE,
BFD_RELOC_C6000_PCR_H16, BFD_RELOC_C6000_PCR_S16): Add.
* bfd/bfd-in2.h: Regenerate.
* bfd/libbfd.h: Regenerate.
* config.bfd: Accept tic6x-*-* instead of tic6x-*-elf.
2011-03-31 Tristan Gingold <gingold@adacore.com>
* coffcode.h (coff_slurp_symbol_table): Silently discard C_NULL

View File

@ -3774,6 +3774,10 @@ the opcode. */
BFD_RELOC_C6000_DSBT_INDEX,
BFD_RELOC_C6000_PREL31,
BFD_RELOC_C6000_COPY,
BFD_RELOC_C6000_JUMP_SLOT,
BFD_RELOC_C6000_EHTYPE,
BFD_RELOC_C6000_PCR_H16,
BFD_RELOC_C6000_PCR_L16,
BFD_RELOC_C6000_ALIGN,
BFD_RELOC_C6000_FPHEAD,
BFD_RELOC_C6000_NOCMP,

View File

@ -1505,7 +1505,7 @@ case "${targ}" in
;;
#endif
tic6x-*-elf)
tic6x-*-*)
targ_defvec=bfd_elf32_tic6x_le_vec
targ_selvecs=bfd_elf32_tic6x_be_vec
;;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* 32-bit ELF support for TI C6X
Copyright 2010
Copyright 2010, 2011
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -24,3 +24,12 @@ extern int elf32_tic6x_merge_arch_attributes (int, int);
/* This function is provided for use from the assembler. */
extern void elf32_tic6x_set_use_rela_p (bfd *, bfd_boolean);
struct elf32_tic6x_params
{
int dsbt_index;
int dsbt_size;
};
extern void elf32_tic6x_setup (struct bfd_link_info *,
struct elf32_tic6x_params *);

View File

@ -1705,6 +1705,10 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_C6000_DSBT_INDEX",
"BFD_RELOC_C6000_PREL31",
"BFD_RELOC_C6000_COPY",
"BFD_RELOC_C6000_JUMP_SLOT",
"BFD_RELOC_C6000_EHTYPE",
"BFD_RELOC_C6000_PCR_H16",
"BFD_RELOC_C6000_PCR_L16",
"BFD_RELOC_C6000_ALIGN",
"BFD_RELOC_C6000_FPHEAD",
"BFD_RELOC_C6000_NOCMP",

View File

@ -1,6 +1,6 @@
/* BFD support for handling relocation entries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Written by Cygnus Support.
@ -3934,6 +3934,14 @@ ENUMX
BFD_RELOC_C6000_PREL31
ENUMX
BFD_RELOC_C6000_COPY
ENUMX
BFD_RELOC_C6000_JUMP_SLOT
ENUMX
BFD_RELOC_C6000_EHTYPE
ENUMX
BFD_RELOC_C6000_PCR_H16
ENUMX
BFD_RELOC_C6000_PCR_L16
ENUMX
BFD_RELOC_C6000_ALIGN
ENUMX

View File

@ -1,3 +1,8 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* readelf.c (get_symbol_index_type): Handle SCOM for TIC6X.
(dump_relocations): Likewise.
2011-03-31 Tristan Gingold <gingold@adacore.com>
* readelf.c (get_ia64_vms_note_type): New function.

View File

@ -1304,8 +1304,10 @@ dump_relocations (FILE * file,
sec_name = "ABS";
else if (psym->st_shndx == SHN_COMMON)
sec_name = "COMMON";
else if (elf_header.e_machine == EM_MIPS
&& psym->st_shndx == SHN_MIPS_SCOMMON)
else if ((elf_header.e_machine == EM_MIPS
&& psym->st_shndx == SHN_MIPS_SCOMMON)
|| (elf_header.e_machine == EM_TI_C6000
&& psym->st_shndx == SHN_TIC6X_SCOMMON))
sec_name = "SCOMMON";
else if (elf_header.e_machine == EM_MIPS
&& psym->st_shndx == SHN_MIPS_SUNDEFINED)
@ -8482,8 +8484,10 @@ get_symbol_index_type (unsigned int type)
|| elf_header.e_machine == EM_L1OM)
&& type == SHN_X86_64_LCOMMON)
return "LARGE_COM";
else if (type == SHN_MIPS_SCOMMON
&& elf_header.e_machine == EM_MIPS)
else if ((type == SHN_MIPS_SCOMMON
&& elf_header.e_machine == EM_MIPS)
|| (type == SHN_TIC6X_SCOMMON
&& elf_header.e_machine == EM_TI_C6000))
return "SCOM";
else if (type == SHN_MIPS_SUNDEFINED
&& elf_header.e_machine == EM_MIPS)

View File

@ -1,3 +1,7 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* lib/binutils-common.exp (is_elf_format): Accept tic6x*-*-uclinux*.
2011-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* lib/binutils-common.exp (regexp_diff): Use "==" instead of "eq".

View File

@ -1,5 +1,5 @@
# Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007,
# 2009, 2010 Free Software Foundation, Inc.
# 2009, 2010, 2011 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
@ -33,6 +33,7 @@ proc is_elf_format {} {
&& ![istarget frv-*-uclinux*]
&& ![istarget bfin-*-uclinux]
&& ![istarget sh*-*-uclinux*]
&& ![istarget tic6x*-*-uclinux*]
&& ![istarget *-*-irix5*]
&& ![istarget *-*-irix6*]
&& ![istarget *-*-netbsd*]

View File

@ -1,3 +1,14 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* config/tc-tic6x.c (sbss_section, scom_section, scom_symbol): New
static variables.
(md_begin): Initialize them.
(s_tic6x_scomm): New static function.
(md_pseudo_table): Add "scomm".
(tc_gen_reloc): Really undo all adjustments made by
bfd_install_relocation.
* doc/c-tic6x.texi: Document the .scomm directive.
2011-03-31 Tristan Gingold <gingold@adacore.com>
* dwarf2dbg.c (DWARF2_VERSION): Define.

View File

@ -34,6 +34,11 @@
#define TRUNC(X) ((valueT) (X) & 0xffffffffU)
#define SEXT(X) ((TRUNC (X) ^ 0x80000000U) - 0x80000000U)
/* Stuff for .scomm symbols. */
static segT sbss_section;
static asection scom_section;
static asymbol scom_symbol;
const char comment_chars[] = ";";
const char line_comment_chars[] = "#*;";
const char line_separator_chars[] = "@";
@ -349,6 +354,138 @@ s_tic6x_nocmp (int ignored ATTRIBUTE_UNUSED)
demand_empty_rest_of_line ();
}
/* .scomm pseudo-op handler.
This is a new pseudo-op to handle putting objects in .scommon.
By doing this the linker won't need to do any work,
and more importantly it removes the implicit -G arg necessary to
correctly link the object file. */
static void
s_tic6x_scomm (int ignore ATTRIBUTE_UNUSED)
{
char *name;
char c;
char *p;
offsetT size;
symbolS *symbolP;
offsetT align;
int align2;
name = input_line_pointer;
c = get_symbol_end ();
/* Just after name is now '\0'. */
p = input_line_pointer;
*p = c;
SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
as_bad (_("expected comma after symbol name"));
ignore_rest_of_line ();
return;
}
/* Skip ','. */
input_line_pointer++;
if ((size = get_absolute_expression ()) < 0)
{
/* xgettext:c-format */
as_warn (_("invalid length for .scomm directive"));
ignore_rest_of_line ();
return;
}
/* The third argument to .scomm is the alignment. */
if (*input_line_pointer != ',')
align = 8;
else
{
++input_line_pointer;
align = get_absolute_expression ();
if (align <= 0)
{
as_warn (_("alignment is not a positive number"));
align = 8;
}
}
/* Convert to a power of 2 alignment. */
if (align)
{
for (align2 = 0; (align & 1) == 0; align >>= 1, ++align2)
continue;
if (align != 1)
{
as_bad (_("alignment is not a power of 2"));
ignore_rest_of_line ();
return;
}
}
else
align2 = 0;
*p = 0;
symbolP = symbol_find_or_make (name);
*p = c;
if (S_IS_DEFINED (symbolP))
{
/* xgettext:c-format */
as_bad (_("attempt to re-define symbol `%s'"),
S_GET_NAME (symbolP));
ignore_rest_of_line ();
return;
}
if (S_GET_VALUE (symbolP) && S_GET_VALUE (symbolP) != (valueT) size)
{
/* xgettext:c-format */
as_bad (_("attempt to redefine `%s' with a different length"),
S_GET_NAME (symbolP));
ignore_rest_of_line ();
return;
}
if (symbol_get_obj (symbolP)->local)
{
segT old_sec = now_seg;
int old_subsec = now_subseg;
char *pfrag;
record_alignment (sbss_section, align2);
subseg_set (sbss_section, 0);
if (align2)
frag_align (align2, 0, 0);
if (S_GET_SEGMENT (symbolP) == sbss_section)
symbol_get_frag (symbolP)->fr_symbol = 0;
symbol_set_frag (symbolP, frag_now);
pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, size,
(char *) 0);
*pfrag = 0;
S_SET_SIZE (symbolP, size);
S_SET_SEGMENT (symbolP, sbss_section);
S_CLEAR_EXTERNAL (symbolP);
subseg_set (old_sec, old_subsec);
}
else
{
S_SET_VALUE (symbolP, (valueT) size);
S_SET_ALIGN (symbolP, 1 << align2);
S_SET_EXTERNAL (symbolP);
S_SET_SEGMENT (symbolP, &scom_section);
}
symbol_get_bfdsym (symbolP)->flags |= BSF_OBJECT;
demand_empty_rest_of_line ();
}
/* Track for each attribute whether it has been set explicitly (and so
should not have a default value set by the assembler). */
static bfd_boolean tic6x_attributes_set_explicitly[NUM_KNOWN_OBJ_ATTRIBUTES];
@ -396,6 +533,7 @@ const pseudo_typeS md_pseudo_table[] =
{ "arch", s_tic6x_arch, 0 },
{ "c6xabi_attribute", s_tic6x_c6xabi_attribute, 0 },
{ "nocmp", s_tic6x_nocmp, 0 },
{ "scomm", s_tic6x_scomm, 0 },
{ "word", cons, 4 },
{ 0, 0, 0 }
};
@ -411,6 +549,9 @@ void
md_begin (void)
{
tic6x_opcode_id id;
flagword applicable;
segT seg;
subsegT subseg;
bfd_set_arch_mach (stdoutput, TARGET_ARCH, 0);
@ -427,6 +568,32 @@ md_begin (void)
!= NULL)
as_fatal ("%s", _(errmsg));
}
/* Save the current subseg so we can restore it [it's the default one and
we don't want the initial section to be .sbss]. */
seg = now_seg;
subseg = now_subseg;
/* The sbss section is for local .scomm symbols. */
sbss_section = subseg_new (".bss", 0);
seg_info (sbss_section)->bss = 1;
/* This is copied from perform_an_assembly_pass. */
applicable = bfd_applicable_section_flags (stdoutput);
bfd_set_section_flags (stdoutput, sbss_section, applicable & SEC_ALLOC);
subseg_set (seg, subseg);
/* We must construct a fake section similar to bfd_com_section
but with the name .scommon. */
scom_section = bfd_com_section;
scom_section.name = ".scommon";
scom_section.output_section = & scom_section;
scom_section.symbol = & scom_symbol;
scom_section.symbol_ptr_ptr = & scom_section.symbol;
scom_symbol = * bfd_com_section.symbol;
scom_symbol.name = ".scommon";
scom_symbol.section = & scom_section;
}
/* Whether the current line being parsed had the "||" parallel bars. */
@ -4029,11 +4196,13 @@ arelent *
tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
{
arelent *reloc;
asymbol *symbol;
bfd_reloc_code_real_type r_type;
reloc = xmalloc (sizeof (arelent));
reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *));
*reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
symbol = symbol_get_bfdsym (fixp->fx_addsy);
*reloc->sym_ptr_ptr = symbol;
reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
reloc->addend = (tic6x_generate_rela ? fixp->fx_offset : 0);
r_type = fixp->fx_r_type;
@ -4049,7 +4218,11 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
/* Correct for adjustments bfd_install_relocation will make. */
if (reloc->howto->pcrel_offset && reloc->howto->partial_inplace)
reloc->addend += reloc->address;
{
reloc->addend += reloc->address;
if (!bfd_is_com_section (symbol))
reloc->addend -= symbol->value;
}
return reloc;
}

View File

@ -151,4 +151,10 @@ The @var{tag} is either an attribute number or one of
Disallow use of C64x+ compact instructions in the current text
section.
@cindex @code{.scomm} directive, TIC6X
@item .scomm @var{symbol}, @var{size}, @var{align}
Like @code{.comm}, creating a common symbol @var{symbol} with size @var{size}
and alignment @var{align}, but unlike when using @code{.comm}, this symbol
will be placed into the small BSS section by the linker.
@end table

View File

@ -1,3 +1,22 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* gas/tic6x/scomm-directive-1.s: New test.
* gas/tic6x/scomm-directive-1.d: New test.
* gas/tic6x/scomm-directive-2.s: New test.
* gas/tic6x/scomm-directive-2.d: New test.
* gas/tic6x/scomm-directive-3.s: New test.
* gas/tic6x/scomm-directive-3.d: New test.
* gas/tic6x/scomm-directive-4.s: New test.
* gas/tic6x/scomm-directive-4.d: New test.
* gas/tic6x/scomm-directive-5.s: New test.
* gas/tic6x/scomm-directive-5.d: New test.
* gas/tic6x/scomm-directive-6.s: New test.
* gas/tic6x/scomm-directive-6.d: New test.
* gas/tic6x/scomm-directive-7.s: New test.
* gas/tic6x/scomm-directive-7.d: New test.
* gas/tic6x/scomm-directive-8.s: New test.
* gas/tic6x/scomm-directive-8.d: New test.
2011-03-29 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/quad.d: Add tests for multiple operands.

View File

@ -0,0 +1,4 @@
#name: C6X .scomm directive 1
#as:
#source: scomm-directive-1.s
#error: alignment is not a power of 2

View File

@ -0,0 +1,2 @@
.comm x,4,4
.scomm y,4,5

View File

@ -0,0 +1,5 @@
#name: C6X .scomm directive 2
#as:
#source: scomm-directive-2.s
#error: attempt to re-define symbol

View File

@ -0,0 +1,2 @@
.scomm x,4,4
.scomm x,8,4

View File

@ -0,0 +1,4 @@
#name: C6X .scomm directive 3
#as:
#source: scomm-directive-3.s
#error: attempt to re-define symbol

View File

@ -0,0 +1,2 @@
.comm x,8,4
.scomm x,8,4

View File

@ -0,0 +1,37 @@
#name: C6X .scomm directive 4
#as:
#source: scomm-directive-4.s
#readelf: -Ss
There are 8 section headers, starting at offset 0x88:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.text PROGBITS 00000000 000034 000000 00 AX 0 0 1
\[ 2\] \.data PROGBITS 00000000 000034 000000 00 WA 0 0 1
\[ 3\] \.bss NOBITS 00000000 000034 000000 00 WA 0 0 1
\[ 4\] \.c6xabi\.attribute C6000_ATTRIBUTE 00000000 000034 000013 00 0 0 1
\[ 5\] \.shstrtab STRTAB 00000000 000047 00003f 00 0 0 1
\[ 6\] \.symtab SYMTAB 00000000 0001c8 0000d0 10 7 5 4
\[ 7\] \.strtab STRTAB 00000000 000298 00001d 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Symbol table '\.symtab' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 SECTION LOCAL DEFAULT 1
2: 00000000 0 SECTION LOCAL DEFAULT 2
3: 00000000 0 SECTION LOCAL DEFAULT 3
4: 00000000 0 SECTION LOCAL DEFAULT 4
5: 00000004 4 OBJECT GLOBAL DEFAULT COM x4a
6: 00000004 4 OBJECT GLOBAL DEFAULT SCOM y4a
7: 00000002 4 OBJECT GLOBAL DEFAULT COM x4b
8: 00000002 4 OBJECT GLOBAL DEFAULT SCOM y4b
9: 00000004 2 OBJECT GLOBAL DEFAULT COM x2
10: 00000004 2 OBJECT GLOBAL DEFAULT SCOM y2
11: 00000004 1 OBJECT GLOBAL DEFAULT COM x1
12: 00000004 1 OBJECT GLOBAL DEFAULT SCOM y1

View File

@ -0,0 +1,8 @@
.comm x4a,4,4
.scomm y4a,4,4
.comm x4b,4,2
.scomm y4b,4,2
.comm x2,2,4
.scomm y2,2,4
.comm x1,1,4
.scomm y1,1,4

View File

@ -0,0 +1,4 @@
#name: C6X .scomm directive 5
#as:
#source: scomm-directive-5.s
#error: expected comma after symbol name

View File

@ -0,0 +1 @@
.scomm x

View File

@ -0,0 +1,4 @@
#name: C6X .scomm directive 6
#as:
#source: scomm-directive-6.s
#error: bad or irreducible absolute expression

View File

@ -0,0 +1 @@
.scomm x,fish

View File

@ -0,0 +1,4 @@
#name: C6X .scomm directive 7
#as:
#source: scomm-directive-7.s
#warning: alignment is not a positive number

View File

@ -0,0 +1 @@
.scomm x,8,-4

View File

@ -0,0 +1,4 @@
#name: C6X .scomm directive 8
#as:
#source: scomm-directive-8.s
#warning: invalid length for .scomm directive

View File

@ -0,0 +1 @@
.scomm x,-8,4

View File

@ -1,3 +1,9 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* tic6x.h (R_C6000_JUMP_SPLOT, R_C6000_EHTYPE,
R_C6000_PCR_H16, R_C6000_PCR_L16): New relocs.
(SHN_TIC6X_SCOMMON): Define.
2011-03-24 Mark Wielaard <mjw@redhat.com>
* dwarf2.h (dwarf_form): Remove deprecated DW_FORM_sig8 define.

View File

@ -1,5 +1,5 @@
/* TI C6X ELF support for BFD.
Copyright 2010
Copyright 2010, 2011
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -53,6 +53,10 @@ START_RELOC_NUMBERS (elf_tic6x_reloc_type)
RELOC_NUMBER (R_C6000_DSBT_INDEX, 24)
RELOC_NUMBER (R_C6000_PREL31, 25)
RELOC_NUMBER (R_C6000_COPY, 26)
RELOC_NUMBER (R_C6000_JUMP_SLOT, 27)
RELOC_NUMBER (R_C6000_EHTYPE, 28)
RELOC_NUMBER (R_C6000_PCR_H16, 29)
RELOC_NUMBER (R_C6000_PCR_L16, 30)
RELOC_NUMBER (R_C6000_ALIGN, 253)
RELOC_NUMBER (R_C6000_FPHEAD, 254)
RELOC_NUMBER (R_C6000_NOCMP, 255)
@ -89,6 +93,13 @@ END_RELOC_NUMBERS (R_TIC6X_max)
/* Extended program header attributes. */
#define SHT_TI_PHATTRS 0x7F000004
/* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these
values have a special meaning. */
/* Small data area common symbol. */
#define SHN_TIC6X_SCOMMON SHN_LORESERVE
/* Processor-specific segment types. */
/* Extended Segment Attributes. */

View File

@ -1,3 +1,17 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* emulparams/elf32_tic6x_le.sh (BIG_OUTPUT_FORMAT, EXTRA_EM_FILE,
GENERATE_SHLIB_SCRIPT): New defines.
(TEXT_START_ADDR): Define differently depending on target.
(.got): Redefine to include "*(.dsbt)".
(SDATA_START_SYMBOLS): Remove, replace with
(OTHER_GOT_SYMBOLS): New.
(OTHER_BSS_SECTIONS): Define only for ELF targets.
* emultempl/tic6xdsbt.em: New file.
* gen-doc.texi: Set C6X.
* ld.texinfo: Likewise.
(Options specific to C6X uClinux targets): New section.
2011-03-29 Alan Modra <amodra@gmail.com>
PR ld/12613

View File

@ -1,14 +1,29 @@
SCRIPT_NAME=elf
TEMPLATE_NAME=elf32
OUTPUT_FORMAT="elf32-tic6x-le"
BIG_OUTPUT_FORMAT="elf32-tic6x-be"
EXTRA_EM_FILE=tic6xdsbt
GENERATE_SHLIB_SCRIPT=yes
# This address is an arbitrary value expected to be suitable for
# semihosting simulator use, but not on hardware where it is expected
# to be overridden.
TEXT_START_ADDR=0x8000
case ${target} in
*-elf)
TEXT_START_ADDR=0x8000
;;
*-uclinux)
TEXT_START_ADDR=0x0
GOT="
.got ${RELOCATING-0} : {
*(.dsbt)
*(.got.plt) *(.igot.plt) *(.got) *(.igot)
}"
;;
esac
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
ARCH=tic6x
EXECUTABLE_SYMBOLS="EXTERN (__c6xabi_DSBT_BASE);"
SDATA_START_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
OTHER_GOT_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
# ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is
# far read-only data, ".rodata" is near read-only data. ".neardata"
# is near (small) data, ".fardata" is (along with .data) far data.
@ -24,7 +39,9 @@ OTHER_READWRITE_SECTIONS=".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .
OTHER_READWRITE_RELOC_SECTIONS="
.rel.fardata ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) }
.rela.fardata ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }"
OTHER_BSS_SECTIONS="
case ${target} in
*-elf)
OTHER_BSS_SECTIONS="
.heap :
{
. = ALIGN(4);
@ -37,4 +54,6 @@ OTHER_BSS_SECTIONS="
. += 0x100000;
_STACK_START = .;
}"
;;
esac
ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }'

105
ld/emultempl/tic6xdsbt.em Normal file
View File

@ -0,0 +1,105 @@
# This shell script emits a C file. -*- C -*-
# Copyright 2011 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
#
# This file is sourced from elf32.em, and defines extra C6X DSBT specific
# features.
#
fragment <<EOF
#include "ldctor.h"
#include "elf32-tic6x.h"
static struct elf32_tic6x_params params =
{
0, 64
};
static int
is_tic6x_target (void)
{
extern const bfd_target bfd_elf32_tic6x_le_vec;
extern const bfd_target bfd_elf32_tic6x_be_vec;
return (link_info.output_bfd->xvec == &bfd_elf32_tic6x_le_vec
|| link_info.output_bfd->xvec == &bfd_elf32_tic6x_be_vec);
}
/* Pass params to backend. */
static void
tic6x_after_open (void)
{
if (is_tic6x_target ())
{
if (params.dsbt_index >= params.dsbt_size)
{
einfo (_("%P%F: invalid --dsbt-index %d, outside DSBT size.\n"),
params.dsbt_index);
}
elf32_tic6x_setup (&link_info, &params);
}
gld${EMULATION_NAME}_after_open ();
}
EOF
# This code gets inserted into the generic elf32.sc linker script
# and allows us to define our own command line switches.
PARSE_AND_LIST_PROLOGUE='
#define OPTION_DSBT_INDEX 300
#define OPTION_DSBT_SIZE 301
'
PARSE_AND_LIST_LONGOPTS='
{"dsbt-index", required_argument, NULL, OPTION_DSBT_INDEX},
{"dsbt-size", required_argument, NULL, OPTION_DSBT_SIZE},
'
PARSE_AND_LIST_OPTIONS='
fprintf (file, _(" --dsbt-index <index>\n"));
fprintf (file, _("\t\t\tUse this as the DSBT index for the output object\n"));
fprintf (file, _(" --dsbt-size <index>\n"));
fprintf (file, _("\t\t\tUse this as the number of entries in the DSBT table\n"));
'
PARSE_AND_LIST_ARGS_CASES='
case OPTION_DSBT_INDEX:
{
char *end;
params.dsbt_index = strtol (optarg, &end, 0);
if (*end == 0
&& params.dsbt_index >= 0 && params.dsbt_index < 0x7fff)
break;
einfo (_("%P%F: invalid --dsbt-index %s\n"), optarg);
}
break;
case OPTION_DSBT_SIZE:
{
char *end;
params.dsbt_size = strtol (optarg, &end, 0);
if (*end == 0
&& params.dsbt_size >= 0 && params.dsbt_size < 0x7fff)
break;
einfo (_("%P%F: invalid --dsbt-size %s\n"), optarg);
}
break;
'
LDEMUL_AFTER_OPEN=tic6x_after_open

View File

@ -4,6 +4,7 @@
@c 2. Specific target machines
@set ARM
@set C6X
@set H8300
@set HPPA
@set I960

View File

@ -22,6 +22,7 @@
@set UsesEnvVars
@set GENERIC
@set ARM
@set C6X
@set H8300
@set HPPA
@set I960
@ -2612,6 +2613,35 @@ The image is Terminal Server aware.
@c man end
@ifset C6X
@subsection Options specific to C6X uClinux targets
@c man begin OPTIONS
The C6X uClinux target uses a binary format called DSBT to support shared
libraries. Each shared library in the system needs to have a unique index;
all executables use an index of 0.
@table @gcctabopt
@kindex --dsbt-size
@item --dsbt-size @var{size}
This option sets the number of entires in the DSBT of the current executable
or shared library to @var{size}. The default is to create a table with 64
entries.
@kindex --dsbt-index
@item --dsbt-index @var{index}
This option sets the DSBT index of the current executable or shared library
to @var{index}. The default is 0, which is appropriate for generating
executables. If a shared library is generated with a DSBT index of 0, the
@code{R_C6000_DSBT_INDEX} relocs are copied into the output file.
@end table
@c man end
@end ifset
@ifset M68HC11
@subsection Options specific to Motorola 68HC11 and 68HC12 targets

View File

@ -1,3 +1,87 @@
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
* ld-scripts/crossref.exp: Add CFLAGS for tic6x*-*-*.
* ld-elf/sec-to-seg.exp: Remove tic6x from list of targets defining
pagesize to 1.
* ld-tic6x/tic6x.exp: Add support for DSBT shared library/executable
linking tests.
* ld-tic6x/dsbt.ld: New linker script.
* ld-tic6x/dsbt-be.ld: New linker script.
* ld-tic6x/dsbt-overflow.ld: New linker script.
* ld-tic6x/dsbt-inrange.ld: New linker script.
* ld-tic6x/shlib-1.s: New test.
* ld-tic6x/shlib-2.s: New test.
* ld-tic6x/shlib-app-1r.s: New test.
* ld-tic6x/shlib-app-1.s: New test.
* ld-tic6x/shlib-1.sd: New test.
* ld-tic6x/shlib-1.dd: New test.
* ld-tic6x/shlib-app-1.rd: New test.
* ld-tic6x/shlib-app-1rb.rd: New test.
* ld-tic6x/shlib-app-1.sd: New test.
* ld-tic6x/static-app-1rb.od: New test.
* ld-tic6x/shlib-app-1.dd: New test.
* ld-tic6x/shlib-app-1rb.sd: New test.
* ld-tic6x/static-app-1b.od: New test.
* ld-tic6x/static-app-1r.od: New test.
* ld-tic6x/shlib-1rb.rd: New test.
* ld-tic6x/shlib-app-1rb.dd: New test.
* ld-tic6x/shlib-1rb.sd: New test.
* ld-tic6x/shlib-1rb.dd: New test.
* ld-tic6x/shlib-app-1b.od: New test.
* ld-tic6x/tic6x.exp: New test.
* ld-tic6x/static-app-1rb.rd: New test.
* ld-tic6x/shlib-app-1r.od: New test.
* ld-tic6x/static-app-1.od: New test.
* ld-tic6x/static-app-1b.rd: New test.
* ld-tic6x/static-app-1r.rd: New test.
* ld-tic6x/static-app-1rb.sd: New test.
* ld-tic6x/static-app-1b.sd: New test.
* ld-tic6x/static-app-1rb.dd: New test.
* ld-tic6x/static-app-1r.sd: New test.
* ld-tic6x/static-app-1b.dd: New test.
* ld-tic6x/shlib-1b.rd: New test.
* ld-tic6x/static-app-1r.dd: New test.
* ld-tic6x/shlib-app-1b.rd: New test.
* ld-tic6x/shlib-1r.rd: New test.
* ld-tic6x/shlib-app-1r.rd: New test.
* ld-tic6x/shlib-1b.sd: New test.
* ld-tic6x/static-app-1.rd: New test.
* ld-tic6x/shlib-app-1b.sd: New test.
* ld-tic6x/shlib-1r.sd: New test.
* ld-tic6x/shlib-1b.dd: New test.
* ld-tic6x/shlib-app-1r.sd: New test.
* ld-tic6x/shlib-app-1b.dd: New test.
* ld-tic6x/shlib-1r.dd: New test.
* ld-tic6x/static-app-1.sd: New test.
* ld-tic6x/shlib-app-1r.dd: New test.
* ld-tic6x/static-app-1.dd: New test.
* ld-tic6x/shlib-noindex.rd: New test.
* ld-tic6x/shlib-noindex.dd: New test.
* ld-tic6x/shlib-noindex.sd: New test.
* ld-tic6x/got-reloc-local-1.s: New test.
* ld-tic6x/got-reloc-local-2.s: New test.
* ld-tic6x/got-reloc-local-r.d: New test.
* ld-tic6x/got-reloc-global.s: New test.
* ld-tic6x/got-reloc-global-addend-1.d: New test.
* ld-tic6x/got-reloc-global-addend-1.s: New test.
* ld-tic6x/got-reloc-global-addend-2.d: New test.
* ld-tic6x/got-reloc-inrange.d: New test.
* ld-tic6x/got-reloc-overflow.d: New test.
* ld-tic6x/got-reloc-global-addend-2.s: New test.
* ld-tic6x/dsbt-index-error.d: New test.
* ld-tic6x/dsbt-index.d: New test.
* ld-tic6x/dsbt-index.s: New test.
* ld-tic6x/shlib-app-1.od: New test.
* ld-tic6x/shlib-app-1rb.od: New test.
* ld-tic6x/shlib-1.rd: New test.
* ld-tic6x/weak.d: New test.
* ld-tic6x/weak-be.d: New test.
* ld-tic6x/weak.s: New test.
* ld-tic6x/weak-data.d: New test.
* ld-tic6x/common.d: New test.
* ld-tic6x/common.ld: New test.
* ld-tic6x/common.s: New test.
2011-03-30 Richard Henderson <rth@redhat.com>
* ld-elf/elf.exp: Force 32-bit start address for alpha.

View File

@ -87,7 +87,6 @@ if { [istarget avr-*-*]
|| [istarget moxie-*-*]
|| [istarget msp430-*-*]
|| [istarget mt-*-*]
|| [istarget tic6x-*-*]
} {
set B_test_same_seg 0
} else {

View File

@ -51,6 +51,12 @@ if [istarget mep*-*-elf] {
set CFLAGS "-mtiny=0"
}
# The .dsbt section and __c6xabi_DSBT_BASE are not defined in our test
# linker scripts.
if [istarget tic6x*-*-*] {
set CFLAGS "-mno-dsbt -msdata=none"
}
if { ![ld_compile $CC "$srcdir/$subdir/cross1.c" tmpdir/cross1.o] \
|| ![ld_compile $CC "$srcdir/$subdir/cross2.c" tmpdir/cross2.o] } {
unresolved $test1

View File

@ -0,0 +1,28 @@
#name: C6X common symbols
#as: -mlittle-endian
#ld: -melf32_tic6x_le -Tcommon.ld
#source: common.s
#readelf: -Ss
There are 6 section headers, starting at offset 0x7c:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.far NOBITS 00000080 000080 000008 00 WA 0 0 4
\[ 2\] \.bss NOBITS 00000100 000080 000004 00 WA 0 0 4
\[ 3\] \.shstrtab STRTAB 00000000 000054 000025 00 0 0 1
\[ 4\] \.symtab SYMTAB 00000000 00016c 000050 10 5 3 4
\[ 5\] \.strtab STRTAB 00000000 0001bc 000005 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Symbol table '\.symtab' contains 5 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000080 0 SECTION LOCAL DEFAULT 1
2: 00000100 0 SECTION LOCAL DEFAULT 2
3: 00000100 4 OBJECT GLOBAL DEFAULT 2 x
4: 00000080 8 OBJECT GLOBAL DEFAULT 1 y

View File

@ -0,0 +1,11 @@
SECTIONS
{
. = 0x80;
.far : { *(.far) *(COMMON) }
. = 0x100;
.bss : { *(.scommon) }
. = 0x10000000;
.text : { *(.text*) }
/DISCARD/ : { *(*) }
}

View File

@ -0,0 +1,2 @@
.scomm x,4,4
.comm y,8,4

View File

@ -0,0 +1,67 @@
OUTPUT_FORMAT("elf32-tic6x-be", "elf32-tic6x-be",
"elf32-tic6x-be")
EXTERN (__c6xabi_DSBT_BASE);
SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
. = 0x8000;
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
.rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
.rel.rodata : { *(.rel.rodata .rel.rodata.*) }
.rela.rodata : { *(.rela.rodata .rela.rodata.*) }
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
.rel.fardata : { *(.rel.fardata .rel.fardata.*) }
.rela.fardata : { *(.rela.fardata .rela.fardata.*) }
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
.rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
.rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
.rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
.rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
.rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
.rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
.rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
.data : { *(.data*) }
. = 0x10000000;
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.plt : { *(.plt) }
.text : { *(.text*) }
PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
.got : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
.neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
.rodata : { *(.rodata .rodata.*) }
.bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
.far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(*) }
}

View File

@ -0,0 +1,5 @@
#name: C6X invalid DSBT_INDEX
#as: -mlittle-endian
#ld: -melf32_tic6x_le -Tsbr.ld --dsbt-index 5 --dsbt-size 3
#source: dsbt-index.s
#error: .*invalid --dsbt-index 5, outside DSBT size.*

View File

@ -0,0 +1,14 @@
#name: C6X DSBT_INDEX reloc
#as: -mlittle-endian
#ld: -melf32_tic6x_le -Tsbr.ld --dsbt-index 5
#source: dsbt-index.s
#objdump: -dr
.*: *file format elf32-tic6x-le
Disassembly of section \.text:
10000000 <[^>]*>:
10000000:[ \t]+0700056e[ \t]+ldw \.D2T2 \*\+b14\(20\),b14
[ \t]*\.\.\.

View File

@ -0,0 +1,3 @@
.text
.nocmp
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14

View File

@ -0,0 +1,68 @@
EXTERN (__c6xabi_DSBT_BASE);
SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
. = 0x8000;
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
.rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
.rel.rodata : { *(.rel.rodata .rel.rodata.*) }
.rela.rodata : { *(.rela.rodata .rela.rodata.*) }
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
.rel.fardata : { *(.rel.fardata .rel.fardata.*) }
.rela.fardata : { *(.rela.fardata .rela.fardata.*) }
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
.rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
.rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
.rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
.rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
.rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
.rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
.rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
.data : { *(.data*) }
. = 0x10000000;
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.plt : { *(.plt) }
.text : { *(.text*) }
. = 0x20000000;
PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
.dsbt : { *(.dsbt) }
. = 0x2001fff4;
.got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
.neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
.rodata : { *(.rodata .rodata.*) }
.bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
.far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(*) }
}

View File

@ -0,0 +1,68 @@
EXTERN (__c6xabi_DSBT_BASE);
SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
. = 0x8000;
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
.rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
.rel.rodata : { *(.rel.rodata .rel.rodata.*) }
.rela.rodata : { *(.rela.rodata .rela.rodata.*) }
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
.rel.fardata : { *(.rel.fardata .rel.fardata.*) }
.rela.fardata : { *(.rela.fardata .rela.fardata.*) }
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
.rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
.rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
.rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
.rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
.rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
.rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
.rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
.data : { *(.data*) }
. = 0x10000000;
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.plt : { *(.plt) }
.text : { *(.text*) }
. = 0x20000000;
PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
.dsbt : { *(.dsbt) }
. = 0x2001fff8;
.got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
.neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
.rodata : { *(.rodata .rodata.*) }
.bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
.far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(*) }
}

View File

@ -0,0 +1,65 @@
EXTERN (__c6xabi_DSBT_BASE);
SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS;
. = 0x8000;
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) }
.rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) }
.rel.rodata : { *(.rel.rodata .rel.rodata.*) }
.rela.rodata : { *(.rela.rodata .rela.rodata.*) }
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
.rel.fardata : { *(.rel.fardata .rel.fardata.*) }
.rela.fardata : { *(.rela.fardata .rela.fardata.*) }
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) }
.rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) }
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) }
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) }
.rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) }
.rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) }
.rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) }
.rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) }
.rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) }
.rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
.data : { *(.data*) }
. = 0x10000000;
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.plt : { *(.plt) }
.text : { *(.text*) }
PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);
.got : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) }
.neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) }
.rodata : { *(.rodata .rodata.*) }
.bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) }
.far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) }
.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(*) }
}

View File

@ -0,0 +1,5 @@
#name: C6X GOT relocations, addend
#as: -mlittle-endian -mdsbt
#ld: -melf32_tic6x_le -Tdsbt.ld --dsbt-index 4 -shared
#source: got-reloc-global-addend-1.s
#error: .*relocation R_C6000_SBR_GOT_U15_W with non-zero addend 4.*

View File

@ -0,0 +1,11 @@
.text
.nocmp
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
ldw .d2t1 *+B14($GOT(a)+4), A1
.global a
.section .neardata,"aw",@progbits
.align 2
.type a, @object
.size a, 4
a:

View File

@ -0,0 +1,5 @@
#name: C6X GOT relocations, addend
#as: -mlittle-endian -mdsbt
#ld: -melf32_tic6x_le -Tdsbt.ld --dsbt-index 4 -shared
#source: got-reloc-global-addend-2.s
#error: .*relocation R_C6000_SBR_GOT_L16_W with non-zero addend 4.*

View File

@ -0,0 +1,11 @@
.text
.nocmp
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
mvkl .s1 $DPR_GOT(a)+4, A1
.global a
.section .neardata,"aw",@progbits
.align 2
.type a, @object
.size a, 4
a:

View File

@ -0,0 +1,11 @@
.text
.nocmp
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
ldw .d2t1 *+B14($GOT(a)), A1
.global a
.section .neardata,"aw",@progbits
.align 2
.type a, @object
.size a, 4
a:

View File

@ -0,0 +1,15 @@
#name: C6X GOT relocations, no overflow
#as: -mlittle-endian -mdsbt
#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared
#source: got-reloc-global.s
#objdump: -dr
.*: *file format elf32-tic6x-le
Disassembly of section \.text:
10000000 <[^>]*>:
10000000:[ \t]+0700046e[ \t]+ldw \.D2T2 \*\+b14\(16\),b14
10000004:[ \t]+00ffff6c[ \t]+ldw \.D2T1 \*\+b14\(131068\),a1
[ \t]+...

View File

@ -0,0 +1,8 @@
.text
.nocmp
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
ldw .d2t1 *+B14($GOT(a)), A1
.data
a:
.word 0

View File

@ -0,0 +1,8 @@
.text
.nocmp
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
ldw .d2t1 *+B14($GOT(b)), A1
.data
b:
.word 0

View File

@ -0,0 +1,23 @@
#name: C6X GOT relocations, local symbols, -r
#as: -mlittle-endian
#ld: -r -melf32_tic6x_le
#source: got-reloc-local-1.s
#source: got-reloc-local-2.s
#objdump: -dr
.*: *file format elf32-tic6x-le
Disassembly of section \.text:
00000000 <\.text>:
[ ]*0:[ ]*0700006e[ ]*ldw \.D2T2 \*\+b14\(0\),b14
[ ]*0:[ ]*R_C6000_DSBT_INDEX __c6xabi_DSBT_BASE
[ ]*4:[ ]*0080006c[ ]*ldw \.D2T1 \*\+b14\(0\),a1
[ ]*4:[ ]*R_C6000_SBR_GOT_U15_W a
\.\.\.
[ ]*20:[ ]*0700006e[ ]*ldw \.D2T2 \*\+b14\(0\),b14
[ ]*20: R_C6000_DSBT_INDEX __c6xabi_DSBT_BASE
[ ]*24:[ ]*0080006c[ ]*ldw \.D2T1 \*\+b14\(0\),a1
[ ]*24:[ ]*R_C6000_SBR_GOT_U15_W b
\.\.\.

View File

@ -0,0 +1,5 @@
#name: C6X GOT relocations, overflow
#as: -mlittle-endian -mdsbt
#ld: -melf32_tic6x_le -Tdsbt-overflow.ld --dsbt-index 4 -shared
#source: got-reloc-global.s
#error: .*relocation truncated to fit: R_C6000_SBR_GOT_U15_W.*

View File

@ -0,0 +1,67 @@
tmpdir/libtest\.so: file format elf32-tic6x-le
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
10000050 <sub@plt>:
10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
1000005c:[ \t]*00002000[ \t]*nop 2
10000060:[ \t]*00080362[ \t]*b \.S2 b2
10000064:[ \t]*00008000[ \t]*nop 5
\.\.\.
Disassembly of section \.text:
10000080 <sub1>:
10000080:[ \t]*000c0362[ \t]*b \.S2 b3
10000084:[ \t]*00008000[ \t]*nop 5
10000088 <sub0>:
10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
100000b0:[ \t]*00004000[ \t]*nop 3
100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
100000b8:[ \t]*00008000[ \t]*nop 5
100000bc:[ \t]*00000000[ \t]*nop 1
100000c0 <sub>:
100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
100000cc:[ \t]*00006000[ \t]*nop 4
100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
\.\.\.

View File

@ -0,0 +1,123 @@
There are 17 section headers, starting at offset 0x21c4:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
\[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
\[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
\[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
\[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
\[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
\[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
\[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
\[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
\[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
\[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
\[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
\[15\] \.symtab SYMTAB 00000000 00246c 0001a0 10 16 19 4
\[16\] \.strtab STRTAB 00000000 00260c 000059 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is DYN \(Shared object file\)
Entry point 0x10000080
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x117c contains 16 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8118
0x00000006 \(SYMTAB\) 0x8048
0x0000000a \(STRSZ\) 37 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x70000000 \(C6000_DSBT_BASE\) 0x10000100
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x2
0x00000003 \(PLTGOT\) 0x1000010c
0x00000002 \(PLTRELSZ\) 24 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x8140
0x00000008 \(RELASZ\) 84 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
Symbol table '\.dynsym' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 8
2: 10000080 0 SECTION LOCAL DEFAULT 9
3: 10000100 0 SECTION LOCAL DEFAULT 10
4: 10000128 0 SECTION LOCAL DEFAULT 11
5: 10000130 0 SECTION LOCAL DEFAULT 12
6: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 00000000 0 NOTYPE WEAK DEFAULT UND b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008048 0 SECTION LOCAL DEFAULT 2
3: 00008118 0 SECTION LOCAL DEFAULT 3
4: 00008140 0 SECTION LOCAL DEFAULT 4
5: 00008164 0 SECTION LOCAL DEFAULT 5
6: 0000817c 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 10000020 0 SECTION LOCAL DEFAULT 8
9: 10000080 0 SECTION LOCAL DEFAULT 9
10: 10000100 0 SECTION LOCAL DEFAULT 10
11: 10000128 0 SECTION LOCAL DEFAULT 11
12: 10000130 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 10000080 0 FUNC LOCAL HIDDEN 9 sub1
15: 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
16: 10000130 4 OBJECT LOCAL DEFAULT 12 c
17: 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
18: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
19: 00000000 0 NOTYPE WEAK DEFAULT UND b
20: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
21: 00000000 0 NOTYPE WEAK DEFAULT UND g1
22: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
23: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
24: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
25: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub

View File

@ -0,0 +1,44 @@
.text
.nocmp
.align 2
.hidden sub1
.type sub1, @function
sub1:
ret .s2 B3
nop 5
.global sub0
.type sub0, @function
sub0:
sub .d2 B15, 16, B15
stw .d2t2 B3, *+B15(12)
stw .d2t2 B14, *+B15(16)
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
call .s2 (sub)
call .s2 (sub0)
call .s2 (sub1)
.L2:
ldw .d2t2 *+B15(12), B3
ldw .d2t2 *+B15(16), B14
addk .s2 16, B15
nop 3
ret .s2 B3
nop 5
.size sub0, .-sub0
.global a
.section .neardata,"aw",@progbits
.align 2
.type a, @object
.size a, 4
a:
.long sub0
.weak g1
.global g2
.type g2, @object
.size g2, 4
g2:
.long g1
.hidden c
.scomm c,4,4

View File

@ -0,0 +1,7 @@
tmpdir/libtest\.so: file format elf32-tic6x-le
Contents of section \.got:
[ \t]*10000100 00000000 00000000 00000000 00000000 .*
[ \t]*10000110 00000000 20000010 20000010 00000000 .*
[ \t]*10000120 30010010 00000000 .*

View File

@ -0,0 +1,67 @@
tmpdir/libtestb\.so: file format elf32-tic6x-be
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
10000050 <sub@plt>:
10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
1000005c:[ \t]*00002000[ \t]*nop 2
10000060:[ \t]*00080362[ \t]*b \.S2 b2
10000064:[ \t]*00008000[ \t]*nop 5
\.\.\.
Disassembly of section \.text:
10000080 <sub1>:
10000080:[ \t]*000c0362[ \t]*b \.S2 b3
10000084:[ \t]*00008000[ \t]*nop 5
10000088 <sub0>:
10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
100000b0:[ \t]*00004000[ \t]*nop 3
100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
100000b8:[ \t]*00008000[ \t]*nop 5
100000bc:[ \t]*00000000[ \t]*nop 1
100000c0 <sub>:
100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
100000cc:[ \t]*00006000[ \t]*nop 4
100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
\.\.\.

View File

@ -0,0 +1,123 @@
There are 17 section headers, starting at offset 0x21c4:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
\[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
\[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
\[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
\[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
\[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
\[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
\[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
\[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
\[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
\[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
\[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
\[15\] \.symtab SYMTAB 00000000 00246c 0001a0 10 16 19 4
\[16\] \.strtab STRTAB 00000000 00260c 000059 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is DYN \(Shared object file\)
Entry point 0x10000080
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x117c contains 16 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8118
0x00000006 \(SYMTAB\) 0x8048
0x0000000a \(STRSZ\) 37 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x70000000 \(C6000_DSBT_BASE\) 0x10000100
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x2
0x00000003 \(PLTGOT\) 0x1000010c
0x00000002 \(PLTRELSZ\) 24 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x8140
0x00000008 \(RELASZ\) 84 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
Symbol table '\.dynsym' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 8
2: 10000080 0 SECTION LOCAL DEFAULT 9
3: 10000100 0 SECTION LOCAL DEFAULT 10
4: 10000128 0 SECTION LOCAL DEFAULT 11
5: 10000130 0 SECTION LOCAL DEFAULT 12
6: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 00000000 0 NOTYPE WEAK DEFAULT UND b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008048 0 SECTION LOCAL DEFAULT 2
3: 00008118 0 SECTION LOCAL DEFAULT 3
4: 00008140 0 SECTION LOCAL DEFAULT 4
5: 00008164 0 SECTION LOCAL DEFAULT 5
6: 0000817c 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 10000020 0 SECTION LOCAL DEFAULT 8
9: 10000080 0 SECTION LOCAL DEFAULT 9
10: 10000100 0 SECTION LOCAL DEFAULT 10
11: 10000128 0 SECTION LOCAL DEFAULT 11
12: 10000130 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 10000080 0 FUNC LOCAL HIDDEN 9 sub1
15: 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
16: 10000130 4 OBJECT LOCAL DEFAULT 12 c
17: 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
18: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
19: 00000000 0 NOTYPE WEAK DEFAULT UND b
20: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
21: 00000000 0 NOTYPE WEAK DEFAULT UND g1
22: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
23: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
24: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
25: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub

View File

@ -0,0 +1,7 @@
tmpdir/libtestb\.so: file format elf32-tic6x-be
Contents of section \.got:
[ \t]*10000100 00000000 00000000 00000000 00000000 .*
[ \t]*10000110 00000000 10000020 10000020 00000000 .*
[ \t]*10000120 10000130 00000000 .*

View File

@ -0,0 +1,67 @@
tmpdir/libtestr\.so: file format elf32-tic6x-le
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
10000050 <sub@plt>:
10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
1000005c:[ \t]*00002000[ \t]*nop 2
10000060:[ \t]*00080362[ \t]*b \.S2 b2
10000064:[ \t]*00008000[ \t]*nop 5
\.\.\.
Disassembly of section \.text:
10000080 <sub1>:
10000080:[ \t]*000c0362[ \t]*b \.S2 b3
10000084:[ \t]*00008000[ \t]*nop 5
10000088 <sub0>:
10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
100000b0:[ \t]*00004000[ \t]*nop 3
100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
100000b8:[ \t]*00008000[ \t]*nop 5
100000bc:[ \t]*00000000[ \t]*nop 1
100000c0 <sub>:
100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
100000cc:[ \t]*00006000[ \t]*nop 4
100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
\.\.\.

View File

@ -0,0 +1,123 @@
There are 17 section headers, starting at offset 0x21c4:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
\[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
\[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
\[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
\[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
\[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
\[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
\[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
\[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
\[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
\[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
\[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
\[15\] \.symtab SYMTAB 00000000 00246c 0001a0 10 16 19 4
\[16\] \.strtab STRTAB 00000000 00260c 000059 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is DYN \(Shared object file\)
Entry point 0x10000080
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x117c contains 16 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8118
0x00000006 \(SYMTAB\) 0x8048
0x0000000a \(STRSZ\) 37 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x70000000 \(C6000_DSBT_BASE\) 0x10000100
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x2
0x00000003 \(PLTGOT\) 0x1000010c
0x00000002 \(PLTRELSZ\) 24 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x8140
0x00000008 \(RELASZ\) 84 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
Symbol table '\.dynsym' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 8
2: 10000080 0 SECTION LOCAL DEFAULT 9
3: 10000100 0 SECTION LOCAL DEFAULT 10
4: 10000128 0 SECTION LOCAL DEFAULT 11
5: 10000130 0 SECTION LOCAL DEFAULT 12
6: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 00000000 0 NOTYPE WEAK DEFAULT UND b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008048 0 SECTION LOCAL DEFAULT 2
3: 00008118 0 SECTION LOCAL DEFAULT 3
4: 00008140 0 SECTION LOCAL DEFAULT 4
5: 00008164 0 SECTION LOCAL DEFAULT 5
6: 0000817c 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 10000020 0 SECTION LOCAL DEFAULT 8
9: 10000080 0 SECTION LOCAL DEFAULT 9
10: 10000100 0 SECTION LOCAL DEFAULT 10
11: 10000128 0 SECTION LOCAL DEFAULT 11
12: 10000130 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 10000080 0 FUNC LOCAL HIDDEN 9 sub1
15: 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
16: 10000130 4 OBJECT LOCAL DEFAULT 12 c
17: 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
18: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
19: 00000000 0 NOTYPE WEAK DEFAULT UND b
20: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
21: 00000000 0 NOTYPE WEAK DEFAULT UND g1
22: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
23: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
24: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
25: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub

View File

@ -0,0 +1,7 @@
tmpdir/libtestr\.so: file format elf32-tic6x-le
Contents of section \.got:
[ \t]*10000100 00000000 00000000 00000000 00000000 .*
[ \t]*10000110 00000000 20000010 20000010 00000000 .*
[ \t]*10000120 30010010 00000000 .*

View File

@ -0,0 +1,67 @@
tmpdir/libtestrb\.so: file format elf32-tic6x-be
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
10000050 <sub@plt>:
10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2
10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0
10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
1000005c:[ \t]*00002000[ \t]*nop 2
10000060:[ \t]*00080362[ \t]*b \.S2 b2
10000064:[ \t]*00008000[ \t]*nop 5
\.\.\.
Disassembly of section \.text:
10000080 <sub1>:
10000080:[ \t]*000c0362[ \t]*b \.S2 b3
10000084:[ \t]*00008000[ \t]*nop 5
10000088 <sub0>:
10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
100000b0:[ \t]*00004000[ \t]*nop 3
100000b4:[ \t]*000c0362[ \t]*b \.S2 b3
100000b8:[ \t]*00008000[ \t]*nop 5
100000bc:[ \t]*00000000[ \t]*nop 1
100000c0 <sub>:
100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
100000cc:[ \t]*00006000[ \t]*nop 4
100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
100000dc:[ \t]*000c0362[ \t]*b \.S2 b3
100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6
100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7
100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8
100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9
\.\.\.

View File

@ -0,0 +1,123 @@
There are 17 section headers, starting at offset 0x21c4:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
\[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4
\[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4
\[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4
\[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4
\[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
\[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
\[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
\[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
\[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
\[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
\[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1
\[15\] \.symtab SYMTAB 00000000 00246c 0001a0 10 16 19 4
\[16\] \.strtab STRTAB 00000000 00260c 000059 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is DYN \(Shared object file\)
Entry point 0x10000080
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x117c contains 16 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8118
0x00000006 \(SYMTAB\) 0x8048
0x0000000a \(STRSZ\) 37 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x70000000 \(C6000_DSBT_BASE\) 0x10000100
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x2
0x00000003 \(PLTGOT\) 0x1000010c
0x00000002 \(PLTRELSZ\) 24 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x8140
0x00000008 \(RELASZ\) 84 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
Symbol table '\.dynsym' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 8
2: 10000080 0 SECTION LOCAL DEFAULT 9
3: 10000100 0 SECTION LOCAL DEFAULT 10
4: 10000128 0 SECTION LOCAL DEFAULT 11
5: 10000130 0 SECTION LOCAL DEFAULT 12
6: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 00000000 0 NOTYPE WEAK DEFAULT UND b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008048 0 SECTION LOCAL DEFAULT 2
3: 00008118 0 SECTION LOCAL DEFAULT 3
4: 00008140 0 SECTION LOCAL DEFAULT 4
5: 00008164 0 SECTION LOCAL DEFAULT 5
6: 0000817c 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 10000020 0 SECTION LOCAL DEFAULT 8
9: 10000080 0 SECTION LOCAL DEFAULT 9
10: 10000100 0 SECTION LOCAL DEFAULT 10
11: 10000128 0 SECTION LOCAL DEFAULT 11
12: 10000130 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 10000080 0 FUNC LOCAL HIDDEN 9 sub1
15: 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
16: 10000130 4 OBJECT LOCAL DEFAULT 12 c
17: 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
18: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
19: 00000000 0 NOTYPE WEAK DEFAULT UND b
20: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
21: 00000000 0 NOTYPE WEAK DEFAULT UND g1
22: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2
23: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0
24: 10000128 4 OBJECT GLOBAL DEFAULT 11 a
25: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub

View File

@ -0,0 +1,7 @@
tmpdir/libtestrb\.so: file format elf32-tic6x-be
Contents of section \.got:
[ \t]*10000100 00000000 00000000 00000000 00000000 .*
[ \t]*10000110 00000000 10000020 10000020 00000000 .*
[ \t]*10000120 10000130 00000000 .*

View File

@ -0,0 +1,23 @@
.weak a
.weak b
.text
.nocmp
.align 2
.global sub
.type sub, @function
sub:
sub .d2 B15, 16, B15
stw .d2t1 A4, *+B15(12)
ldw .d2t1 *+B15(12), A0
nop 4
add .d1 A0, 10, A0
mv .d1 A0, A4
add .d2 B15, 16, B15
ret .s2 B3
ldw .d2t2 *+B14($GOT(a)), B6
ldw .d2t2 *+B14($GOT(b)), B7
ldw .d2t2 *+B14($GOT(c)), B8
ldw .d2t2 *+B14(c), B9
nop 1
.size sub, .-sub

View File

@ -0,0 +1,40 @@
tmpdir/shlib-dynapp-1: file format elf32-tic6x-le
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
[ \t]*\.\.\.
Disassembly of section \.text:
10000060 <fish>:
10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
10000074:[ \t]*02000b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b4
10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
10000084:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
10000088:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
1000008c:[ \t]*02800328[ \t]*mvk \.S1 6,a5
10000090:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
[ \t]*\.\.\.

View File

@ -0,0 +1,13 @@
tmpdir/shlib-dynapp-1: file format elf32-tic6x-le
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
100000b8 R_C6000_ABS32 b
100000bc R_C6000_ABS32 a
100000c4 R_C6000_ABS32 g1
100000c8 R_C6000_ABS32 g2
100000cc R_C6000_COPY a
100000b4 R_C6000_JUMP_SLOT sub0

View File

@ -0,0 +1,127 @@
There are 18 section headers, starting at offset 0x2168:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008104 001104 000035 00 A 0 0 1
\[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c A 2 11 4
\[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c A 2 12 4
\[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c A 2 13 4
\[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4
\[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 9 4
\[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
\[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
\[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
\[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4
\[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4
\[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1
\[15\] \.shstrtab STRTAB 00000000 0020e5 000080 00 0 0 1
\[16\] \.symtab SYMTAB 00000000 002438 0001a0 10 17 20 4
\[17\] \.strtab STRTAB 00000000 0025d8 000055 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is EXEC \(Executable file\)
Entry point 0x10000060
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00230 0x00230 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x000cc 0x000d0 RWE 0x1000
DYNAMIC 0x001178 0x00008178 0x00008178 0x000b8 0x000b8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.rela\.bss \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x1178 contains 18 entries:
Tag Type Name/Value
0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtest\.so\]
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8104
0x00000006 \(SYMTAB\) 0x8044
0x0000000a \(STRSZ\) 53 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000015 \(DEBUG\) 0x0
0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x0
0x00000003 \(PLTGOT\) 0x100000ac
0x00000002 \(PLTRELSZ\) 12 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x813c
0x00000008 \(RELASZ\) 72 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x113c contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
100000bc 00000b01 R_C6000_ABS32 100000cc a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1154 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000c4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
100000c8 00000901 R_C6000_ABS32 00000000 g2 \+ 0
Relocation section '\.rela\.bss' at offset 0x116c contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000cc 00000b1a R_C6000_COPY 100000cc a \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b4 00000a1b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
Symbol table '\.dynsym' contains 12 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 9
2: 10000060 0 SECTION LOCAL DEFAULT 10
3: 100000a0 0 SECTION LOCAL DEFAULT 11
4: 100000c0 0 SECTION LOCAL DEFAULT 12
5: 100000cc 0 SECTION LOCAL DEFAULT 13
6: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 00000000 0 OBJECT WEAK DEFAULT UND g2
10: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
11: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008044 0 SECTION LOCAL DEFAULT 2
3: 00008104 0 SECTION LOCAL DEFAULT 3
4: 0000813c 0 SECTION LOCAL DEFAULT 4
5: 00008154 0 SECTION LOCAL DEFAULT 5
6: 0000816c 0 SECTION LOCAL DEFAULT 6
7: 00008178 0 SECTION LOCAL DEFAULT 7
8: 10000000 0 SECTION LOCAL DEFAULT 8
9: 10000020 0 SECTION LOCAL DEFAULT 9
10: 10000060 0 SECTION LOCAL DEFAULT 10
11: 100000a0 0 SECTION LOCAL DEFAULT 11
12: 100000c0 0 SECTION LOCAL DEFAULT 12
13: 100000cc 0 SECTION LOCAL DEFAULT 13
14: 00000000 0 SECTION LOCAL DEFAULT 14
15: 10000060 0 NOTYPE LOCAL DEFAULT 10 fish
16: 100000c4 8 OBJECT LOCAL DEFAULT 12 w
17: 00008178 0 OBJECT LOCAL DEFAULT 7 _DYNAMIC
18: 100000ac 0 OBJECT LOCAL DEFAULT 11 _GLOBAL_OFFSET_TABLE_
19: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
20: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
21: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
22: 00000000 0 NOTYPE WEAK DEFAULT UND g1
23: 00000000 0 OBJECT WEAK DEFAULT UND g2
24: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
25: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a

View File

@ -0,0 +1,31 @@
.global a
.text
.nocmp
fish:
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
callp .s2 sub0, B3
b .s2 sub0
callp .s2 fish, B3
b .s2 fish
ldw .d2t2 *+B14(a), B4
ldw .d2t2 *+B14(b), B5
ldw .d2t2 *+B14($GOT(a)), B6
ldw .d2t2 *+B14($GOT(b)), B6
mvkl .s1 $DPR_GOT(a), A4
mvkh .s1 $DPR_GOT(a), A4
mvkl .s1 $DPR_GOT(b), A5
mvkh .s1 $DPR_GOT(b), A5
.global b
.section .neardata,"aw",@progbits
.align 2
.type b, @object
.size b, 4
b:
.long 0x12345678
.weak g1
.weak g2
.type w, @object
.size w, 8
w:
.long g1
.long g2

View File

@ -0,0 +1,6 @@
tmpdir/shlib-dynapp-1: file format elf32-tic6x-le
Contents of section \.got:
[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
[ \t]*100000b0 00000000 20000010 00000000 00000000 .*

View File

@ -0,0 +1,40 @@
tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
[ \t]*\.\.\.
Disassembly of section \.text:
10000060 <fish>:
10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
10000074:[ \t]*02000b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b4
10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
10000084:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
10000088:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
1000008c:[ \t]*02800328[ \t]*mvk \.S1 6,a5
10000090:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
[ \t]*\.\.\.

View File

@ -0,0 +1,13 @@
tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
100000b8 R_C6000_ABS32 b
100000bc R_C6000_ABS32 a
100000c4 R_C6000_ABS32 g1
100000c8 R_C6000_ABS32 g2
100000cc R_C6000_COPY a
100000b4 R_C6000_JUMP_SLOT sub0

View File

@ -0,0 +1,127 @@
There are 18 section headers, starting at offset 0x2168:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008104 001104 000036 00 A 0 0 1
\[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c A 2 11 4
\[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c A 2 12 4
\[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c A 2 13 4
\[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4
\[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 9 4
\[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
\[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
\[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
\[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4
\[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4
\[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1
\[15\] \.shstrtab STRTAB 00000000 0020e5 000080 00 0 0 1
\[16\] \.symtab SYMTAB 00000000 002438 0001a0 10 17 20 4
\[17\] \.strtab STRTAB 00000000 0025d8 000055 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is EXEC \(Executable file\)
Entry point 0x10000060
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00230 0x00230 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x000cc 0x000d0 RWE 0x1000
DYNAMIC 0x001178 0x00008178 0x00008178 0x000b8 0x000b8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.rela\.bss \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x1178 contains 18 entries:
Tag Type Name/Value
0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestb\.so\]
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8104
0x00000006 \(SYMTAB\) 0x8044
0x0000000a \(STRSZ\) 54 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000015 \(DEBUG\) 0x0
0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x0
0x00000003 \(PLTGOT\) 0x100000ac
0x00000002 \(PLTRELSZ\) 12 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x813c
0x00000008 \(RELASZ\) 72 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x113c contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
100000bc 00000b01 R_C6000_ABS32 100000cc a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1154 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000c4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
100000c8 00000901 R_C6000_ABS32 00000000 g2 \+ 0
Relocation section '\.rela\.bss' at offset 0x116c contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000cc 00000b1a R_C6000_COPY 100000cc a \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b4 00000a1b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
Symbol table '\.dynsym' contains 12 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 9
2: 10000060 0 SECTION LOCAL DEFAULT 10
3: 100000a0 0 SECTION LOCAL DEFAULT 11
4: 100000c0 0 SECTION LOCAL DEFAULT 12
5: 100000cc 0 SECTION LOCAL DEFAULT 13
6: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 00000000 0 OBJECT WEAK DEFAULT UND g2
10: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
11: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008044 0 SECTION LOCAL DEFAULT 2
3: 00008104 0 SECTION LOCAL DEFAULT 3
4: 0000813c 0 SECTION LOCAL DEFAULT 4
5: 00008154 0 SECTION LOCAL DEFAULT 5
6: 0000816c 0 SECTION LOCAL DEFAULT 6
7: 00008178 0 SECTION LOCAL DEFAULT 7
8: 10000000 0 SECTION LOCAL DEFAULT 8
9: 10000020 0 SECTION LOCAL DEFAULT 9
10: 10000060 0 SECTION LOCAL DEFAULT 10
11: 100000a0 0 SECTION LOCAL DEFAULT 11
12: 100000c0 0 SECTION LOCAL DEFAULT 12
13: 100000cc 0 SECTION LOCAL DEFAULT 13
14: 00000000 0 SECTION LOCAL DEFAULT 14
15: 10000060 0 NOTYPE LOCAL DEFAULT 10 fish
16: 100000c4 8 OBJECT LOCAL DEFAULT 12 w
17: 00008178 0 OBJECT LOCAL DEFAULT 7 _DYNAMIC
18: 100000ac 0 OBJECT LOCAL DEFAULT 11 _GLOBAL_OFFSET_TABLE_
19: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
20: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b
21: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
22: 00000000 0 NOTYPE WEAK DEFAULT UND g1
23: 00000000 0 OBJECT WEAK DEFAULT UND g2
24: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
25: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a

View File

@ -0,0 +1,6 @@
tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be
Contents of section \.got:
[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
[ \t]*100000b0 00000000 10000020 00000000 00000000 .*

View File

@ -0,0 +1,36 @@
tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
[ \t]*\.\.\.
Disassembly of section \.text:
10000060 <fish>:
10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
10000074:[ \t]*0200096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b4
10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
[ \t]*\.\.\.

View File

@ -0,0 +1,11 @@
tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
100000b8 R_C6000_ABS32 b
100000bc R_C6000_ABS32 a
100000c4 R_C6000_COPY a
100000b4 R_C6000_JUMP_SLOT sub0

View File

@ -0,0 +1,115 @@
There are 17 section headers, starting at offset 0x2158:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 000080dc 0010dc 000030 00 A 0 0 1
\[ 4\] \.rela\.got RELA 0000810c 00110c 000018 0c A 2 10 4
\[ 5\] \.rela\.bss RELA 00008124 001124 00000c 0c A 2 12 4
\[ 6\] \.dynamic DYNAMIC 00008130 001130 0000b8 08 WA 3 0 4
\[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 8 4
\[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
\[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
\[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
\[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4
\[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4
\[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1
\[14\] \.shstrtab STRTAB 00000000 0020dd 00007b 00 0 0 1
\[15\] \.symtab SYMTAB 00000000 002400 000160 10 16 18 4
\[16\] \.strtab STRTAB 00000000 002560 00004d 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is EXEC \(Executable file\)
Entry point 0x10000060
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x001e8 0x001e8 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x000c4 0x000c8 RWE 0x1000
DYNAMIC 0x001130 0x00008130 0x00008130 0x000b8 0x000b8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.bss \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x1130 contains 18 entries:
Tag Type Name/Value
0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestr\.so\]
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x80dc
0x00000006 \(SYMTAB\) 0x803c
0x0000000a \(STRSZ\) 48 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000015 \(DEBUG\) 0x0
0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x0
0x00000003 \(PLTGOT\) 0x100000ac
0x00000002 \(PLTRELSZ\) 12 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x810c
0x00000008 \(RELASZ\) 48 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x110c contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
100000bc 00000901 R_C6000_ABS32 100000c4 a \+ 0
Relocation section '\.rela\.bss' at offset 0x1124 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000c4 0000091a R_C6000_COPY 100000c4 a \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b4 0000081b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
Symbol table '\.dynsym' contains 10 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 8
2: 10000060 0 SECTION LOCAL DEFAULT 9
3: 100000a0 0 SECTION LOCAL DEFAULT 10
4: 100000c0 0 SECTION LOCAL DEFAULT 11
5: 100000c4 0 SECTION LOCAL DEFAULT 12
6: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
8: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
9: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a
Symbol table '\.symtab' contains 22 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 0000803c 0 SECTION LOCAL DEFAULT 2
3: 000080dc 0 SECTION LOCAL DEFAULT 3
4: 0000810c 0 SECTION LOCAL DEFAULT 4
5: 00008124 0 SECTION LOCAL DEFAULT 5
6: 00008130 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 10000020 0 SECTION LOCAL DEFAULT 8
9: 10000060 0 SECTION LOCAL DEFAULT 9
10: 100000a0 0 SECTION LOCAL DEFAULT 10
11: 100000c0 0 SECTION LOCAL DEFAULT 11
12: 100000c4 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 10000060 0 NOTYPE LOCAL DEFAULT 9 fish
15: 00008130 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
16: 100000ac 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
17: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
18: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
19: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
20: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
21: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a

View File

@ -0,0 +1,19 @@
.global a
.text
fish:
ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14
callp .s2 sub0, B3
b .s2 sub0
callp .s2 fish, B3
b .s2 fish
ldw .d2t2 *+B14(a), B4
ldw .d2t2 *+B14(b), B5
ldw .d2t2 *+B14($GOT(a)), B6
ldw .d2t2 *+B14($GOT(b)), B6
.global b
.section .neardata,"aw",@progbits
.align 2
.type b, @object
.size b, 4
b:
.long 0x12345678

View File

@ -0,0 +1,6 @@
tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le
Contents of section \.got:
[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
[ \t]*100000b0 00000000 20000010 00000000 00000000 .*

View File

@ -0,0 +1,36 @@
tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2
10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1
10000028:[ \t]*00004000[ \t]*nop 3
1000002c:[ \t]*00080362[ \t]*b \.S2 b2
10000030:[ \t]*00008000[ \t]*nop 5
10000034:[ \t]*00000000[ \t]*nop 1
10000038 <sub0@plt>:
10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2
1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0
10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0
10000044:[ \t]*00002000[ \t]*nop 2
10000048:[ \t]*00080362[ \t]*b \.S2 b2
1000004c:[ \t]*00008000[ \t]*nop 5
[ \t]*\.\.\.
Disassembly of section \.text:
10000060 <fish>:
10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3
10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt>
1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3
10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish>
10000074:[ \t]*0200096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b4
10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5
1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6
[ \t]*\.\.\.

View File

@ -0,0 +1,11 @@
tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
100000b8 R_C6000_ABS32 b
100000bc R_C6000_ABS32 a
100000c4 R_C6000_COPY a
100000b4 R_C6000_JUMP_SLOT sub0

View File

@ -0,0 +1,115 @@
There are 17 section headers, starting at offset 0x2158:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 000080dc 0010dc 000031 00 A 0 0 1
\[ 4\] \.rela\.got RELA 00008110 001110 000018 0c A 2 10 4
\[ 5\] \.rela\.bss RELA 00008128 001128 00000c 0c A 2 12 4
\[ 6\] \.dynamic DYNAMIC 00008134 001134 0000b8 08 WA 3 0 4
\[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 8 4
\[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32
\[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32
\[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4
\[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4
\[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4
\[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1
\[14\] \.shstrtab STRTAB 00000000 0020dd 00007b 00 0 0 1
\[15\] \.symtab SYMTAB 00000000 002400 000160 10 16 18 4
\[16\] \.strtab STRTAB 00000000 002560 00004d 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is EXEC \(Executable file\)
Entry point 0x10000060
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x001ec 0x001ec RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x000c4 0x000c8 RWE 0x1000
DYNAMIC 0x001134 0x00008134 0x00008134 0x000b8 0x000b8 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.bss \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x1134 contains 18 entries:
Tag Type Name/Value
0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestrb\.so\]
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x80dc
0x00000006 \(SYMTAB\) 0x803c
0x0000000a \(STRSZ\) 49 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000015 \(DEBUG\) 0x0
0x70000000 \(C6000_DSBT_BASE\) 0x100000a0
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x0
0x00000003 \(PLTGOT\) 0x100000ac
0x00000002 \(PLTRELSZ\) 12 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x8110
0x00000008 \(RELASZ\) 48 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x1110 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0
100000bc 00000901 R_C6000_ABS32 100000c4 a \+ 0
Relocation section '\.rela\.bss' at offset 0x1128 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000c4 0000091a R_C6000_COPY 100000c4 a \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000b4 0000081b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0
Symbol table '\.dynsym' contains 10 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 8
2: 10000060 0 SECTION LOCAL DEFAULT 9
3: 100000a0 0 SECTION LOCAL DEFAULT 10
4: 100000c0 0 SECTION LOCAL DEFAULT 11
5: 100000c4 0 SECTION LOCAL DEFAULT 12
6: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
8: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
9: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a
Symbol table '\.symtab' contains 22 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 0000803c 0 SECTION LOCAL DEFAULT 2
3: 000080dc 0 SECTION LOCAL DEFAULT 3
4: 00008110 0 SECTION LOCAL DEFAULT 4
5: 00008128 0 SECTION LOCAL DEFAULT 5
6: 00008134 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 10000020 0 SECTION LOCAL DEFAULT 8
9: 10000060 0 SECTION LOCAL DEFAULT 9
10: 100000a0 0 SECTION LOCAL DEFAULT 10
11: 100000c0 0 SECTION LOCAL DEFAULT 11
12: 100000c4 0 SECTION LOCAL DEFAULT 12
13: 00000000 0 SECTION LOCAL DEFAULT 13
14: 10000060 0 NOTYPE LOCAL DEFAULT 9 fish
15: 00008134 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
16: 100000ac 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
17: 100000a0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
18: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b
19: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
20: 00000000 0 FUNC GLOBAL DEFAULT UND sub0
21: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a

View File

@ -0,0 +1,6 @@
tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be
Contents of section \.got:
[ \t]*100000a0 00000000 00000000 00000000 00000000 .*
[ \t]*100000b0 00000000 10000020 00000000 00000000 .*

View File

@ -0,0 +1,67 @@
tmpdir/libtestn\.so: file format elf32-tic6x-le
Disassembly of section \.plt:
10000020 <sub0@plt-0x18>:
10000020: 0100036e ldw \.D2T2 \*\+b14\(12\),b2
10000024: 0080046e ldw \.D2T2 \*\+b14\(16\),b1
10000028: 00004000 nop 3
1000002c: 00080362 b \.S2 b2
10000030: 00008000 nop 5
10000034: 00000000 nop 1
10000038 <sub0@plt>:
10000038: 0100056e ldw \.D2T2 \*\+b14\(20\),b2
1000003c: 0000002a mvk \.S2 0,b0
10000040: 0000006a mvkh \.S2 0,b0
10000044: 00002000 nop 2
10000048: 00080362 b \.S2 b2
1000004c: 00008000 nop 5
10000050 <sub@plt>:
10000050: 0100066e ldw \.D2T2 \*\+b14\(24\),b2
10000054: 0000062a mvk \.S2 12,b0
10000058: 0000006a mvkh \.S2 0,b0
1000005c: 00002000 nop 2
10000060: 00080362 b \.S2 b2
10000064: 00008000 nop 5
\.\.\.
Disassembly of section \.text:
10000080 <sub1>:
10000080: 000c0362 b \.S2 b3
10000084: 00008000 nop 5
10000088 <sub0>:
10000088: 07be09c2 sub \.D2 b15,16,b15
1000008c: 01bc62f6 stw \.D2T2 b3,\*\+b15\(12\)
10000090: 073c82f6 stw \.D2T2 b14,\*\+b15\(16\)
10000094: 0700006e ldw \.D2T2 \*\+b14\(0\),b14
10000098: 0ffffa12 b \.S2 10000050 <sub@plt>
1000009c: 0ffff712 b \.S2 10000038 <sub0@plt>
100000a0: 0ffffc12 b \.S2 10000080 <sub1>
100000a4: 01bc62e6 ldw \.D2T2 \*\+b15\(12\),b3
100000a8: 073c82e6 ldw \.D2T2 \*\+b15\(16\),b14
100000ac: 07800852 addk \.S2 16,b15
100000b0: 00004000 nop 3
100000b4: 000c0362 b \.S2 b3
100000b8: 00008000 nop 5
100000bc: 00000000 nop 1
100000c0 <sub>:
100000c0: 07be09c2 sub \.D2 b15,16,b15
100000c4: 023c62f4 stw \.D2T1 a4,\*\+b15\(12\)
100000c8: 003c62e4 ldw \.D2T1 \*\+b15\(12\),a0
100000cc: 00006000 nop 4
100000d0: 00014940 add \.D1 a0,10,a0
100000d4: 020008f0 or \.D1 0,a0,a4
100000d8: 07be0942 add \.D2 b15,16,b15
100000dc: 000c0362 b \.S2 b3
100000e0: 0300096e ldw \.D2T2 \*\+b14\(36\),b6
100000e4: 0380076e ldw \.D2T2 \*\+b14\(28\),b7
100000e8: 0400086e ldw \.D2T2 \*\+b14\(32\),b8
100000ec: 04800c6e ldw \.D2T2 \*\+b14\(48\),b9
\.\.\.

View File

@ -0,0 +1,130 @@
There are 18 section headers, starting at offset 0x21cc:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4
\[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1
\[ 4\] \.rela\.text RELA 00008140 001140 00000c 0c A 2 10 4
\[ 5\] \.rela\.got RELA 0000814c 00114c 000024 0c A 2 11 4
\[ 6\] \.rela\.neardata RELA 00008170 001170 000018 0c A 2 12 4
\[ 7\] \.dynamic DYNAMIC 00008188 001188 0000b0 08 WA 3 0 4
\[ 8\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 9 4
\[ 9\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32
\[10\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32
\[11\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4
\[12\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4
\[13\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4
\[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1
\[15\] \.shstrtab STRTAB 00000000 002149 000080 00 0 0 1
\[16\] \.symtab SYMTAB 00000000 00249c 0001b0 10 17 20 4
\[17\] \.strtab STRTAB 00000000 00264c 000059 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is DYN \(Shared object file\)
Entry point 0x10000080
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x00238 0x00238 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000
DYNAMIC 0x001188 0x00008188 0x00008188 0x000b0 0x000b0 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.text \.rela\.got \.rela\.neardata \.dynamic
01 \.rela\.plt \.plt \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x1188 contains 17 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x8118
0x00000006 \(SYMTAB\) 0x8048
0x0000000a \(STRSZ\) 37 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x70000000 \(C6000_DSBT_BASE\) 0x10000100
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x0
0x00000003 \(PLTGOT\) 0x1000010c
0x00000002 \(PLTRELSZ\) 24 \(bytes\)
0x00000014 \(PLTREL\) RELA
0x00000017 \(JMPREL\) 0x10000000
0x00000007 \(RELA\) 0x8140
0x00000008 \(RELASZ\) 96 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000016 \(TEXTREL\) 0x0
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.text' at offset 0x1140 contains 1 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000094 00000618 R_C6000_DSBT_INDEX 10000100 __c6xabi_DSBT_BASE \+ 0
Relocation section '\.rela\.got' at offset 0x114c contains 3 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0
1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0
10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1170 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0
1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0
Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0
10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0
Symbol table '\.dynsym' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000020 0 SECTION LOCAL DEFAULT 9
2: 10000080 0 SECTION LOCAL DEFAULT 10
3: 10000100 0 SECTION LOCAL DEFAULT 11
4: 10000128 0 SECTION LOCAL DEFAULT 12
5: 10000130 0 SECTION LOCAL DEFAULT 13
6: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 00000000 0 NOTYPE WEAK DEFAULT UND b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 1000012c 4 OBJECT GLOBAL DEFAULT 12 g2
10: 10000088 52 FUNC GLOBAL DEFAULT 10 sub0
11: 10000128 4 OBJECT GLOBAL DEFAULT 12 a
12: 100000c0 52 FUNC GLOBAL DEFAULT 10 sub
Symbol table '\.symtab' contains 27 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 00008048 0 SECTION LOCAL DEFAULT 2
3: 00008118 0 SECTION LOCAL DEFAULT 3
4: 00008140 0 SECTION LOCAL DEFAULT 4
5: 0000814c 0 SECTION LOCAL DEFAULT 5
6: 00008170 0 SECTION LOCAL DEFAULT 6
7: 00008188 0 SECTION LOCAL DEFAULT 7
8: 10000000 0 SECTION LOCAL DEFAULT 8
9: 10000020 0 SECTION LOCAL DEFAULT 9
10: 10000080 0 SECTION LOCAL DEFAULT 10
11: 10000100 0 SECTION LOCAL DEFAULT 11
12: 10000128 0 SECTION LOCAL DEFAULT 12
13: 10000130 0 SECTION LOCAL DEFAULT 13
14: 00000000 0 SECTION LOCAL DEFAULT 14
15: 10000080 0 FUNC LOCAL HIDDEN 10 sub1
16: 00008188 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
17: 10000130 4 OBJECT LOCAL DEFAULT 13 c
18: 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
19: 10000100 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
20: 00000000 0 NOTYPE WEAK DEFAULT UND b
21: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
22: 00000000 0 NOTYPE WEAK DEFAULT UND g1
23: 1000012c 4 OBJECT GLOBAL DEFAULT 12 g2
24: 10000088 52 FUNC GLOBAL DEFAULT 10 sub0
25: 10000128 4 OBJECT GLOBAL DEFAULT 12 a
26: 100000c0 52 FUNC GLOBAL DEFAULT 10 sub

View File

@ -0,0 +1,7 @@
tmpdir/libtestn\.so: file format elf32-tic6x-le
Contents of section \.got:
[ \t]*10000100 00000000 00000000 00000000 00000000 .*
[ \t]*10000110 00000000 20000010 20000010 00000000 .*
[ \t]*10000120 30010010 00000000 .*

View File

@ -0,0 +1,56 @@
tmpdir/static-app-1: file format elf32-tic6x-le
Disassembly of section \.text:
10000000 <sub1>:
10000000:[ \t]*000c0362[ \t]*b \.S2 b3
10000004:[ \t]*00008000[ \t]*nop 5
10000008 <sub0>:
10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\)
10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\)
10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
10000030:[ \t]*00004000[ \t]*nop 3
10000034:[ \t]*000c0362[ \t]*b \.S2 b3
10000038:[ \t]*00008000[ \t]*nop 5
1000003c:[ \t]*00000000[ \t]*nop 1
10000040 <sub>:
10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15
10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\)
10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0
1000004c:[ \t]*00006000[ \t]*nop 4
10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0
10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4
10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15
1000005c:[ \t]*000c0362[ \t]*b \.S2 b3
10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7
10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8
1000006c:[ \t]*04800d6e[ \t]*ldw \.D2T2 \*\+b14\(52\),b9
[ \t]*\.\.\.
10000080 <fish>:
10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3
10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0>
1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3
10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish>
10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4
10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5
1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6
100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6
100000a4:[ \t]*020003a8[ \t]*mvk \.S1 7,a4
100000a8:[ \t]*02000068[ \t]*mvkh \.S1 0,a4
100000ac:[ \t]*028002a8[ \t]*mvk \.S1 5,a5
100000b0:[ \t]*02800068[ \t]*mvkh \.S1 0,a5
[ \t]*\.\.\.

View File

@ -0,0 +1,14 @@
tmpdir/static-app-1: file format elf32-tic6x-le
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
100000d8 R_C6000_ABS32 \.bss
100000d4 R_C6000_ABS32 b
100000dc R_C6000_ABS32 a
100000e0 R_C6000_ABS32 \.text\+0x00000008
100000e4 R_C6000_ABS32 g1
100000ec R_C6000_ABS32 g1
100000f0 R_C6000_ABS32 \.neardata\+0x00000004

View File

@ -0,0 +1,112 @@
There are 15 section headers, starting at offset 0x2180:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4
\[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4
\[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1
\[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4
\[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c A 2 9 4
\[ 6\] \.dynamic DYNAMIC 00008150 001150 000090 08 WA 3 0 4
\[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32
\[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4
\[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4
\[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4
\[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1
\[12\] \.shstrtab STRTAB 00000000 00210d 000071 00 0 0 1
\[13\] \.symtab SYMTAB 00000000 0023d8 0001a0 10 14 19 4
\[14\] \.strtab STRTAB 00000000 002578 000060 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Elf file type is EXEC \(Executable file\)
Entry point 0x10000000
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x001000 0x00008000 0x00008000 0x001e0 0x001e0 RW 0x1000
LOAD 0x002000 0x10000000 0x10000000 0x000f4 0x000f8 RWE 0x1000
DYNAMIC 0x001150 0x00008150 0x00008150 0x00090 0x00090 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8
Section to Segment mapping:
Segment Sections\.\.\.
00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic
01 \.text \.got \.neardata \.bss
02 \.dynamic
03
Dynamic section at offset 0x1150 contains 13 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x8000
0x00000005 \(STRTAB\) 0x80dc
0x00000006 \(SYMTAB\) 0x803c
0x0000000a \(STRSZ\) 29 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000015 \(DEBUG\) 0x0
0x70000000 \(C6000_DSBT_BASE\) 0x100000c0
0x70000001 \(C6000_DSBT_SIZE\) 0x3
0x70000003 \(C6000_DSBT_INDEX\) 0x0
0x00000007 \(RELA\) 0x80fc
0x00000008 \(RELASZ\) 84 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000000 \(NULL\) 0x0
Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000d8 00000401 R_C6000_ABS32 100000f4 \.bss \+ 0
100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0
100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0
Relocation section '\.rela\.neardata' at offset 0x1120 contains 4 entries:
Offset Info Type Sym\. Value Symbol's Name \+ Addend
100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8
100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0
100000ec 00000801 R_C6000_ABS32 00000000 g1 \+ 0
100000f0 00000301 R_C6000_ABS32 100000e0 \.neardata \+ 4
Symbol table '\.dynsym' contains 10 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 10000000 0 SECTION LOCAL DEFAULT 7
2: 100000c0 0 SECTION LOCAL DEFAULT 8
3: 100000e0 0 SECTION LOCAL DEFAULT 9
4: 100000f4 0 SECTION LOCAL DEFAULT 10
5: 100000f4 4 OBJECT LOCAL DEFAULT 10 c
6: 100000c0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
8: 00000000 0 NOTYPE WEAK DEFAULT UND g1
9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00008000 0 SECTION LOCAL DEFAULT 1
2: 0000803c 0 SECTION LOCAL DEFAULT 2
3: 000080dc 0 SECTION LOCAL DEFAULT 3
4: 000080fc 0 SECTION LOCAL DEFAULT 4
5: 00008120 0 SECTION LOCAL DEFAULT 5
6: 00008150 0 SECTION LOCAL DEFAULT 6
7: 10000000 0 SECTION LOCAL DEFAULT 7
8: 100000c0 0 SECTION LOCAL DEFAULT 8
9: 100000e0 0 SECTION LOCAL DEFAULT 9
10: 100000f4 0 SECTION LOCAL DEFAULT 10
11: 00000000 0 SECTION LOCAL DEFAULT 11
12: 10000000 0 FUNC LOCAL HIDDEN 7 sub1
13: 10000080 0 NOTYPE LOCAL DEFAULT 7 fish
14: 100000ec 8 OBJECT LOCAL DEFAULT 9 w
15: 00008150 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC
16: 100000f4 4 OBJECT LOCAL DEFAULT 10 c
17: 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_
18: 100000c0 0 NOTYPE LOCAL DEFAULT ABS __c6xabi_DSBT_BASE
19: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b
20: 00020000 0 OBJECT GLOBAL DEFAULT ABS __stacksize
21: 00000000 0 NOTYPE WEAK DEFAULT UND g1
22: 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2
23: 10000008 52 FUNC GLOBAL DEFAULT 7 sub0
24: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a
25: 10000040 52 FUNC GLOBAL DEFAULT 7 sub

View File

@ -0,0 +1,6 @@
tmpdir/static-app-1: file format elf32-tic6x-le
Contents of section \.got:
[ \t]*100000c0 00000000 00000000 00000000 00000000 .*
[ \t]*100000d0 00000000 00000000 f4000010 00000000 .*

Some files were not shown because too many files have changed in this diff Show More