+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.
@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}
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"));
{"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'},
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));
#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:
+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
#as:
#source: array-char.c
#source: array-int.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables --hash-style=sysv
#name: Arrays
#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
#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
#source: B.c
#source: B-2.c
#source: C.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Conflicting cycle 1.parent
#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
#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
#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
#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
#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
#source: B-2.c
#source: C.c
#source: C-2.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Conflicting cycle 3
#as:
#source: enum.c
#source: enum-2.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Conflicting Enums
#as:
#source: typedef-int.c
#source: typedef-long.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Conflicting Typedefs
#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
#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
#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
#as:
#source: cross-tu-1.c
#source: cross-tu-2.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: cross-TU-noncyclic
#source: A.c
#source: B.c
#source: C.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 1
#source: A.c
#source: B.c
#source: C.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 2.A
#source: A.c
#source: B.c
#source: C.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 2.B
#source: A.c
#source: B.c
#source: C.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Cycle 2.C
#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
#as:
#source: diag-cttname-null.s
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Diagnostics - Null type name
#as:
#source: diag-cuname.s
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Diagnostics - Invalid CU name offset
#as:
#source: diag-parlabel.s
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Diagnostics - Non-zero parlabel in parent
#as:
#source: enum-forward.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Forwards to enums
#as:
#source: enums.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Enumerated types
#as:
#source: forward.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Forwards
#as:
#source: function.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Function
#as:
#source: nonrepresentable-1.c
#source: nonrepresentable-2.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Nonrepresentable types
#as:
#source: slice.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared --ctf-variables
#name: Slice
#as:
#source: super-sub-cycles.c
-#objdump: --ctf=.ctf
+#objdump: --ctf
#ld: -shared
#name: Super- and sub-cycles