binutils, ld: make objdump --ctf's parameter optional

ld by default (and always, unless adjusted with a hand-rolled linker
script) emits deduplicated CTF into the .ctf section.  But viewing
it needs you to explicitly tell objdump this: it doesn't default
its argument, even though what you always end up typing is
--ctf=.ctf.

This is annoying, so make the argument optional.

binutils/ChangeLog
2021-10-25  Nick Alcock  <nick.alcock@oracle.com>

	* objdump.c (usage): --ctf now has an optional argument.
	(main): Adjust accordingly.
	(dump_ctf): Default it.
	* doc/ctf.options.texi: Adjust.

ld/ChangeLog
2021-10-25  Nick Alcock  <nick.alcock@oracle.com>

	* testsuite/ld-ctf/array.d: Change --ctf=.ctf to --ctf.
	* testsuite/ld-ctf/conflicting-cycle-1.B-1.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-1.B-2.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise.
	* testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise.
	* testsuite/ld-ctf/conflicting-enums.d: Likewise.
	* testsuite/ld-ctf/conflicting-typedefs.d: Likewise.
	* testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise.
	* testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise.
	* testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise.
	* testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise.
	* testsuite/ld-ctf/cycle-1.d: Likewise.
	* testsuite/ld-ctf/cycle-2.A.d: Likewise.
	* testsuite/ld-ctf/cycle-2.B.d: Likewise.
	* testsuite/ld-ctf/cycle-2.C.d: Likewise.
	* testsuite/ld-ctf/data-func-conflicted.d: Likewise.
	* testsuite/ld-ctf/diag-cttname-null.d: Likewise.
	* testsuite/ld-ctf/diag-cuname.d: Likewise.
	* testsuite/ld-ctf/diag-parlabel.d: Likewise.
	* testsuite/ld-ctf/enum-forward.d: Likewise.
	* testsuite/ld-ctf/enums.d: Likewise.
	* testsuite/ld-ctf/forward.d: Likewise.
	* testsuite/ld-ctf/function.d: Likewise.
	* testsuite/ld-ctf/nonrepresentable.d: Likewise.
	* testsuite/ld-ctf/slice.d: Likewise.
	* testsuite/ld-ctf/super-sub-cycles.d: Likewise.
This commit is contained in:
Nick Alcock
2021-10-25 11:17:02 +01:00
parent 80b56fad5c
commit 10909ea819
35 changed files with 81 additions and 35 deletions
+7
View File
@@ -1,3 +1,10 @@
2021-10-25 Nick Alcock <nick.alcock@oracle.com>
* objdump.c (usage): --ctf now has an optional argument.
(main): Adjust accordingly.
(dump_ctf): Default it.
* doc/ctf.options.texi: Adjust.
2021-10-25 Nick Alcock <nick.alcock@oracle.com>
* objdump.c (usage): --ctf-parent now takes a name, not a section.
+3 -1
View File
@@ -1,13 +1,15 @@
@c This file contains the entry for the --ctf, --ctf-parent, --ctf-symbols, -and
@c --ctf-strings options that are common to both readelf and objdump.
@item --ctf=@var{section}
@item --ctf[=@var{section}]
@cindex CTF
@cindex Compact Type Format
Display the contents of the specified CTF section. CTF sections themselves
contain many subsections, all of which are displayed in order.
By default, display the name of the section named @var{.ctf}, which is the
name emitted by @command{ld}.
@item --ctf-parent=@var{member}
+6 -3
View File
@@ -273,7 +273,7 @@ usage (FILE *stream, int status)
separate debuginfo files. (Implies -WK)\n"));
#ifdef ENABLE_LIBCTF
fprintf (stream, _("\
--ctf=SECTION Display CTF info from SECTION\n"));
--ctf[=SECTION] Display CTF info from SECTION, (default `.ctf')\n"));
#endif
fprintf (stream, _("\
-t, --syms Display the contents of the symbol table(s)\n"));
@@ -460,7 +460,7 @@ static struct option long_options[]=
{"include", required_argument, NULL, 'I'},
{"dwarf", optional_argument, NULL, OPTION_DWARF},
#ifdef ENABLE_LIBCTF
{"ctf", required_argument, NULL, OPTION_CTF},
{"ctf", optional_argument, NULL, OPTION_CTF},
{"ctf-parent", required_argument, NULL, OPTION_CTF_PARENT},
#endif
{"stabs", no_argument, NULL, 'G'},
@@ -4218,6 +4218,8 @@ dump_ctf (bfd *abfd, const char *sect_name, const char *parent_name)
size_t member = 0;
int err;
if (sect_name == NULL)
sect_name = ".ctf";
if ((ctfdata = read_section_stabs (abfd, sect_name, &ctfsize, NULL)) == NULL)
bfd_fatal (bfd_get_filename (abfd));
@@ -5449,7 +5451,8 @@ main (int argc, char **argv)
#ifdef ENABLE_LIBCTF
case OPTION_CTF:
dump_ctf_section_info = true;
dump_ctf_section_name = xstrdup (optarg);
if (optarg)
dump_ctf_section_name = xstrdup (optarg);
seenflag = true;
break;
case OPTION_CTF_PARENT:
+34
View File
@@ -1,3 +1,37 @@
2021-10-25 Nick Alcock <nick.alcock@oracle.com>
* testsuite/ld-ctf/array.d: Change --ctf=.ctf to --ctf.
* testsuite/ld-ctf/conflicting-cycle-1.B-1.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-1.B-2.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise.
* testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise.
* testsuite/ld-ctf/conflicting-enums.d: Likewise.
* testsuite/ld-ctf/conflicting-typedefs.d: Likewise.
* testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise.
* testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise.
* testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise.
* testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise.
* testsuite/ld-ctf/cycle-1.d: Likewise.
* testsuite/ld-ctf/cycle-2.A.d: Likewise.
* testsuite/ld-ctf/cycle-2.B.d: Likewise.
* testsuite/ld-ctf/cycle-2.C.d: Likewise.
* testsuite/ld-ctf/data-func-conflicted.d: Likewise.
* testsuite/ld-ctf/diag-cttname-null.d: Likewise.
* testsuite/ld-ctf/diag-cuname.d: Likewise.
* testsuite/ld-ctf/diag-parlabel.d: Likewise.
* testsuite/ld-ctf/enum-forward.d: Likewise.
* testsuite/ld-ctf/enums.d: Likewise.
* testsuite/ld-ctf/forward.d: Likewise.
* testsuite/ld-ctf/function.d: Likewise.
* testsuite/ld-ctf/nonrepresentable.d: Likewise.
* testsuite/ld-ctf/slice.d: Likewise.
* testsuite/ld-ctf/super-sub-cycles.d: Likewise.
2021-09-30 Dimitar Dimitrov <dimitar@dinux.eu>
* scripttempl/pru.sc (.resource_table): Align the output
+1 -1
View File
@@ -1,7 +1,7 @@
#as:
#source: array-char.c
#source: array-int.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables --hash-style=sysv
#name: Arrays
@@ -4,7 +4,7 @@
#source: B.c
#source: B-2.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 1.B-1
@@ -4,7 +4,7 @@
#source: B.c
#source: B-2.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 1.B-2
@@ -4,7 +4,7 @@
#source: B.c
#source: B-2.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 1.parent
@@ -6,7 +6,7 @@
#source: B-2.c
#source: C.c
#source: C-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 2.A-1
@@ -6,7 +6,7 @@
#source: B-2.c
#source: C.c
#source: C-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 2.A-2
@@ -6,7 +6,7 @@
#source: B-2.c
#source: C.c
#source: C-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 2.parent
@@ -5,7 +5,7 @@
#source: B-2.c
#source: C.c
#source: C-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 3.C-1
@@ -5,7 +5,7 @@
#source: B-2.c
#source: C.c
#source: C-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 3.C-2
@@ -5,7 +5,7 @@
#source: B-2.c
#source: C.c
#source: C-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Conflicting cycle 3
+1 -1
View File
@@ -1,7 +1,7 @@
#as:
#source: enum.c
#source: enum-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Conflicting Enums
+1 -1
View File
@@ -1,7 +1,7 @@
#as:
#source: typedef-int.c
#source: typedef-long.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Conflicting Typedefs
@@ -3,7 +3,7 @@
#as:
#source: cross-tu-cyclic-1.c
#source: cross-tu-cyclic-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: cross-TU-cyclic-conflicting
@@ -5,7 +5,7 @@
#as:
#source: cross-tu-2.c
#source: cross-tu-cyclic-1.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: cross-TU-cyclic-nonconflicting
+1 -1
View File
@@ -7,7 +7,7 @@
#as:
#source: cross-tu-cyclic-3.c
#source: cross-tu-cyclic-4.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: cross-TU-into-cycle
+1 -1
View File
@@ -3,7 +3,7 @@
#as:
#source: cross-tu-1.c
#source: cross-tu-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: cross-TU-noncyclic
+1 -1
View File
@@ -3,7 +3,7 @@
#source: A.c
#source: B.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 1
+1 -1
View File
@@ -2,7 +2,7 @@
#source: A.c
#source: B.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 2.A
+1 -1
View File
@@ -2,7 +2,7 @@
#source: A.c
#source: B.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 2.B
+1 -1
View File
@@ -2,7 +2,7 @@
#source: A.c
#source: B.c
#source: C.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 2.C
+1 -1
View File
@@ -1,7 +1,7 @@
#as:
#source: data-func-1.c
#source: data-func-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared -s
#name: Conflicted data syms, partially indexed, stripped
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: diag-cttname-null.s
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Diagnostics - Null type name
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: diag-cuname.s
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Diagnostics - Invalid CU name offset
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: diag-parlabel.s
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Diagnostics - Non-zero parlabel in parent
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: enum-forward.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Forwards to enums
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: enums.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Enumerated types
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: forward.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Forwards
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: function.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Function
+1 -1
View File
@@ -1,7 +1,7 @@
#as:
#source: nonrepresentable-1.c
#source: nonrepresentable-2.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Nonrepresentable types
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: slice.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared --ctf-variables
#name: Slice
+1 -1
View File
@@ -1,6 +1,6 @@
#as:
#source: super-sub-cycles.c
#objdump: --ctf=.ctf
#objdump: --ctf
#ld: -shared
#name: Super- and sub-cycles