https://gcc.gnu.org/g:93bcb5098e398d2df50c125a11978ac435680ebd

commit r17-5101-g93bcb5098e398d2df50c125a11978ac435680ebd
Author: Iain Sandoe <[email protected]>
Date:   Sun Oct 4 19:51:41 2026 +0200

    modula-2, make: Do not declare m2.pod .INTERMEDIATE
    
    It appears that make 3.81 has a latent bug that is triggered by a 
combination
    of modula2 build recipe entries that appear to be correct.  In particular
    marking the m2.pod file as .INTERMEDIATE produces a situation which a clean
    build of the compiler works, as does any non-parallel rebuild.  However any
    parallel rebuild results in make spinning with a single process at 100%.
    
    Other similar recipes in Fortran and D appear to work as expected, there is
    some subtle difference in the m2 case.
    
    The solution that works to allow a rebuild with j > 1 is to remove the
    .INTERMEDIATE marking on the m2.pod (and to make it explictly deleted on
    clean).
    
    gcc/m2/ChangeLog:
    
            * Make-lang.in: Do not makr m2.pod as .INTERMEDIATE but delete it
            explicitly in clean targets.
    
    Signed-off-by: Iain Sandoe <[email protected]>

Diff:
---
 gcc/m2/Make-lang.in | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index d7c46ec1a190..e4f37a155b9f 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -189,8 +189,6 @@ m2.install-pdf: $(M2_PDFFILES)
          $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \
        done
 
-.INTERMEDIATE: m2.pod
-
 m2.pod: $(TEXISRC) | $(objdir)/m2/images/gnu.eps $(TEXILIBSRC)
        -$(TEXI2POD) -I $(objdir)/m2 -D m2 < $< > $@
 
@@ -412,6 +410,7 @@ endif
 
 m2.mostlyclean:
        -rm -f m2/*.o
+       -rm -f m2.pod
 
 m2.clean:
        -rm -f m2/*.o

Reply via email to