summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-06-11 01:31:36 +0000
committerAndrew Cagney <cagney@redhat.com>2002-06-11 01:31:36 +0000
commit195c77ab192cb2fb208d3b6b0188a77304c40502 (patch)
treec7d415ab93f50d63b2e313ef8fa01d810832ba63
parent5cf7ad5810f67db2670d5ee3f1ec94ce553c56c1 (diff)
downloadgdb-195c77ab192cb2fb208d3b6b0188a77304c40502.tar.gz
Force gdbarch.c to be initialized first.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/Makefile.in14
2 files changed, 17 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8c3ca23c995..ad2d6e78a46 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2002-06-10 Andrew Cagney <ac131313@redhat.com>
+ * Makefile.in (init.c): Move the call to _initialize_gdbtypes to
+ the front of the initialize list.
+
+2002-06-10 Andrew Cagney <ac131313@redhat.com>
+
* infrun.c (struct inferior_status): Replace fields
selected_frame_address and selected_level with field
selected_frame_id.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 0f8f7b41f64..1d5492a317f 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -844,7 +844,16 @@ uninstall: force $(CONFIG_UNINSTALL)
# list includes a file twice (because of some mistake somewhere else)
# the _initialize_* function will be included twice in init.c. Second,
# 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. 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!
INIT_FILES = $(OBS) $(TSOBS) $(CONFIG_OBS) $(CONFIG_INITS)
init.c: $(INIT_FILES)
@@ -869,7 +878,8 @@ init.c: $(INIT_FILES)
-e 's,signals\.c,signals/signals\.c,' \
-e 's|\([^ ][^ ]*\)|$(srcdir)/\1|g' | \
while read f; do grep '^_initialize_[a-z_0-9A-Z]* *(' $$f 2>/dev/null; done | \
- sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/\1/' > init.l-tmp
+ sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/\1/' | \
+ ( echo _initialize_gdbtypes ; grep -v -e '^_initialize_gdbtypes$$' ) > 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"' >>init.c-tmp