+2020-07-17  Tom de Vries  <tdevries@suse.de>
+
+       * lib/dwarf.exp (Dwarf::extern): Remove.
+       * gdb.compile/compile-ops.exp: Remove use of Dwarf::extern.
+       * gdb.dlang/circular.exp: Same.
+       * gdb.dwarf2/comp-unit-lang.exp: Same.
+       * gdb.dwarf2/dw2-ifort-parameter.exp: Same.
+       * gdb.dwarf2/dw2-symtab-includes.exp: Same.
+       * gdb.dwarf2/dwz.exp: Same.
+       * gdb.dwarf2/imported-unit-abstract-const-value.exp: Same.
+       * gdb.dwarf2/imported-unit-runto-main.exp: Same.
+       * gdb.dwarf2/imported-unit.exp: Same.
+       * gdb.dwarf2/opaque-type-lookup.exp: Same.
+
 2020-07-16  Sandra Loosemore  <sandra@codesourcery.com>
 
        * gdb.base/shell.exp: Skip pipe tests dependent on sh on Windows host.
 
     cu { addr_size 4 } {
 
        declare_labels int_label
-       extern func_start func_end ptr
 
        compile_unit {
            {name file1.txt}
 
            declare_labels circular1_label circular2_label circular3_label
            declare_labels circular4_label circular5_label
 
-           extern circular1_found_start circular1_found_end
-
            circular1_label: module {
                {name circular1}
            } {
 
        # Creating a CU with 4-byte addresses lets this test link on
        # both 32- and 64-bit machines.
        cu { addr_size 4 } {
-           extern func_start func_end
-
            compile_unit {
                {name file1.txt}
                {language @$cu_lang}
 
 Dwarf::assemble $asm_file {
     declare_labels int_label
 
-    extern func_start func_end ptr
     global srcdir subdir srcfile
 
     cu {} {
 
     declare_labels partial_label lines_label
     global srcdir subdir srcfile
 
-    extern main
-
     cu {} {
        partial_label: partial_unit {} {
        }
 
     declare_labels partial_label int_label int_label2
     global srcdir subdir srcfile
 
-    extern main
-
     cu {} {
        partial_label: partial_unit {} {
            subprogram {
 
 
     global srcdir subdir srcfile
 
-    extern main
-
     set main_range [function_range main ${srcdir}/${subdir}/${srcfile}]
     set main_start [lindex $main_range 0]
     set main_length [lindex $main_range 1]
 
 
     global srcdir subdir srcfile
 
-    extern main
-
     set main_range [function_range main ${srcdir}/${subdir}/${srcfile}]
     set main_start [lindex $main_range 0]
     set main_length [lindex $main_range 1]
 
 
     global srcdir subdir srcfile
 
-    extern main
-    extern doit
-
     set main_range [function_range main ${srcdir}/${subdir}/${srcfile}]
     set main_start [lindex $main_range 0]
     set main_length [lindex $main_range 1]
 
     declare_labels char_type1_label char_type2_label
     global srcdir subdir srcfile
 
-    extern main
-
     # The partial units are laid out so we're not dependent on the order that
     # they appear in compunit_symtab.includes.  We need the one with the
     # opaque definition to appear first to gdb, so we put it in the middle.
 
        _emit "${name}:"
     }
 
-    # Declare a global label.  This is typically used to refer to
-    # labels defined in other files, for example a function defined in
-    # a .c file.
-    proc extern {args} {
-       foreach name $args {
-           _op .global $name
-       }
-    }
-
     # A higher-level interface to label handling.
     #
     # ARGS is a list of label descriptors.  Each one is either a