aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/Makefile.in35
2 files changed, 17 insertions, 24 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 33cc257..5c7e98b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2018-12-27 Tom Tromey <tom@tromey.com>
+ * Makefile.in (INIT_FILES): Redefine.
+ (stamp-init): Remove sed, tr invocations. Use for loop. Don't
+ set LANG or LC_ALL.
+
+2018-12-27 Tom Tromey <tom@tromey.com>
+
* Makefile.in (stamp-init): Remove gdbtypes special case.
2018-12-27 John Baldwin <jhb@FreeBSD.org>
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 1adbbca..713b0d8 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1830,37 +1830,24 @@ test-cp-name-parser$(EXEEXT): test-cp-name-parser.o $(LIBIBERTY)
#
# Note that the set of files with init functions might change, or the names
# of the functions might change, so this files needs to depend on all the
-# object files that will be linked into gdb.
+# source files that will be linked into gdb. However, due to the way
+# this Makefile has generally been written, we do this indirectly, by
+# computing the list of source files from the list of object files.
-# FIXME: There is a problem with this approach - init.c may force
-# unnecessary files to be linked in.
+INIT_FILES = \
+ $(patsubst %.o,%.c, \
+ $(patsubst %-exp.o,%-exp.y, \
+ $(filter-out $(NATDEPFILES) init.o version.o %_S.o %_U.o,\
+ $(COMMON_OBS))))
-# 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
-# has an absolute path. It turns out that $(DEC)'s True64 make
-# automatically adds the $(srcdir) prefixes when it encounters files
-# in sub-directories such as cli/ and mi/.
-
-INIT_FILES = $(COMMON_OBS)
init.c: stamp-init; @true
stamp-init: $(INIT_FILES)
@$(ECHO_INIT_C) echo "Making init.c"
@rm -f init.c-tmp init.l-tmp
@touch init.c-tmp
- @-LANG=C ; export LANG ; \
- LC_ALL=C ; export LC_ALL ; \
- echo $(INIT_FILES) | \
- tr ' ' '\012' | \
- sed \
- -e '/^init.[co]$$/d' \
- -e '/version.[co]$$/d' \
- -e '/^[a-z0-9A-Z_]*_[SU].[co]$$/d' \
- -e 's/-exp\.o$$/-exp.y/' \
- -e 's/\.o$$/.c/' \
- -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; \
+ @-for f in $(INIT_FILES); do \
+ sed -n -e 's/^_initialize_\([a-z_0-9A-Z]*\).*/\1/p' \
+ $(srcdir)/$$f 2>/dev/null; \
done > init.l-tmp
@echo '/* Do not modify this file. */' >>init.c-tmp
@echo '/* It is created automatically by the Makefile. */'>>init.c-tmp