This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Go patches committed: merge recent changes to gofrontend
- From: Ian Lance Taylor <iant at golang dot org>
- To: Thomas Schwinge <thomas at codesourcery dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, "gofrontend-dev at googlegroups dot com" <gofrontend-dev at googlegroups dot com>, Than McIntosh <thanm at google dot com>
- Date: Fri, 12 May 2017 05:54:14 -0700
- Subject: Re: Go patches committed: merge recent changes to gofrontend
- Authentication-results: sourceware.org; auth=none
- References: <CAOyqgcU+HRgOOBD=d8eGsnYANKTQv_EqPQacp30eGMaKuHqT8Q@mail.gmail.com> <874lwqz80p.fsf@euler.schwinge.homeip.net>
On Fri, May 12, 2017 at 3:25 AM, Thomas Schwinge
<thomas@codesourcery.com> wrote:
>
> This doesn't block me in any way, but I wanted to report it anyway:
>
> On Wed, 10 May 2017 10:26:15 -0700, Ian Lance Taylor <iant@golang.org> wrote:
>> I have committed a large patch to update the Go frontend and libgo to
>> the recent changes in the gofrontend repository.
>
> Doing an incremental rebuild, that ran into:
>
> [...]/source-gcc/libgo/go/runtime/heapdump.go:379:14: error: reference to undefined identifier 'sys.Goexperiment'
> dumpstr(sys.Goexperiment)
> ^
> make[3]: *** [runtime.lo] Error 1
> make[3]: Leaving directory `[...]/build-gcc/x86_64-pc-linux-gnu/libgo'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `[...]/build-gcc/x86_64-pc-linux-gnu/libgo'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `[...]/build-gcc/x86_64-pc-linux-gnu/libgo'
> make: *** [all-target-libgo] Error 2
>
> Removing "x86_64-pc-linux-gnu/libgo", and rebuilding, it passed.
>
> There is:
>
>> commit eab2960aee91d3e3a6baa5b1bce01262d24c714f
>> Author: Ian Lance Taylor <iant@golang.org>
>> Date: Thu Apr 20 17:08:19 2017 -0700
>>
>> runtime/internal/sys: define Goexperiment
>>
>> The gc toolchain defines Goexperiment based on the environment
>> variable GOEXPERIMENT when the toolchain is built. We just always set
>> Goexperiment to the empty string.
>>
>> Reviewed-on: https://go-review.googlesource.com/41292
>
> | diff --git a/libgo/Makefile.am b/libgo/Makefile.am
> | index f600a83..f4bf2bc 100644
> | --- a/libgo/Makefile.am
> | +++ b/libgo/Makefile.am
> |
> | @@ -512,6 +512,7 @@
> | echo "package sys" > version.go.tmp
> | echo 'const DefaultGoroot = "$(prefix)"' >> version.go.tmp
> | echo 'const TheVersion = "'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'"' >> version.go.tmp
> | + echo 'const Goexperiment = ``' >> version.go.tmp
> | echo 'const GOARCH = "'$(GOARCH)'"' >> version.go.tmp
> | echo 'const GOOS = "'$(GOOS)'"' >> version.go.tmp
> | echo 'const GccgoToolDir = "$(libexecsubdir)"' >> version.go.tmp
>
> In the failed build's tree, I do see that the Makefile has been renewed,
> but the version.go file has not yet been, at the time the build failed.
> Is there some missing dependency, or should that be implicit?
> libgo/go/runtime/heapdump.go also is new, and is the only user of
> sys.Goexperiment, as far as I can tell.
Thanks. I don't know what would cause that. The dependencies in
libgo/Makefile.am look right to me. They do the same kind of thing as
I see in gcc/Makefile.in (for example, for cs-config.h). If anybody
has any ideas, please let me know.
Ian