On 21/10/2020 15:31, Jon Turney wrote:
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

Notwithstanding that, this formulation doesn't actually seem to avoid invoking the rule twice in a parallel build, so I think I need to revert this.

Reply via email to