<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git/gotools/Makefile.am, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/'/>
<entry>
<title>gotools: Workaround non-reproduceability of automake</title>
<updated>2024-04-15T20:32:37+00:00</updated>
<author>
<name>Jakub Jelinek</name>
<email>jakub@redhat.com</email>
</author>
<published>2024-04-15T20:32:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=701e1b94066583f909aee1b5e95ea4dacd9c43b3'/>
<id>701e1b94066583f909aee1b5e95ea4dacd9c43b3</id>
<content type='text'>
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  &lt;jakub@redhat.com&gt;

	* Makefile.am (install-exec-local, uninstall-local): Add goals
	on the else branch of if NATIVE to ensure reproducibility.
	* Makefile.in: Regenerate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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  &lt;jakub@redhat.com&gt;

	* Makefile.am (install-exec-local, uninstall-local): Add goals
	on the else branch of if NATIVE to ensure reproducibility.
	* Makefile.in: Regenerate.
</pre>
</div>
</content>
</entry>
<entry>
<title>Format gotools.sum closer to what DejaGnu does</title>
<updated>2023-11-03T14:45:44+00:00</updated>
<author>
<name>Maxim Kuvyrkov</name>
<email>maxim.kuvyrkov@linaro.org</email>
</author>
<published>2023-11-02T12:40:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=4bfc5091a6a489d9fa5558f0fbcff11d65e1837b'/>
<id>4bfc5091a6a489d9fa5558f0fbcff11d65e1837b</id>
<content type='text'>
... to restore compatability with validate_failures.py .
The testsuite script validate_failures.py expects
"Running &lt;sub-testsuite&gt; ..." to extract &lt;sub-testsuite&gt; values,
and gotools.sum provided "Running &lt;sub-testsuite&gt;".

Note that libgo.sum, which also uses Makefile logic to generate
DejaGnu-like output, already has "..." suffix.

gotools/ChangeLog:

	* Makefile.am: Update "Running &lt;sub-testsuite&gt; ..." output
	* Makefile.in: Regenerate.

Signed-off-by: Maxim Kuvyrkov &lt;maxim.kuvyrkov@linaro.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... to restore compatability with validate_failures.py .
The testsuite script validate_failures.py expects
"Running &lt;sub-testsuite&gt; ..." to extract &lt;sub-testsuite&gt; values,
and gotools.sum provided "Running &lt;sub-testsuite&gt;".

Note that libgo.sum, which also uses Makefile logic to generate
DejaGnu-like output, already has "..." suffix.

gotools/ChangeLog:

	* Makefile.am: Update "Running &lt;sub-testsuite&gt; ..." output
	* Makefile.in: Regenerate.

Signed-off-by: Maxim Kuvyrkov &lt;maxim.kuvyrkov@linaro.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>runtime: call timer functions via syscall</title>
<updated>2022-02-13T19:03:45+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2022-02-13T01:12:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=58aeb75d4097010ad9bb72b964265b18ab284f93'/>
<id>58aeb75d4097010ad9bb72b964265b18ab284f93</id>
<content type='text'>
It turns out to be painful to require linking against -lrt on
GNU/Linux, as that makes it harder to link Go code into C programs.
Instead just call the timer syscalls directly.  That is what the
upstream library does anyhow.

gcc/go/
	* gospec.cc: Revert 2022-02-09 change:
	(RTLIB, RT_LIBRARY): Don't define.
	(lang_specific_driver): Don't add -lrt if linking statically
	on GNU/Linux.

gotools/
	* configure.ac: Revert 2022-02-09 change:
	(RT_LIBS): Don't define.
	* Makefile.am (check-runtime): Don't set GOLIBS to $(RT_LIBS).
	* configure, Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/385475
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It turns out to be painful to require linking against -lrt on
GNU/Linux, as that makes it harder to link Go code into C programs.
Instead just call the timer syscalls directly.  That is what the
upstream library does anyhow.

gcc/go/
	* gospec.cc: Revert 2022-02-09 change:
	(RTLIB, RT_LIBRARY): Don't define.
	(lang_specific_driver): Don't add -lrt if linking statically
	on GNU/Linux.

gotools/
	* configure.ac: Revert 2022-02-09 change:
	(RT_LIBS): Don't define.
	* Makefile.am (check-runtime): Don't set GOLIBS to $(RT_LIBS).
	* configure, Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/385475
</pre>
</div>
</content>
</entry>
<entry>
<title>libgo: update to Go1.18beta2</title>
<updated>2022-02-11T23:01:19+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2022-02-11T22:53:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=8dc2499aa62f768c6395c9754b8cabc1ce25c494'/>
<id>8dc2499aa62f768c6395c9754b8cabc1ce25c494</id>
<content type='text'>
gotools/
	* Makefile.am (go_cmd_cgo_files): Add ast_go118.go
	(check-go-tool): Copy golang.org/x/tools directories.
	* Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/384695
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
gotools/
	* Makefile.am (go_cmd_cgo_files): Add ast_go118.go
	(check-go-tool): Copy golang.org/x/tools directories.
	* Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/384695
</pre>
</div>
</content>
</entry>
<entry>
<title>gccgo: link static libgo against -lrt on GNU/Linux</title>
<updated>2022-02-09T21:13:17+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2022-02-09T21:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=f6ff6738fa25fb012ed208e01de5a84d8668d538'/>
<id>f6ff6738fa25fb012ed208e01de5a84d8668d538</id>
<content type='text'>
The upcoming Go 1.18 release requires linking against -lrt on GNU/Linux
(only) in order to call timer_create and friends.

Also change gotools to link the runtime test against -lrt.

	* gospec.cc (RTLIB, RT_LIBRARY): Define.
	(lang_specific_driver): Add -lrt if linking statically on
	GNU/Linux.

	* configure.ac (RT_LIBS): Define.
	* Makefile.am (check-runtime): Set GOLIBS to $(RT_LIBS).
	* configure, Makefile.in: Regenerate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The upcoming Go 1.18 release requires linking against -lrt on GNU/Linux
(only) in order to call timer_create and friends.

Also change gotools to link the runtime test against -lrt.

	* gospec.cc (RTLIB, RT_LIBRARY): Define.
	(lang_specific_driver): Add -lrt if linking statically on
	GNU/Linux.

	* configure.ac (RT_LIBS): Define.
	* Makefile.am (check-runtime): Set GOLIBS to $(RT_LIBS).
	* configure, Makefile.in: Regenerate.
</pre>
</div>
</content>
</entry>
<entry>
<title>runtime: set runtime.GOROOT value at build time</title>
<updated>2021-09-21T21:31:10+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2021-09-21T18:44:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=09e18d113b3c3dae896ac1a8ad1e0087adbb153b'/>
<id>09e18d113b3c3dae896ac1a8ad1e0087adbb153b</id>
<content type='text'>
In Go 1.17 the gc toolchain changed to set runtime.GOROOT in cmd/link
(previously it was runtime/internal/sys.GOROOT).  Do the same in libgo.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/351313

gotools/:
	* Makefile.am (check-runtime): Add goroot.go to --extrafiles.
	* Makefile.in: Regenerate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Go 1.17 the gc toolchain changed to set runtime.GOROOT in cmd/link
(previously it was runtime/internal/sys.GOROOT).  Do the same in libgo.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/351313

gotools/:
	* Makefile.am (check-runtime): Add goroot.go to --extrafiles.
	* Makefile.in: Regenerate.
</pre>
</div>
</content>
</entry>
<entry>
<title>gotools: for "make check" run "go test embed/internal/embedtest"</title>
<updated>2021-02-02T20:41:01+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2021-02-02T20:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=8e4a738d2540ab6aff77506d368bf4e3fa6963bd'/>
<id>8e4a738d2540ab6aff77506d368bf4e3fa6963bd</id>
<content type='text'>
	* Makefile.am (check-embed): New target.
	(check): Depend on check-embed.  Examine embed-testlog.
	(mostlyclean-local): Add check-embed-dir.
	(.PHONY): Add check-embed.
	* Makefile.in: Regenerate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* Makefile.am (check-embed): New target.
	(check): Depend on check-embed.  Examine embed-testlog.
	(mostlyclean-local): Add check-embed-dir.
	(.PHONY): Add check-embed.
	* Makefile.in: Regenerate.
</pre>
</div>
</content>
</entry>
<entry>
<title>libgo: update to Go1.16beta1 release</title>
<updated>2020-12-30T23:13:24+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2020-12-23T17:57:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=cfcbb4227fb20191e04eb8d7766ae6202f526afd'/>
<id>cfcbb4227fb20191e04eb8d7766ae6202f526afd</id>
<content type='text'>
This does not yet include support for the //go:embed directive added
in this release.

	* Makefile.am (check-runtime): Don't create check-runtime-dir.
	(mostlyclean-local): Don't remove check-runtime-dir.
	(check-go-tool, check-vet): Copy in go.mod and modules.txt.
	(check-cgo-test, check-carchive-test): Add go.mod file.
	* Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280172
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This does not yet include support for the //go:embed directive added
in this release.

	* Makefile.am (check-runtime): Don't create check-runtime-dir.
	(mostlyclean-local): Don't remove check-runtime-dir.
	(check-go-tool, check-vet): Copy in go.mod and modules.txt.
	(check-cgo-test, check-carchive-test): Add go.mod file.
	* Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280172
</pre>
</div>
</content>
</entry>
<entry>
<title>libgo: handle linking to NetBSD's versioned symbols</title>
<updated>2020-10-29T01:20:50+00:00</updated>
<author>
<name>Nikhil Benesch</name>
<email>nikhil.benesch@gmail.com</email>
</author>
<published>2020-10-26T18:42:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=0cdde1e7ae197366e17e5ef50bf68d4d5760df01'/>
<id>0cdde1e7ae197366e17e5ef50bf68d4d5760df01</id>
<content type='text'>
On NetBSD, for backwards compatibility, various libc symbols are
renamed to a symbol with a version suffix. For example, this is the
(abbreviated) definition of sigaction:

    int sigaction(...) __asm__ ("__sigaction14")

This poses a challenge for libgo, which attempts to link sigaction by
way of an "//extern" comment:

    //extern sigaction
    func sigaction(...)

This results in a reference to the deprecated compatibility symbol
"sigaction", rather than the desired "__sigaction14" symbol.

This patch introduces a new "//extern-sysinfo" comment to handle this
situation. The new mklinknames.awk script scans a package for these
comments and outputs a "//go:linkname" directive that links the wrapper
to the correct versioned symbol, as determined by parsing the __asm__
annotation on the function's declaration in gen-sysinfo.go.

For now, only the following packages are scanned by mklinknames.awk:

    os
    os/user
    runtime
    syscall

gotools/:
	* Makefile.am (check-runtime): Add runtime_linknames.go to
	--extrafiles.
	* Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265125
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On NetBSD, for backwards compatibility, various libc symbols are
renamed to a symbol with a version suffix. For example, this is the
(abbreviated) definition of sigaction:

    int sigaction(...) __asm__ ("__sigaction14")

This poses a challenge for libgo, which attempts to link sigaction by
way of an "//extern" comment:

    //extern sigaction
    func sigaction(...)

This results in a reference to the deprecated compatibility symbol
"sigaction", rather than the desired "__sigaction14" symbol.

This patch introduces a new "//extern-sysinfo" comment to handle this
situation. The new mklinknames.awk script scans a package for these
comments and outputs a "//go:linkname" directive that links the wrapper
to the correct versioned symbol, as determined by parsing the __asm__
annotation on the function's declaration in gen-sysinfo.go.

For now, only the following packages are scanned by mklinknames.awk:

    os
    os/user
    runtime
    syscall

gotools/:
	* Makefile.am (check-runtime): Add runtime_linknames.go to
	--extrafiles.
	* Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265125
</pre>
</div>
</content>
</entry>
<entry>
<title>libgo: update to Go1.14beta1</title>
<updated>2020-01-22T07:53:22+00:00</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2020-01-02T23:05:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=5a8ea165926cb0737ab03bc48c18dc5198ab5305'/>
<id>5a8ea165926cb0737ab03bc48c18dc5198ab5305</id>
<content type='text'>
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
</pre>
</div>
</content>
</entry>
</feed>
