On 20/10/2020 14:43, Jon Turney wrote: > Express that gendef generates sigfe.s and cygwin.def in a slightly less > nutty way. > --- > winsup/cygwin/Makefile.in | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in > index a56a311b8..9d05b17b3 100644 > --- a/winsup/cygwin/Makefile.in > +++ b/winsup/cygwin/Makefile.in > @@ -785,16 +785,13 @@ $(VERSION_OFILES): version.cc > Makefile: ${srcdir}/Makefile.in > /bin/sh ./config.status > > -$(DEF_FILE): gendef $(srcdir)/$(TLSOFFSETS_H) $(DIN_FILE) > +$(DEF_FILE) sigfe.s: gendef $(srcdir)/$(TLSOFFSETS_H) $(DIN_FILE) > $(word 1,$^) --cpu=${target_cpu} --output-def=$@ --tlsoffsets=$(word 2,$^) $(wordlist 3,99,$^) Using $@ is wrong if make decides to build sigfe.s first, and $^ will contain an unwanted $(DEF_FILE) from the dependency below. So please try the attached instead. But maybe I need to do a bit more staring at [1]. [1] https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html > > $(srcdir)/$(TLSOFFSETS_H): gentls_offsets cygtls.h > $^ $@ $(target_cpu) $(COMPILE.cc) -c || rm $@ > > sigfe.s: $(DEF_FILE) > - @[ -s $@ ] || \ > - { rm -f $(DEF_FILE); $(MAKE) -s -j1 $(DEF_FILE); }; \ > - [ -s $@ ] && touch $@ > > sigfe.o: sigfe.s $(srcdir)/$(TLSOFFSETS_H) > $(CC) ${CFLAGS} -c -o $@ $< >