[PATCH 1/3] Remove gdbtypes special case from init.c rule

Tom Tromey
2018-12-24T21:10:27Z

The rule to make init.c has a special case for gdbtypes, with a long
explanatory comment. All of this is obsolete, as the globals referred
to by the comment no longer exist. This patch simplifies the rule.

gdb/ChangeLog
2018-12-24 Tom Tromey <tom@tromey.com>

* Makefile.in (stamp-init): Remove gdbtypes special case.
---
gdb/ChangeLog | 4 ++++
gdb/Makefile.in | 16 +---------------
2 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index a2cf02e1a9..38d00b0632 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1836,18 +1836,6 @@ test-cp-name-parser$(EXEEXT): test-cp-name-parser.o $(LIBIBERTY)
# FIXME: There is a problem with this approach - init.c may force
# unnecessary files to be linked in.

-# FIXME: cagney/2002-06-09: gdb/564: gdb/563: Force the order so that
-# the first call is to _initialize_gdbtypes (implemented by explicitly
-# putting that function's name first in the init.l-tmp file). This is
-# a hack to ensure that all the architecture dependant global
-# builtin_type_* variables are initialized before anything else
-# (per-architecture code is called in the same order that it is
-# registered). The ``correct fix'' is to have all the builtin types
-# made part of the architecture and initialize them on-demand (using
-# gdbarch_data) just like everything else. The catch is that other
-# modules still take the address of these builtin types forcing them
-# to be variables, sigh!
-
# NOTE: cagney/2003-03-18: The sed pattern ``s|^\([^ /]...'' is
# anchored on the first column and excludes the ``/'' character so
# that it doesn't add the $(srcdir) prefix to any file that already
@@ -1861,13 +1849,11 @@ stamp-init: $(INIT_FILES)
@$(ECHO_INIT_C) echo "Making init.c"
@rm -f init.c-tmp init.l-tmp
@touch init.c-tmp
- @echo gdbtypes > init.l-tmp
@-LANG=C ; export LANG ; \
LC_ALL=C ; export LC_ALL ; \
echo $(INIT_FILES) | \
tr ' ' '\012' | \
sed \
- -e '/^gdbtypes.[co]$$/d' \
-e '/^init.[co]$$/d' \
-e '/version.[co]$$/d' \
-e '/^[a-z0-9A-Z_]*_[SU].[co]$$/d' \
@@ -1876,7 +1862,7 @@ stamp-init: $(INIT_FILES)
-e 's|^\([^ /][^ ]*\)|$(srcdir)/\1|g' | \
while read f; do \
sed -n -e 's/^_initialize_\([a-z_0-9A-Z]*\).*/\1/p' $$f 2>/dev/null; \
- done >> init.l-tmp
+ done > init.l-tmp
@echo '/* Do not modify this file. */' >>init.c-tmp
@echo '/* It is created automatically by the Makefile. */'>>init.c-tmp
@echo '#include "defs.h" /* For initialize_file_ftype. */' >>init.c-tmp
--
2.17.2