2010-10-23 Mark Mitchell <mark@codesourcery.com>
* config/obj-elf.c (elf_adjust_symtab): New. Move group section processing here from elf_frob_file. Ensure that group signature symbols have the name of the group. (elf_frob_file): Move group section processing to elf_adjust_symtab. * config/obj-elf.h (elf_adjust_symtab): Declare. (obj_adjust_symtab): Define. * config/tc-arm.c (arm_adjust_symtab): Call elf_adjust_symtab. 2010-10-23 Mark Mitchell <mark@codesourcery.com> * gas/elf/elf.exp: Add group0c test. * gas/elf/group0c.d: New. * gas/elf/group0a.d: Expect ".group" for the name of group sections. * gas/elf/group0b.d: Likewise. * gas/elf/group1a.d: Likewise. * gas/elf/group1b.d: Likewise. * gas/elf/groupautoa.d: Likewise. * gas/elf/groupautob.d: Likewise. * gas/elf/section4.d: Likewise. * gas/ia64/group-1.d: Likewise. Adjust hard-coded constants. 2010-10-22 Mark Mitchell <mark@codesourcery.com> * binutils-all/group-5.d: Expect ".group" for the name of group sections. * binutils-all/strip-2.d: Likewise. 2010-10-23 Mark Mitchell <mark@codesourcery.com> * ld-elf/group10.d: Expect ".group" for the name of group sections. * ld-elf/group2.d: Likewise. * ld-elf/group7.d: Likewise.
This commit is contained in:
parent
0c480dea72
commit
709001e957
@ -1,3 +1,9 @@
|
|||||||
|
2010-10-22 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* binutils-all/group-5.d: Expect ".group" for the name of group
|
||||||
|
sections.
|
||||||
|
* binutils-all/strip-2.d: Likewise.
|
||||||
|
|
||||||
2010-10-12 Andreas Schwab <schwab@linux-m68k.org>
|
2010-10-12 Andreas Schwab <schwab@linux-m68k.org>
|
||||||
|
|
||||||
* binutils-all/m68k/objdump.exp: Add fnop test.
|
* binutils-all/m68k/objdump.exp: Add fnop test.
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
#readelf: -Sg --wide
|
#readelf: -Sg --wide
|
||||||
|
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.*
|
\[[ 0-9]+\] \.group[ \t]+GROUP[ \t]+.*
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.*
|
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.*
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.*
|
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.*
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections:
|
COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections:
|
||||||
\[Index\] Name
|
\[Index\] Name
|
||||||
\[[ 0-9]+\] .text.*
|
\[[ 0-9]+\] .text.*
|
||||||
\[[ 0-9]+\] .data.*
|
\[[ 0-9]+\] .data.*
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
#name: strip with section group 2
|
#name: strip with section group 2
|
||||||
|
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.*
|
\[[ 0-9]+\] \.group[ \t]+GROUP[ \t]+.*
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.*
|
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.*
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.*
|
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.*
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections:
|
COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections:
|
||||||
\[Index\] Name
|
\[Index\] Name
|
||||||
\[[ 0-9]+\] .text.*
|
\[[ 0-9]+\] .text.*
|
||||||
\[[ 0-9]+\] .data.*
|
\[[ 0-9]+\] .data.*
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
2010-10-23 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* config/obj-elf.c (elf_adjust_symtab): New. Move group section
|
||||||
|
processing here from elf_frob_file. Ensure that group signature
|
||||||
|
symbols have the name of the group.
|
||||||
|
(elf_frob_file): Move group section processing to
|
||||||
|
elf_adjust_symtab.
|
||||||
|
* config/obj-elf.h (elf_adjust_symtab): Declare.
|
||||||
|
(obj_adjust_symtab): Define.
|
||||||
|
* config/tc-arm.c (arm_adjust_symtab): Call elf_adjust_symtab.
|
||||||
|
|
||||||
2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
* config/tc-sparc.h [TE_SOLARIS] (ELF_TARGET_FORMAT): Define as
|
* config/tc-sparc.h [TE_SOLARIS] (ELF_TARGET_FORMAT): Define as
|
||||||
|
@ -2081,32 +2081,29 @@ static void free_section_idx (const char *key ATTRIBUTE_UNUSED, void *val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
elf_frob_file (void)
|
elf_adjust_symtab (void)
|
||||||
{
|
{
|
||||||
struct group_list list;
|
struct group_list list;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
bfd_map_over_sections (stdoutput, adjust_stab_sections, NULL);
|
|
||||||
|
|
||||||
/* Go find section groups. */
|
/* Go find section groups. */
|
||||||
list.num_group = 0;
|
list.num_group = 0;
|
||||||
list.head = NULL;
|
list.head = NULL;
|
||||||
list.elt_count = NULL;
|
list.elt_count = NULL;
|
||||||
list.indexes = hash_new ();
|
list.indexes = hash_new ();
|
||||||
bfd_map_over_sections (stdoutput, build_group_lists, &list);
|
bfd_map_over_sections (stdoutput, build_group_lists, &list);
|
||||||
|
|
||||||
/* Make the SHT_GROUP sections that describe each section group. We
|
/* Make the SHT_GROUP sections that describe each section group. We
|
||||||
can't set up the section contents here yet, because elf section
|
can't set up the section contents here yet, because elf section
|
||||||
indices have yet to be calculated. elf.c:set_group_contents does
|
indices have yet to be calculated. elf.c:set_group_contents does
|
||||||
the rest of the work. */
|
the rest of the work. */
|
||||||
for (i = 0; i < list.num_group; i++)
|
for (i = 0; i < list.num_group; i++)
|
||||||
{
|
{
|
||||||
const char *group_name = elf_group_name (list.head[i]);
|
const char *group_name = elf_group_name (list.head[i]);
|
||||||
const char *sec_name;
|
const char *sec_name;
|
||||||
asection *s;
|
asection *s;
|
||||||
flagword flags;
|
flagword flags;
|
||||||
struct symbol *sy;
|
struct symbol *sy;
|
||||||
int has_sym;
|
|
||||||
bfd_size_type size;
|
bfd_size_type size;
|
||||||
|
|
||||||
flags = SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_GROUP;
|
flags = SEC_READONLY | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_GROUP;
|
||||||
@ -2122,17 +2119,7 @@ elf_frob_file (void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sec_name = group_name;
|
sec_name = ".group";
|
||||||
sy = symbol_find_exact (group_name);
|
|
||||||
has_sym = 0;
|
|
||||||
if (sy != NULL
|
|
||||||
&& (sy == symbol_lastP
|
|
||||||
|| (sy->sy_next != NULL
|
|
||||||
&& sy->sy_next->sy_previous == sy)))
|
|
||||||
{
|
|
||||||
has_sym = 1;
|
|
||||||
sec_name = ".group";
|
|
||||||
}
|
|
||||||
s = subseg_force_new (sec_name, 0);
|
s = subseg_force_new (sec_name, 0);
|
||||||
if (s == NULL
|
if (s == NULL
|
||||||
|| !bfd_set_section_flags (stdoutput, s, flags)
|
|| !bfd_set_section_flags (stdoutput, s, flags)
|
||||||
@ -2145,8 +2132,20 @@ elf_frob_file (void)
|
|||||||
|
|
||||||
/* Pass a pointer to the first section in this group. */
|
/* Pass a pointer to the first section in this group. */
|
||||||
elf_next_in_group (s) = list.head[i];
|
elf_next_in_group (s) = list.head[i];
|
||||||
if (has_sym)
|
/* Make sure that the signature symbol for the group has the
|
||||||
elf_group_id (s) = sy->bsym;
|
name of the group. */
|
||||||
|
sy = symbol_find_exact (group_name);
|
||||||
|
if (!sy
|
||||||
|
|| (sy != symbol_lastP
|
||||||
|
&& (sy->sy_next == NULL
|
||||||
|
|| sy->sy_next->sy_previous != sy)))
|
||||||
|
{
|
||||||
|
/* Create the symbol now. */
|
||||||
|
sy = symbol_new (group_name, now_seg, (valueT) 0, frag_now);
|
||||||
|
symbol_get_obj (sy)->local = 1;
|
||||||
|
symbol_table_insert (sy);
|
||||||
|
}
|
||||||
|
elf_group_id (s) = symbol_get_bfdsym (sy);
|
||||||
|
|
||||||
size = 4 * (list.elt_count[i] + 1);
|
size = 4 * (list.elt_count[i] + 1);
|
||||||
bfd_set_section_size (stdoutput, s, size);
|
bfd_set_section_size (stdoutput, s, size);
|
||||||
@ -2155,15 +2154,21 @@ elf_frob_file (void)
|
|||||||
frag_wane (frag_now);
|
frag_wane (frag_now);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef elf_tc_final_processing
|
|
||||||
elf_tc_final_processing ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Cleanup hash. */
|
/* Cleanup hash. */
|
||||||
hash_traverse (list.indexes, free_section_idx);
|
hash_traverse (list.indexes, free_section_idx);
|
||||||
hash_die (list.indexes);
|
hash_die (list.indexes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
elf_frob_file (void)
|
||||||
|
{
|
||||||
|
bfd_map_over_sections (stdoutput, adjust_stab_sections, NULL);
|
||||||
|
|
||||||
|
#ifdef elf_tc_final_processing
|
||||||
|
elf_tc_final_processing ();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* It removes any unneeded versioned symbols from the symbol table. */
|
/* It removes any unneeded versioned symbols from the symbol table. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -197,6 +197,11 @@ void elf_copy_symbol_attributes (symbolS *, symbolS *);
|
|||||||
(elf_copy_symbol_attributes (DEST, SRC))
|
(elf_copy_symbol_attributes (DEST, SRC))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void elf_adjust_symtab (void);
|
||||||
|
#ifndef obj_adjust_symtab
|
||||||
|
#define obj_adjust_symtab elf_adjust_symtab
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef SEPARATE_STAB_SECTIONS
|
#ifndef SEPARATE_STAB_SECTIONS
|
||||||
/* Avoid ifndef each separate macro setting by wrapping the whole of the
|
/* Avoid ifndef each separate macro setting by wrapping the whole of the
|
||||||
stab group on the assumption that whoever sets SEPARATE_STAB_SECTIONS
|
stab group on the assumption that whoever sets SEPARATE_STAB_SECTIONS
|
||||||
|
@ -21957,6 +21957,8 @@ arm_adjust_symtab (void)
|
|||||||
|
|
||||||
/* Remove any overlapping mapping symbols generated by alignment frags. */
|
/* Remove any overlapping mapping symbols generated by alignment frags. */
|
||||||
bfd_map_over_sections (stdoutput, check_mapping_symbols, (char *) 0);
|
bfd_map_over_sections (stdoutput, check_mapping_symbols, (char *) 0);
|
||||||
|
/* Now do generic ELF adjustments. */
|
||||||
|
elf_adjust_symtab ();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,17 @@
|
|||||||
|
2010-10-23 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* gas/elf/elf.exp: Add group0c test.
|
||||||
|
* gas/elf/group0c.d: New.
|
||||||
|
* gas/elf/group0a.d: Expect ".group" for the name of group
|
||||||
|
sections.
|
||||||
|
* gas/elf/group0b.d: Likewise.
|
||||||
|
* gas/elf/group1a.d: Likewise.
|
||||||
|
* gas/elf/group1b.d: Likewise.
|
||||||
|
* gas/elf/groupautoa.d: Likewise.
|
||||||
|
* gas/elf/groupautob.d: Likewise.
|
||||||
|
* gas/elf/section4.d: Likewise.
|
||||||
|
* gas/ia64/group-1.d: Likewise. Adjust hard-coded constants.
|
||||||
|
|
||||||
2010-10-22 Nick Clifton <nickc@redhat.com>
|
2010-10-22 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* gas/all/fwdexp.d: Also look for f8ffffff.
|
* gas/all/fwdexp.d: Also look for f8ffffff.
|
||||||
|
@ -104,6 +104,7 @@ if { ([istarget "*-*-*elf*"]
|
|||||||
}
|
}
|
||||||
run_dump_test "group0a"
|
run_dump_test "group0a"
|
||||||
run_dump_test "group0b"
|
run_dump_test "group0b"
|
||||||
|
run_dump_test "group0c"
|
||||||
run_dump_test "group1a"
|
run_dump_test "group1a"
|
||||||
run_dump_test "group1b"
|
run_dump_test "group1b"
|
||||||
run_dump_test "groupautoa"
|
run_dump_test "groupautoa"
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#source: group0.s
|
#source: group0.s
|
||||||
|
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+\.foo_group[ ]+GROUP.*
|
[ ]*\[.*\][ ]+\.group[ ]+GROUP.*
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+\.foo[ ]+PROGBITS.*[ ]+AXG[ ]+.*
|
[ ]*\[.*\][ ]+\.foo[ ]+PROGBITS.*[ ]+AXG[ ]+.*
|
||||||
[ ]*\[.*\][ ]+\.bar[ ]+PROGBITS.*[ ]+AG[ ]+.*
|
[ ]*\[.*\][ ]+\.bar[ ]+PROGBITS.*[ ]+AG[ ]+.*
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#source: group0.s
|
#source: group0.s
|
||||||
|
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[ 1\] `.foo_group' \[.foo_group\] contains 2 sections:
|
COMDAT group section \[ 1\] `\.group' \[.foo_group\] contains 2 sections:
|
||||||
[ ]+\[Index\][ ]+Name
|
[ ]+\[Index\][ ]+Name
|
||||||
[ ]+\[.*\][ ]+.foo
|
[ ]+\[.*\][ ]+.foo
|
||||||
[ ]+\[.*\][ ]+.bar
|
[ ]+\[.*\][ ]+.bar
|
||||||
|
7
gas/testsuite/gas/elf/group0c.d
Normal file
7
gas/testsuite/gas/elf/group0c.d
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#readelf: -sW
|
||||||
|
#name: group section name
|
||||||
|
#source: group0.s
|
||||||
|
|
||||||
|
#...
|
||||||
|
.*NOTYPE[ ]+LOCAL[ ]+DEFAULT[ ]+[0-9]+[ ]+\.foo_group
|
||||||
|
#pass
|
@ -3,7 +3,7 @@
|
|||||||
#source: group1.s
|
#source: group1.s
|
||||||
|
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+\.foo_group[ ]+GROUP.*
|
[ ]*\[.*\][ ]+\.group[ ]+GROUP.*
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+\.text[ ]+PROGBITS.*[ ]+AX[ ]+.*
|
[ ]*\[.*\][ ]+\.text[ ]+PROGBITS.*[ ]+AX[ ]+.*
|
||||||
#...
|
#...
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#source: group1.s
|
#source: group1.s
|
||||||
|
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[ 1\] `.foo_group' \[.foo_group\] contains 1 sections:
|
COMDAT group section \[ 1\] `\.group' \[.foo_group\] contains 1 sections:
|
||||||
[ ]+\[Index\][ ]+Name
|
[ ]+\[Index\][ ]+Name
|
||||||
[ ]+\[.*\][ ]+.text
|
[ ]+\[.*\][ ]+.text
|
||||||
#pass
|
#pass
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#source: groupauto.s
|
#source: groupauto.s
|
||||||
|
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+some_group[ ]+GROUP.*
|
[ ]*\[.*\][ ]+\.group[ ]+GROUP.*
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+\.text[ ]+PROGBITS.*[ ]+AX[ ]+.*
|
[ ]*\[.*\][ ]+\.text[ ]+PROGBITS.*[ ]+AX[ ]+.*
|
||||||
#...
|
#...
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#source: groupauto.s
|
#source: groupauto.s
|
||||||
|
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[ 1\] `some_group' \[some_group\] contains 2 sections:
|
COMDAT group section \[ 1\] `\.group' \[some_group\] contains 2 sections:
|
||||||
[ ]+\[Index\][ ]+Name
|
[ ]+\[Index\][ ]+Name
|
||||||
[ ]+\[.*\][ ]+.text
|
[ ]+\[.*\][ ]+.text
|
||||||
[ ]+\[.*\][ ]+.note.bar
|
[ ]+\[.*\][ ]+.note.bar
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#name: label arithmetic with multiple same-name sections
|
#name: label arithmetic with multiple same-name sections
|
||||||
|
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+foo[ ]+GROUP.*
|
[ ]*\[.*\][ ]+\.group[ ]+GROUP.*
|
||||||
#...
|
#...
|
||||||
[ ]*\[.*\][ ]+\.text[ ]+PROGBITS.*
|
[ ]*\[.*\][ ]+\.text[ ]+PROGBITS.*
|
||||||
#...
|
#...
|
||||||
|
@ -8,7 +8,7 @@ Section Headers:
|
|||||||
Size EntSize Flags Link Info Align
|
Size EntSize Flags Link Info Align
|
||||||
\[ 0\] NULL 0000000000000000 00000000
|
\[ 0\] NULL 0000000000000000 00000000
|
||||||
0000000000000000 0000000000000000 0 0 0
|
0000000000000000 0000000000000000 0 0 0
|
||||||
\[ 1\] \._foo GROUP 0000000000000000 00000040
|
\[ 1\] \.group GROUP 0000000000000000 00000040
|
||||||
0000000000000008 0000000000000004 7 6 4
|
0000000000000008 0000000000000004 7 6 4
|
||||||
\[ 2\] \.text PROGBITS 0000000000000000 00000050
|
\[ 2\] \.text PROGBITS 0000000000000000 00000050
|
||||||
0000000000000000 0000000000000000 AX 0 0 16
|
0000000000000000 0000000000000000 AX 0 0 16
|
||||||
@ -19,14 +19,14 @@ Section Headers:
|
|||||||
\[ 5\] \.text PROGBITS 0000000000000000 00000050
|
\[ 5\] \.text PROGBITS 0000000000000000 00000050
|
||||||
0000000000000010 0000000000000000 AXG 0 0 16
|
0000000000000010 0000000000000000 AXG 0 0 16
|
||||||
\[ 6\] \.shstrtab STRTAB 0000000000000000 00000060
|
\[ 6\] \.shstrtab STRTAB 0000000000000000 00000060
|
||||||
0000000000000032 0000000000000000 0 0 1
|
0000000000000033 0000000000000000 0 0 1
|
||||||
\[ 7\] \.symtab SYMTAB 0000000000000000 000002d8
|
\[ 7\] \.symtab SYMTAB 0000000000000000 000002d8
|
||||||
00000000000000a8 0000000000000018 8 7 8
|
00000000000000c0 0000000000000018 8 8 8
|
||||||
\[ 8\] \.strtab STRTAB 0000000000000000 00000380
|
\[ 8\] \.strtab STRTAB 0000000000000000 00000398
|
||||||
0000000000000006 0000000000000000 0 0 1
|
000000000000000c 0000000000000000 0 0 1
|
||||||
Key to Flags:
|
Key to Flags:
|
||||||
#...
|
#...
|
||||||
|
|
||||||
COMDAT group section \[ 1\] `\._foo' \[\._foo\] contains 1 sections:
|
COMDAT group section \[ 1\] `\.group' \[\._foo\] contains 1 sections:
|
||||||
\[Index\] Name
|
\[Index\] Name
|
||||||
\[ 5\] \.text
|
\[ 5\] \.text
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2010-10-23 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* ld-elf/group10.d: Expect ".group" for the name of group
|
||||||
|
sections.
|
||||||
|
* ld-elf/group2.d: Likewise.
|
||||||
|
* ld-elf/group7.d: Likewise.
|
||||||
|
|
||||||
2010-10-21 Joseph Myers <joseph@codesourcery.com>
|
2010-10-21 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* ld-tic6x/attr-arch-c62x-c62x.d, ld-tic6x/attr-arch-c62x-c64x+.d,
|
* ld-tic6x/attr-arch-c62x-c62x.d, ld-tic6x/attr-arch-c62x-c64x+.d,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#readelf: -Sg --wide
|
#readelf: -Sg --wide
|
||||||
|
|
||||||
#...
|
#...
|
||||||
group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 4 sections:
|
group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 4 sections:
|
||||||
\[Index\] Name
|
\[Index\] Name
|
||||||
\[[ 0-9]+\] \.text.*
|
\[[ 0-9]+\] \.text.*
|
||||||
\[[ 0-9]+\] \.rodata\.str.*
|
\[[ 0-9]+\] \.rodata\.str.*
|
||||||
|
@ -7,13 +7,13 @@
|
|||||||
# xstormy also uses a non-standard script, putting .data before .text.
|
# xstormy also uses a non-standard script, putting .data before .text.
|
||||||
|
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.*
|
\[[ 0-9]+\] \.group[ \t]+GROUP[ \t]+.*
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.*
|
\[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.*
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.*
|
\[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.*
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections:
|
COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections:
|
||||||
\[Index\] Name
|
\[Index\] Name
|
||||||
\[[ 0-9]+\] .text.*
|
\[[ 0-9]+\] .text.*
|
||||||
\[[ 0-9]+\] .data.*
|
\[[ 0-9]+\] .data.*
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# well with unique group sections under ld -r.
|
# well with unique group sections under ld -r.
|
||||||
|
|
||||||
#...
|
#...
|
||||||
COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections:
|
COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections:
|
||||||
\[Index\] Name
|
\[Index\] Name
|
||||||
\[[ 0-9]+\] .text.foo
|
\[[ 0-9]+\] .text.foo
|
||||||
\[[ 0-9]+\] .data.foo
|
\[[ 0-9]+\] .data.foo
|
||||||
|
Loading…
Reference in New Issue
Block a user