+2018-07-20  Tom Tromey  <tom@tromey.com>
+
+       * buildsym.h (EXTERN): Don't define or undef.
+       * buildsym.c (EXTERN): Don't define.
+
 2018-07-20  Tom Tromey  <tom@tromey.com>
 
        * buildsym.c: Remove TODO comment.
 
 */
 
 #include "defs.h"
+#include "buildsym.h"
 #include "bfd.h"
 #include "gdb_obstack.h"
 #include "symtab.h"
 #include "addrmap.h"
 #include <algorithm>
 
-/* Ask buildsym.h to define the vars it normally declares `extern'.  */
-#define        EXTERN
-/**/
-#include "buildsym.h"          /* Our own declarations.  */
-#undef EXTERN
-
 /* For cleanup_undefined_stabs_types and finish_global_stabs (somewhat
    questionable--see comment where we call them).  */
 
 
    file-reading routines.
 
    They originated in dbxread.c of gdb-4.2, and were split out to
-   make xcoffread.c more maintainable by sharing code.
-
-   Variables declared in this file can be defined by #define-ing the
-   name EXTERN to null.  It is used to declare variables that are
-   normally extern, but which get defined in a single module using
-   this technique.  */
+   make xcoffread.c more maintainable by sharing code.  */
 
 struct block;
 struct pending_block;
 
 struct dynamic_prop;
 
-#ifndef EXTERN
-#define        EXTERN extern
-#endif
-
 /* The list of sub-source-files within the current individual
    compilation.  Each file gets its own symtab with its own linetable
    and associated info, but they all share one blockvector.  */
 
 extern struct pending **get_global_symbols ();
 
-#undef EXTERN
-
 #endif /* defined (BUILDSYM_H) */