gcc/gotools
Jakub Jelinek 701e1b9406 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.
2024-04-15 22:32:37 +02:00
..
aclocal.m4
ChangeLog Daily bump. 2023-11-04 00:16:45 +00:00
configure
configure.ac
go.1
gofmt.1
Makefile.am gotools: Workaround non-reproduceability of automake 2024-04-15 22:32:37 +02:00
Makefile.in gotools: Workaround non-reproduceability of automake 2024-04-15 22:32:37 +02:00
README

This directory builds tools used by people working in the Go language.
The source code for these tools lives in libgo/go/cmd, where it is
copied from the master gofrontend repository.  This directory contains
only the configure/Makefile instructions required to build the tools.

This directory builds two programs for general use: go and gofmt.  It
also builds one program for internal use by the go tool: cgo.  For
more information on these tools see the doc.go files in the relevant
source code, which can also be seen hosted at golang.org:

http://golang.org/cmd/go
http://golang.org/cmd/gofmt
http://golang.org/cmd/cgo