From cc9519e7d6251b84dd95c55b562a15b25d703bc0 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 23 Apr 2019 16:42:27 +0930 Subject: [PATCH] Fix automatic makefile dependencies for generated ld/e*.c Commit c40e31a121 broke --enable-dependency-tracking=no. * Makefile.am (GENDEPDIR): New var, used.. (GENSCRIPTS): ..here. * Makefile.in: Regenerate. * genscripts.sh: Test for $DEPDIR set before every use. --- ld/ChangeLog | 7 +++++++ ld/Makefile.am | 10 +++++++--- ld/Makefile.in | 8 +++++--- ld/genscripts.sh | 28 +++++++++++++++++----------- 4 files changed, 36 insertions(+), 17 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 76b202bccb4..4b4956e9ccc 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2019-04-23 Alan Modra + + * Makefile.am (GENDEPDIR): New var, used.. + (GENSCRIPTS): ..here. + * Makefile.in: Regenerate. + * genscripts.sh: Test for $DEPDIR set before every use. + 2019-04-22 Matthew Fortune * testsuite/ld-mips-elf/mips-elf-flags.exp: Fix expected ASEs diff --git a/ld/Makefile.am b/ld/Makefile.am index 0e9dc862e55..4a0bb152271 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -152,6 +152,7 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ BFDLIB = ../bfd/libbfd.la LIBIBERTY = ../libiberty/libiberty.a +# These all start with e so 'make clean' can find them. ALL_EMULATION_SOURCES = \ eaix5ppc.c \ eaix5rs6.c \ @@ -611,9 +612,12 @@ ldemul-list.h: Makefile stringify.sed: ${srcdir}/emultempl/$(STRINGIFY) cp ${srcdir}/emultempl/$(STRINGIFY) stringify.sed -# These all start with e so 'make clean' can find them. - -GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "${DEPDIR}" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ +if AMDEP + GENDEPDIR=$(DEPDIR) +else + GENDEPDIR= +endif +GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "$(GENDEPDIR)" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed @TDIRS@ diff --git a/ld/Makefile.in b/ld/Makefile.in index e71b4d4ab2e..fbccfbc9d7c 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -638,6 +638,8 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ BFDLIB = ../bfd/libbfd.la LIBIBERTY = ../libiberty/libiberty.a + +# These all start with e so 'make clean' can find them. ALL_EMULATION_SOURCES = \ eaix5ppc.c \ eaix5rs6.c \ @@ -979,9 +981,9 @@ OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ STAGESTUFF = *.@OBJEXT@ ldscripts/* e*.c SRC_POTFILES = $(CFILES) $(HFILES) BLD_POTFILES = $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES) - -# These all start with e so 'make clean' can find them. -GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "${DEPDIR}" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ +@AMDEP_FALSE@GENDEPDIR = +@AMDEP_TRUE@GENDEPDIR = $(DEPDIR) +GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "$(GENDEPDIR)" "${LIB_PATH}" "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed # We need this for automake to use YLWRAP. diff --git a/ld/genscripts.sh b/ld/genscripts.sh index 7ee03d2b1ce..cb2b081e9e9 100755 --- a/ld/genscripts.sh +++ b/ld/genscripts.sh @@ -129,11 +129,15 @@ TOOL_LIB=$2 source_sh() { - echo $1 >> ${DEPDIR}/e${EMULATION_NAME}.Tc + if test -n "${DEPDIR}"; then + echo $1 >> ${DEPDIR}/e${EMULATION_NAME}.Tc + fi . $1 } -rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc +if test -n "${DEPDIR}"; then + rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc +fi # Include the emulation-specific parameters: CUSTOMIZER_SCRIPT="${srcdir}/emulparams/${EMULATION_NAME}.sh" @@ -639,12 +643,14 @@ fi > e${EMULATION_NAME}.c source_em ${srcdir}/emultempl/${TEMPLATE_NAME-generic}.em -ecdeps= -for dep in `cat ${DEPDIR}/e${EMULATION_NAME}.Tc`; do - case " $ecdeps " in - *" $dep "*): ;; - *) ecdeps="$ecdeps $dep" ;; - esac -done -rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc -echo "e${EMULATION_NAME}.c:${ecdeps}" > ${DEPDIR}/e${EMULATION_NAME}.Pc +if test -n "${DEPDIR}"; then + ecdeps= + for dep in `cat ${DEPDIR}/e${EMULATION_NAME}.Tc`; do + case " $ecdeps " in + *" $dep "*): ;; + *) ecdeps="$ecdeps $dep" ;; + esac + done + rm -f ${DEPDIR}/e${EMULATION_NAME}.Tc + echo "e${EMULATION_NAME}.c:${ecdeps}" > ${DEPDIR}/e${EMULATION_NAME}.Pc +fi -- 2.30.2