Change readelf's display of symbol names (when not in --wide mode) so that if they are going to be truncated then "[...]" is displayed at the end. Add a comment line option to disable this enhancement and restore the old behaviour.
PR 26028 binutils* readelf.c (print_symbol): Handle truncation of symbol names. (options): Add -T/--silent-truncation option. (parse_args): Handle the option. (print_dynamic_symbol): Correct calculation of width available to display symbol name. * doc/binutils.texi: Document the -T option to readelf. * NEWS: Mention the new feature. gas * testsuite/gas/ia64/group-2.d: Add -T option to readelf command line. * testsuite/gas/ia64/unwind.d: Likewise. * testsuite/gas/mmix/bspec-1.d: Likewise. * testsuite/gas/mmix/bspec-2.d: Likewise. * testsuite/gas/mmix/comment-1.d: Likewise. * testsuite/gas/tic6x/scomm-directive-4.d: Likewise. ld * testsuite/ld-powerpc/powerpc.exp: Add -T option to readelf command line when running some tests. * testsuite/ld-arm/arm-elf.exp: Likewise. * testsuite/ld-mips-elf/mips-elf.exp: Likewise. * testsuite/ld-mmix/local1.d: Likewise. * testsuite/ld-mmix/local3.d: Likewise. * testsuite/ld-mmix/local5.d: Likewise. * testsuite/ld-mmix/local7.d: Likewise. * testsuite/ld-powerpc/powerpc.exp: Likewise.
This commit is contained in:
parent
1cdf9e33ea
commit
0942c7ab94
@ -1,3 +1,14 @@
|
|||||||
|
2020-07-02 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 26028
|
||||||
|
* readelf.c (print_symbol): Handle truncation of symbol names.
|
||||||
|
(options): Add -T/--silent-truncation option.
|
||||||
|
(parse_args): Handle the option.
|
||||||
|
(print_dynamic_symbol): Correct calculation of width available to
|
||||||
|
display symbol name.
|
||||||
|
* doc/binutils.texi: Document the -T option to readelf.
|
||||||
|
* NEWS: Mention the new feature.
|
||||||
|
|
||||||
2020-06-30 H.J. Lu <hongjiu.lu@intel.com>
|
2020-06-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* NEWS: Mention x86 NaCl target support removal.
|
* NEWS: Mention x86 NaCl target support removal.
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
-*- text -*-
|
-*- text -*-
|
||||||
|
|
||||||
|
* Changed readelf's display of symbol names when wide mode is not enabled.
|
||||||
|
If the name is too long it will be truncated and the last five characters
|
||||||
|
replaced with "[...]". The old behaviour of displaying 5 more characters but
|
||||||
|
not indicating that truncation has happened can be restored by the use of the
|
||||||
|
-T or --silent-truncation options.
|
||||||
|
|
||||||
* X86 NaCl target support is removed.
|
* X86 NaCl target support is removed.
|
||||||
|
|
||||||
* The readelf tool now has a -L or --lint or --enable-checks option which turns
|
* The readelf tool now has a -L or --lint or --enable-checks option which turns
|
||||||
|
@ -4726,6 +4726,7 @@ readelf [@option{-a}|@option{--all}]
|
|||||||
[@option{-I}|@option{--histogram}]
|
[@option{-I}|@option{--histogram}]
|
||||||
[@option{-v}|@option{--version}]
|
[@option{-v}|@option{--version}]
|
||||||
[@option{-W}|@option{--wide}]
|
[@option{-W}|@option{--wide}]
|
||||||
|
[@option{-T}|@option{--silent-truncation}]
|
||||||
[@option{-H}|@option{--help}]
|
[@option{-H}|@option{--help}]
|
||||||
@var{elffile}@dots{}
|
@var{elffile}@dots{}
|
||||||
@c man end
|
@c man end
|
||||||
@ -4939,6 +4940,15 @@ Don't break output lines to fit into 80 columns. By default
|
|||||||
@command{readelf} to print each section header resp. each segment one a
|
@command{readelf} to print each section header resp. each segment one a
|
||||||
single line, which is far more readable on terminals wider than 80 columns.
|
single line, which is far more readable on terminals wider than 80 columns.
|
||||||
|
|
||||||
|
@item -T
|
||||||
|
@itemx --silent-truncation
|
||||||
|
Normally when readelf is displaying a symbol name, and it has to
|
||||||
|
truncate the name to fit into an 80 column display, it will add a
|
||||||
|
suffix of @code{[...]} to the name. This command line option
|
||||||
|
disables this behaviour, allowing 5 more characters of the name to be
|
||||||
|
displayed and restoring the old behaviour of readelf (prior to release
|
||||||
|
2.35).
|
||||||
|
|
||||||
@item -H
|
@item -H
|
||||||
@itemx --help
|
@itemx --help
|
||||||
Display the command-line options understood by @command{readelf}.
|
Display the command-line options understood by @command{readelf}.
|
||||||
|
@ -234,6 +234,7 @@ static bfd_boolean do_archive_index = FALSE;
|
|||||||
static bfd_boolean check_all = FALSE;
|
static bfd_boolean check_all = FALSE;
|
||||||
static bfd_boolean is_32bit_elf = FALSE;
|
static bfd_boolean is_32bit_elf = FALSE;
|
||||||
static bfd_boolean decompress_dumps = FALSE;
|
static bfd_boolean decompress_dumps = FALSE;
|
||||||
|
static bfd_boolean do_not_show_symbol_truncation = FALSE;
|
||||||
|
|
||||||
static char *dump_ctf_parent_name;
|
static char *dump_ctf_parent_name;
|
||||||
static char *dump_ctf_symtab_name;
|
static char *dump_ctf_symtab_name;
|
||||||
@ -533,15 +534,19 @@ print_vma (bfd_vma vma, print_mode mode)
|
|||||||
|
|
||||||
Display at most abs(WIDTH) characters, truncating as necessary, unless do_wide is true.
|
Display at most abs(WIDTH) characters, truncating as necessary, unless do_wide is true.
|
||||||
|
|
||||||
|
If truncation will happen and do_not_show_symbol_truncation is FALSE then display
|
||||||
|
abs(WIDTH) - 5 characters followed by "[...]".
|
||||||
|
|
||||||
If WIDTH is negative then ensure that the output is at least (- WIDTH) characters,
|
If WIDTH is negative then ensure that the output is at least (- WIDTH) characters,
|
||||||
padding as necessary.
|
padding as necessary.
|
||||||
|
|
||||||
Returns the number of emitted characters. */
|
Returns the number of emitted characters. */
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
print_symbol (signed int width, const char *symbol)
|
print_symbol (signed int width, const char * symbol)
|
||||||
{
|
{
|
||||||
bfd_boolean extra_padding = FALSE;
|
bfd_boolean extra_padding = FALSE;
|
||||||
|
bfd_boolean do_dots = FALSE;
|
||||||
signed int num_printed = 0;
|
signed int num_printed = 0;
|
||||||
#ifdef HAVE_MBSTATE_T
|
#ifdef HAVE_MBSTATE_T
|
||||||
mbstate_t state;
|
mbstate_t state;
|
||||||
@ -562,7 +567,17 @@ print_symbol (signed int width, const char *symbol)
|
|||||||
This simplifies the code below. */
|
This simplifies the code below. */
|
||||||
width_remaining = INT_MAX;
|
width_remaining = INT_MAX;
|
||||||
else
|
else
|
||||||
width_remaining = width;
|
{
|
||||||
|
width_remaining = width;
|
||||||
|
if (! do_not_show_symbol_truncation
|
||||||
|
&& (int) strlen (symbol) > width)
|
||||||
|
{
|
||||||
|
width_remaining -= 5;
|
||||||
|
if ((int) width_remaining < 0)
|
||||||
|
width_remaining = 0;
|
||||||
|
do_dots = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_MBSTATE_T
|
#ifdef HAVE_MBSTATE_T
|
||||||
/* Initialise the multibyte conversion state. */
|
/* Initialise the multibyte conversion state. */
|
||||||
@ -618,6 +633,9 @@ print_symbol (signed int width, const char *symbol)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (do_dots)
|
||||||
|
num_printed += printf ("[...]");
|
||||||
|
|
||||||
if (extra_padding && num_printed < width)
|
if (extra_padding && num_printed < width)
|
||||||
{
|
{
|
||||||
/* Fill in the remaining spaces. */
|
/* Fill in the remaining spaces. */
|
||||||
@ -4512,6 +4530,7 @@ static struct option options[] =
|
|||||||
|
|
||||||
{"version", no_argument, 0, 'v'},
|
{"version", no_argument, 0, 'v'},
|
||||||
{"wide", no_argument, 0, 'W'},
|
{"wide", no_argument, 0, 'W'},
|
||||||
|
{"silent-truncation",no_argument, 0, 'T'},
|
||||||
{"help", no_argument, 0, 'H'},
|
{"help", no_argument, 0, 'H'},
|
||||||
{0, no_argument, 0, 0}
|
{0, no_argument, 0, 0}
|
||||||
};
|
};
|
||||||
@ -4579,6 +4598,7 @@ usage (FILE * stream)
|
|||||||
fprintf (stream, _("\
|
fprintf (stream, _("\
|
||||||
-I --histogram Display histogram of bucket list lengths\n\
|
-I --histogram Display histogram of bucket list lengths\n\
|
||||||
-W --wide Allow output width to exceed 80 characters\n\
|
-W --wide Allow output width to exceed 80 characters\n\
|
||||||
|
-T --silent-truncation If a symbol name is truncated, do not add a suffix [...]\n\
|
||||||
@<file> Read options from <file>\n\
|
@<file> Read options from <file>\n\
|
||||||
-H --help Display this information\n\
|
-H --help Display this information\n\
|
||||||
-v --version Display the version number of readelf\n"));
|
-v --version Display the version number of readelf\n"));
|
||||||
@ -4673,7 +4693,7 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
|
|||||||
usage (stderr);
|
usage (stderr);
|
||||||
|
|
||||||
while ((c = getopt_long
|
while ((c = getopt_long
|
||||||
(argc, argv, "ADHILNR:SVWacdeghi:lnp:rstuvw::x:z", options, NULL)) != EOF)
|
(argc, argv, "ADHILNR:STVWacdeghi:lnp:rstuvw::x:z", options, NULL)) != EOF)
|
||||||
{
|
{
|
||||||
switch (c)
|
switch (c)
|
||||||
{
|
{
|
||||||
@ -4832,6 +4852,9 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
|
|||||||
case 'W':
|
case 'W':
|
||||||
do_wide = TRUE;
|
do_wide = TRUE;
|
||||||
break;
|
break;
|
||||||
|
case 'T':
|
||||||
|
do_not_show_symbol_truncation = TRUE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
/* xgettext:c-format */
|
/* xgettext:c-format */
|
||||||
error (_("Invalid option '-%c'\n"), c);
|
error (_("Invalid option '-%c'\n"), c);
|
||||||
@ -12032,7 +12055,7 @@ print_dynamic_symbol (Filedata *filedata, unsigned long si,
|
|||||||
enum versioned_symbol_info sym_info;
|
enum versioned_symbol_info sym_info;
|
||||||
unsigned short vna_other;
|
unsigned short vna_other;
|
||||||
Elf_Internal_Sym *psym = symtab + si;
|
Elf_Internal_Sym *psym = symtab + si;
|
||||||
|
|
||||||
printf ("%6ld: ", si);
|
printf ("%6ld: ", si);
|
||||||
print_vma (psym->st_value, LONG_HEX);
|
print_vma (psym->st_value, LONG_HEX);
|
||||||
putchar (' ');
|
putchar (' ');
|
||||||
@ -12053,9 +12076,10 @@ print_dynamic_symbol (Filedata *filedata, unsigned long si,
|
|||||||
printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis));
|
printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis));
|
||||||
}
|
}
|
||||||
printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx));
|
printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx));
|
||||||
print_symbol (25, VALID_SYMBOL_NAME (strtab, strtab_size,
|
|
||||||
psym->st_name)
|
bfd_boolean is_valid = VALID_SYMBOL_NAME (strtab, strtab_size,
|
||||||
? strtab + psym->st_name : _("<corrupt>"));
|
psym->st_name);
|
||||||
|
const char * sstr = is_valid ? strtab + psym->st_name : _("<corrupt>");
|
||||||
|
|
||||||
version_string
|
version_string
|
||||||
= get_symbol_version_string (filedata,
|
= get_symbol_version_string (filedata,
|
||||||
@ -12063,6 +12087,22 @@ print_dynamic_symbol (Filedata *filedata, unsigned long si,
|
|||||||
|| section->sh_type == SHT_DYNSYM),
|
|| section->sh_type == SHT_DYNSYM),
|
||||||
strtab, strtab_size, si,
|
strtab, strtab_size, si,
|
||||||
psym, &sym_info, &vna_other);
|
psym, &sym_info, &vna_other);
|
||||||
|
|
||||||
|
int len_avail = 21;
|
||||||
|
if (! do_wide && version_string != NULL)
|
||||||
|
{
|
||||||
|
char buffer[256];
|
||||||
|
|
||||||
|
len_avail -= sprintf (buffer, "@%s", version_string);
|
||||||
|
|
||||||
|
if (sym_info == symbol_undefined)
|
||||||
|
len_avail -= sprintf (buffer," (%d)", vna_other);
|
||||||
|
else if (sym_info != symbol_hidden)
|
||||||
|
len_avail -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
print_symbol (len_avail, sstr);
|
||||||
|
|
||||||
if (version_string)
|
if (version_string)
|
||||||
{
|
{
|
||||||
if (sym_info == symbol_undefined)
|
if (sym_info == symbol_undefined)
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
2020-07-02 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 26028
|
||||||
|
* testsuite/gas/ia64/group-2.d: Add -T option to readelf
|
||||||
|
command line.
|
||||||
|
* testsuite/gas/ia64/unwind.d: Likewise.
|
||||||
|
* testsuite/gas/mmix/bspec-1.d: Likewise.
|
||||||
|
* testsuite/gas/mmix/bspec-2.d: Likewise.
|
||||||
|
* testsuite/gas/mmix/comment-1.d: Likewise.
|
||||||
|
* testsuite/gas/tic6x/scomm-directive-4.d: Likewise.
|
||||||
|
|
||||||
2020-07-01 Alan Modra <amodra@gmail.com>
|
2020-07-01 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* config/tc-xc16x.c (md_apply_fix): Add FIXME.
|
* config/tc-xc16x.c (md_apply_fix): Add FIXME.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#readelf: -Sg
|
#readelf: -Sg -T
|
||||||
#as: -x
|
#as: -x
|
||||||
#name: ia64 unwind group
|
#name: ia64 unwind group
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#readelf: -S
|
#readelf: -S -T
|
||||||
#name: ia64 unwind section
|
#name: ia64 unwind section
|
||||||
|
|
||||||
There are 9 section headers, starting at offset .*:
|
There are 9 section headers, starting at offset .*:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#readelf: -Ssr -x1 -x4
|
#readelf: -Ssr -T -x1 -x4
|
||||||
There are 9 section headers, starting at offset .*:
|
There are 9 section headers, starting at offset .*:
|
||||||
#...
|
#...
|
||||||
+\[ 4\] \.MMIX\.spec_data\.2 +PROGBITS +0+ +0+44
|
+\[ 4\] \.MMIX\.spec_data\.2 +PROGBITS +0+ +0+44
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#readelf: -Sr -x1 -x4
|
#readelf: -Sr -T -x1 -x4
|
||||||
There are 11 section headers, starting at offset .*:
|
There are 11 section headers, starting at offset .*:
|
||||||
#...
|
#...
|
||||||
\[ 4\] \.MMIX\.spec_data\.2 PROGBITS 0+ 0+48
|
\[ 4\] \.MMIX\.spec_data\.2 PROGBITS 0+ 0+48
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#as: -no-expand
|
#as: -no-expand
|
||||||
#readelf: -Ssrx1 -x6
|
#readelf: -Ssrx1 -T -x6
|
||||||
There are 10 section headers, starting at offset 0x...:
|
There are 10 section headers, starting at offset 0x...:
|
||||||
#...
|
#...
|
||||||
+\[ 5\] \.MMIX\.spec_data\.4 +PROGBITS +0+ +0+c4
|
+\[ 5\] \.MMIX\.spec_data\.4 +PROGBITS +0+ +0+c4
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#name: C6X .scomm directive 4
|
#name: C6X .scomm directive 4
|
||||||
#as:
|
#as:
|
||||||
#source: scomm-directive-4.s
|
#source: scomm-directive-4.s
|
||||||
#readelf: -Ss
|
#readelf: -Ss -T
|
||||||
|
|
||||||
There are 8 section headers, starting at offset .*:
|
There are 8 section headers, starting at offset .*:
|
||||||
|
|
||||||
|
13
ld/ChangeLog
13
ld/ChangeLog
@ -1,3 +1,16 @@
|
|||||||
|
2020-07-02 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 26028
|
||||||
|
* testsuite/ld-powerpc/powerpc.exp: Add -T option to readelf
|
||||||
|
command line when running some tests.
|
||||||
|
* testsuite/ld-arm/arm-elf.exp: Likewise.
|
||||||
|
* testsuite/ld-mips-elf/mips-elf.exp: Likewise.
|
||||||
|
* testsuite/ld-mmix/local1.d: Likewise.
|
||||||
|
* testsuite/ld-mmix/local3.d: Likewise.
|
||||||
|
* testsuite/ld-mmix/local5.d: Likewise.
|
||||||
|
* testsuite/ld-mmix/local7.d: Likewise.
|
||||||
|
* testsuite/ld-powerpc/powerpc.exp: Likewise.
|
||||||
|
|
||||||
2020-06-30 H.J. Lu <hongjiu.lu@intel.com>
|
2020-06-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* Makefile.am (ALL_EMULATION_SOURCES): Remove eelf_i386_nacl.c,
|
* Makefile.am (ALL_EMULATION_SOURCES): Remove eelf_i386_nacl.c,
|
||||||
|
@ -794,7 +794,7 @@ set armeabitests_nonacl {
|
|||||||
"--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
"--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
||||||
"-march=armv8-m.base -mthumb --defsym VER=1"
|
"-march=armv8-m.base -mthumb --defsym VER=1"
|
||||||
{cmse-implib.s}
|
{cmse-implib.s}
|
||||||
{{readelf {-s tmpdir/cmse-implib.lib} cmse-implib.rd}
|
{{readelf {-s --wide tmpdir/cmse-implib.lib} cmse-implib.rd}
|
||||||
{readelf {-h tmpdir/cmse-implib.lib} cmse-implib.type}}
|
{readelf {-h tmpdir/cmse-implib.lib} cmse-implib.type}}
|
||||||
"cmse-implib"}
|
"cmse-implib"}
|
||||||
{"Input secure gateway import library"
|
{"Input secure gateway import library"
|
||||||
@ -802,7 +802,7 @@ set armeabitests_nonacl {
|
|||||||
"-march=armv8-m.base -mthumb --defsym VER=2"
|
"-march=armv8-m.base -mthumb --defsym VER=2"
|
||||||
{cmse-implib.s}
|
{cmse-implib.s}
|
||||||
{{ld cmse-new-implib.out}
|
{{ld cmse-new-implib.out}
|
||||||
{readelf {-s tmpdir/cmse-new-implib.lib} cmse-new-implib.rd}}
|
{readelf {-s --wide tmpdir/cmse-new-implib.lib} cmse-new-implib.rd}}
|
||||||
"cmse-new-implib"}
|
"cmse-new-implib"}
|
||||||
{"Input secure gateway import library: no output import library"
|
{"Input secure gateway import library: no output import library"
|
||||||
"--section-start .gnu.sgstubs=0x20000 --in-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
"--section-start .gnu.sgstubs=0x20000 --in-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
||||||
@ -832,7 +832,7 @@ set armeabitests_nonacl {
|
|||||||
"--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-new-comeback-implib.lib --in-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
"--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-new-comeback-implib.lib --in-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
||||||
"-march=armv8-m.base -mthumb --defsym VER=3"
|
"-march=armv8-m.base -mthumb --defsym VER=3"
|
||||||
{cmse-implib.s}
|
{cmse-implib.s}
|
||||||
{{readelf {-s tmpdir/cmse-new-comeback-implib.lib} cmse-new-comeback-implib.rd}}
|
{{readelf {-s --wide tmpdir/cmse-new-comeback-implib.lib} cmse-new-comeback-implib.rd}}
|
||||||
"cmse-new-comeback-implib"}
|
"cmse-new-comeback-implib"}
|
||||||
{"Input secure gateway import library: entry function change"
|
{"Input secure gateway import library: entry function change"
|
||||||
"--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-new-wrong-implib.lib --in-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
"--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-new-wrong-implib.lib --in-implib=tmpdir/cmse-implib.lib --cmse-implib" ""
|
||||||
|
@ -29,7 +29,7 @@ if {[istarget "mips*-*-vxworks"]} {
|
|||||||
{"VxWorks executable test 1 (dynamic)" \
|
{"VxWorks executable test 1 (dynamic)" \
|
||||||
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
|
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
|
||||||
"-mips2" {vxworks1.s}
|
"-mips2" {vxworks1.s}
|
||||||
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
|
{{readelf {--relocs -T} vxworks1.rd} {objdump -dr vxworks1.dd}}
|
||||||
"vxworks1"}
|
"vxworks1"}
|
||||||
{"VxWorks executable test 2 (dynamic)" \
|
{"VxWorks executable test 2 (dynamic)" \
|
||||||
"-Tvxworks1.ld -q --force-dynamic" ""
|
"-Tvxworks1.ld -q --force-dynamic" ""
|
||||||
@ -1575,7 +1575,7 @@ proc run_mips_undefweak_test { name abi args } {
|
|||||||
[list \
|
[list \
|
||||||
[list objdump -d pr21375${objsuf}.dd] \
|
[list objdump -d pr21375${objsuf}.dd] \
|
||||||
[list readelf -A pr21375${rdesuf}.gd] \
|
[list readelf -A pr21375${rdesuf}.gd] \
|
||||||
[list readelf --dyn-syms pr21375${rdesuf}${irixsuf}.sd] \
|
[list readelf {--dyn-syms --wide} pr21375${rdesuf}${irixsuf}.sd] \
|
||||||
[list readelf -h pr21375${abisuf}.hd]] \
|
[list readelf -h pr21375${abisuf}.hd]] \
|
||||||
"pr21375${binsuf}${dsosuf}"]]
|
"pr21375${binsuf}${dsosuf}"]]
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#source: regext1.s
|
#source: regext1.s
|
||||||
#source: start.s
|
#source: start.s
|
||||||
#ld: -m elf64mmix
|
#ld: -m elf64mmix
|
||||||
#readelf: -Ssx1 -x2
|
#readelf: -Ssx1 -T -x2
|
||||||
|
|
||||||
# We check that the externally visible symbol ext1 is a local register
|
# We check that the externally visible symbol ext1 is a local register
|
||||||
# (different meaning of "local" than for symbol), which can be seen as
|
# (different meaning of "local" than for symbol), which can be seen as
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#source: ext1.s
|
#source: ext1.s
|
||||||
#source: start.s
|
#source: start.s
|
||||||
#ld: -m elf64mmix
|
#ld: -m elf64mmix
|
||||||
#readelf: -Ssx1 -x2
|
#readelf: -Ssx1 -T -x2
|
||||||
|
|
||||||
# Like local1, but ext1 is here a constant, not a global register.
|
# Like local1, but ext1 is here a constant, not a global register.
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#source: regext1.s
|
#source: regext1.s
|
||||||
#source: start.s
|
#source: start.s
|
||||||
#ld: -m elf64mmix
|
#ld: -m elf64mmix
|
||||||
#readelf: -Ssx1 -x2
|
#readelf: -Ssx1 -T -x2
|
||||||
|
|
||||||
# Like local1, but with two checks for a local register.
|
# Like local1, but with two checks for a local register.
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#source: ext1.s
|
#source: ext1.s
|
||||||
#source: start.s
|
#source: start.s
|
||||||
#ld: -m elf64mmix
|
#ld: -m elf64mmix
|
||||||
#readelf: -Ssx1 -x2
|
#readelf: -Ssx1 -T -x2
|
||||||
|
|
||||||
# Like local1, but ext1 is here a constant, not a global register and two
|
# Like local1, but ext1 is here a constant, not a global register and two
|
||||||
# local-register checks.
|
# local-register checks.
|
||||||
|
@ -32,13 +32,13 @@ if {[istarget "*-*-vxworks"]} {
|
|||||||
{"VxWorks shared library test 1"
|
{"VxWorks shared library test 1"
|
||||||
"-shared --hash-style=sysv -Tvxworks1.ld" ""
|
"-shared --hash-style=sysv -Tvxworks1.ld" ""
|
||||||
"-mregnames" {vxworks1-lib.s}
|
"-mregnames" {vxworks1-lib.s}
|
||||||
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
|
{{readelf {--relocs -T} vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
|
||||||
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
|
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
|
||||||
"libvxworks1.so"}
|
"libvxworks1.so"}
|
||||||
{"VxWorks executable test 1 (dynamic)" \
|
{"VxWorks executable test 1 (dynamic)" \
|
||||||
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
|
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
|
||||||
"-mregnames" {vxworks1.s}
|
"-mregnames" {vxworks1.s}
|
||||||
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
|
{{readelf {--relocs -T} vxworks1.rd} {objdump -dr vxworks1.dd}}
|
||||||
"vxworks1"}
|
"vxworks1"}
|
||||||
{"VxWorks executable test 2 (dynamic)" \
|
{"VxWorks executable test 2 (dynamic)" \
|
||||||
"-Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
|
"-Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
|
||||||
@ -58,7 +58,7 @@ if {[istarget "*-*-vxworks"]} {
|
|||||||
{"VxWorks relocatable relax test"
|
{"VxWorks relocatable relax test"
|
||||||
"-Tvxworks1.ld -r --relax -q --hash-style=sysv" ""
|
"-Tvxworks1.ld -r --relax -q --hash-style=sysv" ""
|
||||||
"-mregnames" {vxworks-relax-2.s}
|
"-mregnames" {vxworks-relax-2.s}
|
||||||
{{readelf --relocs vxworks-relax-2.rd}}
|
{{readelf {--relocs -T} vxworks-relax-2.rd}}
|
||||||
"vxworks-relax-2"}
|
"vxworks-relax-2"}
|
||||||
}
|
}
|
||||||
run_ld_link_tests $ppcvxtests
|
run_ld_link_tests $ppcvxtests
|
||||||
|
Loading…
Reference in New Issue
Block a user