+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