public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc r14-9982] gotools: Workaround non-reproduceability of automake
Date: Mon, 15 Apr 2024 20:33:25 +0000 (GMT)	[thread overview]
Message-ID: <20240415203326.0A6883858D32@sourceware.org> (raw)

https://gcc.gnu.org/g:701e1b94066583f909aee1b5e95ea4dacd9c43b3

commit r14-9982-g701e1b94066583f909aee1b5e95ea4dacd9c43b3
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Apr 15 22:32:37 2024 +0200

    gotools: Workaround non-reproduceability of automake
    
    The regen bot recently flagged a difference in gotools/Makefile.in.
    Trying it locally, it seems pretty random
    for i in `seq 20`; do PATH=~/automake-1.15.1/bin:~/autoconf-2.69/bin:$PATH automake; echo -n `git diff Makefile.in | wc -l`" "; done; echo; for i in `seq 20`; do
    +PATH=~/automake-1.15.1/bin:~/autoconf-2.69/bin:$PATH setarch x86_64 -R automake; echo -n `git diff Makefile.in | wc -l`" "; done; echo;
    14 14 14 0 0 0 14 0 14 0 14 14 14 14 0 14 14 0 0 0
    14 0 14 0 0 14 14 14 0 14 14 0 0 14 14 14 0 0 0 14
    The 14 line git diff is
    diff --git a/gotools/Makefile.in b/gotools/Makefile.in
    index 36c2ec2abd3..f40883c39be 100644
    --- a/gotools/Makefile.in
    +++ b/gotools/Makefile.in
    @@ -704,8 +704,8 @@ distclean-generic:
     maintainer-clean-generic:
            @echo "This command is intended for maintainers to use"
            @echo "it deletes files that may require special tools to rebuild."
    -@NATIVE_FALSE@install-exec-local:
     @NATIVE_FALSE@uninstall-local:
    +@NATIVE_FALSE@install-exec-local:
     clean: clean-am
    
     clean-am: clean-binPROGRAMS clean-generic clean-noinstPROGRAMS \
    so whether it is
    @NATIVE_FALSE@install-exec-local:
    @NATIVE_FALSE@uninstall-local:
    or
    @NATIVE_FALSE@uninstall-local:
    @NATIVE_FALSE@install-exec-local:
    depends on some hash table traversal or what.
    
    I'm not familiar with automake/m4 enough to debug that, so I'm
    instead offering a workaround, with this patch the order is deterministic.
    
    2024-04-15  Jakub Jelinek  <jakub@redhat.com>
    
            * Makefile.am (install-exec-local, uninstall-local): Add goals
            on the else branch of if NATIVE to ensure reproducibility.
            * Makefile.in: Regenerate.

Diff:
---
 gotools/Makefile.am | 2 ++
 gotools/Makefile.in | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/gotools/Makefile.am b/gotools/Makefile.am
index d2376b9c25b..80b21847117 100644
--- a/gotools/Makefile.am
+++ b/gotools/Makefile.am
@@ -366,5 +366,7 @@ else
 # only do this if such a compiler is available.  We also need to get
 # the right values for GOARCH and GOOS in the default build context in
 # the go/build package.  Figure this out later.
+install-exec-local:
+uninstall-local:
 
 endif
diff --git a/gotools/Makefile.in b/gotools/Makefile.in
index 36c2ec2abd3..8a4a68e120b 100644
--- a/gotools/Makefile.in
+++ b/gotools/Makefile.in
@@ -704,8 +704,6 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-@NATIVE_FALSE@install-exec-local:
-@NATIVE_FALSE@uninstall-local:
 clean: clean-am
 
 clean-am: clean-binPROGRAMS clean-generic clean-noinstPROGRAMS \
@@ -1035,6 +1033,8 @@ mostlyclean-local:
 # only do this if such a compiler is available.  We also need to get
 # the right values for GOARCH and GOOS in the default build context in
 # the go/build package.  Figure this out later.
+@NATIVE_FALSE@install-exec-local:
+@NATIVE_FALSE@uninstall-local:
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.

                 reply	other threads:[~2024-04-15 20:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240415203326.0A6883858D32@sourceware.org \
    --to=jakub@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).