public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Andrew Pinski <apinski@cavium.com>
To: Ian Lance Taylor <iant@golang.org>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>,
		"gofrontend-dev@googlegroups.com"
	<gofrontend-dev@googlegroups.com>
Subject: Re: Go patches committed: merge recent changes to gofrontend
Date: Thu, 11 May 2017 00:42:00 -0000	[thread overview]
Message-ID: <CA+=Sn1=9TZX8kuK=TgoossPd+N4hq-dCKm6jPfz19GZuM7oDxg@mail.gmail.com> (raw)
In-Reply-To: <CAOyqgcU+HRgOOBD=d8eGsnYANKTQv_EqPQacp30eGMaKuHqT8Q@mail.gmail.com>

On Wed, May 10, 2017 at 10:26 AM, 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.  I had postponed
> merging changes during the GCC 7 release process.  I am now merging
> all the changes that were pending during that period.  Although this
> is a merged patch, the changes can be seen individually in the
> gofrontend repo (https://go.googlesource.com/gofrontend).  They are
> also listed below.
>
> This is a fairly significant patch that brings in the concurrent
> garbage collector used in the Go 1.8 runtime.  This significantly
> reduces pauses due to garbage collection while running a Go program.
>
> This patch also brings in experimental support for AIX for gccgo,
> contributed by Matthieu Sarter and others at Atos Infogérance.
>
> The actual patch is too large for this e-mail patch, but I have
> attached all the changes to the gcc/go directory.
>
> Ian


This causes a build failure on aarch64-linux-gnu:
../../../gcc/libgo/runtime/proc.c: In function ‘runtime_malg’:
../../../gcc/libgo/runtime/proc.c:729:43: warning: implicit
declaration of function ‘mstats’; did you mean ‘mstart1’?
[-Wimplicit-function-declaration]
    void *p = runtime_sysAlloc(stacksize, &mstats()->other_sys);
                                           ^~~~~~
                                           mstart1
../../../gcc/libgo/runtime/proc.c:729:51: error: invalid type argument
of ‘->’ (have ‘int’)
    void *p = runtime_sysAlloc(stacksize, &mstats()->other_sys);
                                                   ^~


Thanks,
Andrew



>
>
> 2017-05-10  Than McIntosh  <thanm@google.com>
>
> * go-backend.c: Include "go-c.h".
> * go-gcc.cc (Gcc_backend::write_export_data): New method.
>
> 2017-05-10  Ian Lance Taylor  <iant@google.com>
>
> * go-gcc.cc (Gcc_backend::Gcc_backend): Declare
> __builtin_prefetch.
> * Make-lang.in (GO_OBJS): Add go/wb.o.
>
> commit 884c9f2cafb3fc1decaca70f1817ae269e4c6889
> Author: Than McIntosh <thanm@google.com>
> Date:   Mon Jan 23 15:07:07 2017 -0500
>
>     compiler: insert additional conversion for type desc ptr expr
>
>     Change the method Type::type_descriptor_pointer to apply an additional
>     type conversion to its result Bexpression, to avoid type clashes in
>     the back end. The backend expression for a given type descriptor var
>     is given a type of "_type", however the virtual calls that create the
>     variable use types derived from _type, hence the need to force a
>     conversion.
>
>     Reviewed-on: https://go-review.googlesource.com/35506
>
>
> commit 5f0647c71e3b29eddcd0eecc44e7ba44ae7fc8dd
> Author: Than McIntosh <thanm@google.com>
> Date:   Mon Jan 23 15:22:26 2017 -0500
>
>     compiler: insure tree integrity in Call_expression::set_result
>
>     Depending on the back end, it can be problematic to reuse Bexpressions
>     (passing the same Bexpression to more than one Backend call to create
>     additional Bexpressions or Bstatements). The Call_expression::set_result
>     method was reusing its Bexpression input in more than one tree
>     context; the fix is to pass in an Expression instead and generate
>     multiple Bexpression references to it within the method.
>
>     Reviewed-on: https://go-review.googlesource.com/35505
>
>
> commit 7a8e49870885af898c3c790275e513d1764a2828
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Tue Jan 24 21:19:06 2017 -0800
>
>     runtime: copy more of the scheduler from the Go 1.8 runtime
>
>     Copies mstart, newm, m0, g0, and friends.
>
>     Reviewed-on: https://go-review.googlesource.com/35645
>
>
> commit 3546e2f002d0277d805ec59c5403bc1d4eda4ed9
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Jan 26 19:47:37 2017 -0800
>
>     runtime: remove a few C functions that are no longer used
>
>     Reviewed-on: https://go-review.googlesource.com/35849
>
>
> commit a71b835254f6d3164a0e6beaf54f2b175d1a6a92
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Jan 26 16:51:16 2017 -0800
>
>     runtime: copy over more of the Go 1.8 scheduler
>
>     In particular __go_go (aka newproc) and goexit[01].
>
>     Reviewed-on: https://go-review.googlesource.com/35847
>
>
> commit c3ffff725adbe54d8283c373b6aa7dc95d6fc27f
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Jan 27 16:58:20 2017 -0800
>
>     runtime: copy syscall handling from Go 1.8 runtime
>
>     Entering a syscall still has to start in C, to save the registers.
>     Fix entersyscallblock to save them more reliably.
>
>     This copies over the tracing code for syscalls, which we previously
>     weren't doing, and lets us turn on runtime/trace/check.
>
>     Reviewed-on: https://go-review.googlesource.com/35912
>
>
> commit d5b921de4a28b04000fc4c8dac7f529a4a624dfc
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Jan 27 18:34:11 2017 -0800
>
>     runtime: copy SIGPROF handling from Go 1.8 runtime
>
>     Also copy over Breakpoint.
>
>     Fix Func.Name and Func.Entry to not crash on a nil Func.
>
>     Reviewed-on: https://go-review.googlesource.com/35913
>
>
> commit cc60235e55aef14b15c3d2114030245beb3adfef
> Author: Than McIntosh <thanm@google.com>
> Date:   Mon Feb 6 11:12:12 2017 -0500
>
>     compiler: convert go_write_export_data to Backend method.
>
>     Convert the helper function 'go_write_export_data' into a Backend
>     class method, to allow for an implementation of this function that
>     needs to access backend state.
>
>     Reviewed-on: https://go-review.googlesource.com/36357
>
>
> commit e387439bfd24d5e142874b8e68e7039f74c744d7
> Author: Than McIntosh <thanm@google.com>
> Date:   Wed Feb 8 11:13:46 2017 -0500
>
>     compiler: insert backend conversion in temporary statement init
>
>     Insert an additional type conversion in Temporary_statement::do_get_backend
>     when assigning a Bexpression initializer to the temporary variable, to
>     avoid potential clashes in the back end. This can come up when assigning
>     something of concrete pointer-to-function type to a variable of generic
>     pointer-to-function type.
>
>     Reviewed-on: https://go-review.googlesource.com/36591
>
>
> commit c5acf0ce09e61ff623847a35a99da465b8571609
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 1 17:57:53 2017 +0100
>
>     libgo: build tags for aix
>
>     Build tags for the libgo source files required to build
>     libgo on AIX.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37633
>
>
> commit 67ed19616898ea18a101ec9325b82d028cd395d9
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 2 15:41:31 2017 +0100
>
>     libgo: handle AIX tag in match.sh and gotest
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37638
>
>
> commit 83ea2d694c10b2dd83fc8620c43da13d20db754e
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 1 17:48:16 2017 +0100
>
>     libgo: add AIX support in configure and Makefile
>
>     - support for GOOS=aix
>     - CFLAGS/GOCFLAGS/LDFLAGS for AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37632
>
>
> commit 35d577fe22ffa16a3ccaadf5dae9f6f425c8ec8c
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Mon Mar 6 15:00:15 2017 +0100
>
>     runtime: adapt memory management to AIX mmap
>
>     On AIX:
>     * mmap does not allow to map an already mapped range,
>     * mmap range start at 0x30000000 for 32 bits processes,
>     * mmap range start at 0x70000000_00000000 for 64 bits processes
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37845
>
>
> commit 4e49e56a5fd4072b4ca7fcefe4158d6885d9ee62
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Mon Mar 6 13:42:26 2017 +0100
>
>     runtime: add getproccount implementation for AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37844
>
>
> commit ff626470294237ac664127894826614edc46a3d0
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Mon Mar 6 17:31:21 2017 +0100
>
>     runtime: handle ERESTART errno with AIX's wait4
>
>     On AIX, wait4 may return with errno set to ERESTART, which causes
> unexepected
>     behavior (for instance, go build may exit with the message "wait: restart
>     system call" after running a command, even if it was successfull).
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37846
>
>
> commit 37daabbfc83d533b826ef9ab10e2dee7406e7198
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Mon Mar 6 11:02:58 2017 +0100
>
>     runtime: support for AIX's procfs tree
>
>     On AIX, the process executable file is available under
> /proc/<pid>/object/a.out
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37842
>
>
> commit a0275c039d56acf4bf48151978c1a4ec5758cc2c
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Mar 8 07:00:05 2017 -0800
>
>     libgo/Makefile.am: don't use nonportable \n or \t in sed expression
>
>     The resulting zstdpktlist.go is less pretty, but it works.
>
>     Reviewed-on: https://go-review.googlesource.com/37940
>
>
> commit 29b190f76105aafa2b50b48249afdafecc97a4be
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 9 16:02:34 2017 +0100
>
>     runtime: netpoll and semaphores for AIX
>
>     semaphore implementation based on Solaris implementation in
>     libgo/go/runtime/os_solaris.go
>
>     netpoll is just a stub to avoid build failure on AIX.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37966
>
>
> commit 55ca6d3f3cddf0ff9ccb074b2694da9fc54de7ec
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 9 15:38:30 2017 +0100
>
>     libmain: ensure initfn is called when loading a go library
>
>     AIX does not support .init_array.
>     The alterative is to export the __go_init function and tell the linker
>     it is an init function with the -Wl,-binitfini:__go_init option.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37965
>
>
> commit 349a30d17d880ac8bc1a35e1a2ffee6d6e870ae9
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Mar 10 11:15:08 2017 +0100
>
>     libgo: use an import list for missing symbols
>
>     libgo depends on symbols provided by Go programs at runtime. On AIX,
>     this requires either to build libgo with -Wl,-berok linker option and
>     the programs with -Wl,-brtl, or to provide a list of imported symbols
>     when building libgo. The second options seems preferable, to avoid
>     requiring an additional option for every Go program.
>
>     There are also some symbols that are specific to GNU ld and do not
>     exist when linking with AIX ld (__data_start, __edata, __etext and
>     __bss_start).
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37969
>
>
> commit 91db0ea1ff068ca1d97b9c99612100ea5b96ddb2
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 8 15:34:45 2017 +0100
>
>     crypto/x509: add certificate files locations for AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/37952
>
>
> commit 92e521c854e91709b949548c47e267377850f26a
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Mar 10 14:10:11 2017 -0800
>
>     compiler: fix check for pointer in Temporary_reference_expression
>
>     The check for an unrepresentable pointer in
>     Temporary_reference_expression::do_get_backend was incorrectly
>     translated from C to Go in https://golang.org/cl/14346043.  Fix the
>     check to use points_to rather than has_pointer and deref.  This should
>     not make any difference in practice as either way the condition will
>     only be true for a pointer to void, but points_to is correct and more
>     efficient.
>
>     Reviewed-on: https://go-review.googlesource.com/38009
>
>
> commit 9a0b676e59e7171a630c48fdc3d4de6712bad0ca
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 16 16:51:53 2017 +0100
>
>     libgo: add missing _arpcom struct to *sysinfo.go
>
>     This struct is filtered due to having a field of type _in6_addr,
>     but other types exported to *sysinfo.go are depending on it.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38251
>
>
> commit 61262a757bdd3d9a595ab6a90f68c0c4ebed7bc1
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 16 18:27:46 2017 +0100
>
>     syscall: raw_ptrace stub for AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38253
>
>
> commit 8029632b50880fd9b5e39299c738b38e3386595f
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 15 16:58:37 2017 +0100
>
>     libgo: adapt runtime.inc to AIX
>
>     * Two AIX types are wrongfully exported to runtime.inc as their names
>       make them look like a Go type.
>     * The sigset go type conflicts with a system sigset type.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38192
>
>
> commit 25f3a90d14bc268479369ecc0eada72791612f86
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 15 16:58:37 2017 +0100
>
>     libgo: update Makefile.in, accidentally omitted from last change
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38310
>
>
> commit d52b4895616b66f93b460366527e74336829aaa5
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 16 18:39:26 2017 +0100
>
>     syscall: TIOCSCTTY does not exist on AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38254
>
>
> commit ff1ec3847a4472008e5d53a98b6694b1e54ca322
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 16 18:07:34 2017 +0100
>
>     syscall: syscall does not exist on AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38252
>
>
> commit c1ee60dabf0b243a0b0286215481a5d326c34596
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Mar 17 17:18:18 2017 +0100
>
>     net: EAI_OVERFLOW does not exist on AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38266
>
>
> commit ad4ad29aed9f70b14b39b488bfeb9ee745382ec4
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Mar 17 17:23:56 2017 +0100
>
>     net: sockopt/sockoptip stubs for AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38267
>
>
> commit 5d7db2d7542fe7082f426d42f8c2ce14aad6df55
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Mar 17 16:35:05 2017 +0100
>
>     os/user: add listgroups stub for AIX
>
>     This is required to build os/user.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38263
>
>
> commit 4e57a7973e9fa4cb5ab977c6d792e62a8f7c5795
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 22 11:11:30 2017 +0100
>
>     os: fix readdirnames for AIX
>
>     Largefile implementation should be used on AIX.
>
>     readdir64_r function returns 9 and sets result to NULL when
>     reaching end of directory, so this return code should not
>     always be considered as an error.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38359
>
>
> commit b34036967d1ec57b25e3debe077439b4210a1d4a
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Mar 17 17:39:31 2017 +0100
>
>     libgo: adapt sigtab.go to AIX
>
>     On AIX, _NSIG is not directly defined to its integer value in
>     gen-sysinfo.go.
>     The real value is _SIGMAX32+1 or _SIGMAX64+1, depending if we are
>     building a 32bit ligbo or a 64bit libgo, so we need to read one of
>     those constants to set nsig value in mksigtab.sh
>
>     This change also ensures that all signal numbers from 0 to nsig-1
>     are referenced in sigtable.
>
>     Reviewed-on: https://go-review.googlesource.com/38268
>
>
> commit 20991c32671a183ec859b4f285df37fdd4634247
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 23 17:28:09 2017 +0100
>
>     syscall: missing import in socket_bsd.go
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38369
>
>
> commit c34754bd9adf5496c4c26257eaa50793553c11e8
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 22 17:57:01 2017 +0100
>
>     sycall: WCOREDUMP macro is not defined on AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38363
>
>
> commit 4f38813482227b12ea0ac6ac1b981ff9ef9853ef
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 23 17:44:43 2017 +0100
>
>     libgo: additional build tags for AIX
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38510
>
>
> commit d117ede6ff5a7083e9c40eba28a0f94f3535d773
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 23 17:48:46 2017 +0100
>
>     go/build: add AIX to "go build" command known OS
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38511
>
>
> commit 7b0ddaa6a6a71f9eb1c374122d29775b13c2cac5
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Mar 23 09:57:01 2017 -0700
>
>     compiler: don't crash if imported package imports this one
>
>     When building a test it's OK if test code imports a package that
>     imports this one. The go tool is supposed to catch cases where this
>     creates an impossible initialization order. The compiler already has
>     code to permit this in Gogo::add_import_init_fn. This CL avoids a
>     compiler crash on a similar case when writing out the export data.
>
>     I have no test case for this. Basically it pushes a compiler crash
>     into an error reported elsewhere.
>
>     Problem was reported by Tony Reix.
>
>     Reviewed-on: https://go-review.googlesource.com/38462
>
>
> commit 925636975d075e3e3353823b09db3f933f23cb03
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Mar 29 14:14:18 2017 -0700
>
>     runtime: copy finalizer support from Go 1.8 runtime
>
>     Reviewed-on: https://go-review.googlesource.com/38794
>
>
> commit 1ccb22b96cb3b1011db0e427877d9ddecb577fa9
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Mar 30 15:21:06 2017 +0200
>
>     runtime: initcontext and setcontext stubs for AIX
>
>     Further investigations are required to understand the clobbering
>     issue and implement a proper fix. Until then, those stubs are
>     required to allow the build to complete.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38930
>
>
> commit 27db481f369b54256063c72b911d22390c59199c
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 29 18:07:25 2017 +0200
>
>     os: fix Readlink failure on AIX
>
>     AIX readlink routine returns an error if the link is longer
>     than the buffer, instead of truncating the link.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38700
>
>
> commit c93babbf48eddd0bc34d4179ffb302dc60087299
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 29 17:26:35 2017 +0200
>
>     compiler: implement support for reading AIX big archives
>
>     This is required to read go export from a Go library.
>
>     Code courtesy of Damien Bergamini from Atos Infogérance.
>
>     Issue golang/go#19200
>     Reviewed-on: https://go-review.googlesource.com/38698
>
>
> commit 930dd53482bdee3a9074850d168d0b9d7819c135
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Apr 6 18:50:11 2017 -0700
>
>     compiler: fix whether conversions are static initializers
>
>     The compiler was incorrectly treating type conversions from string to
>     int or vice-versa as static initializers.  That doesn't work, as those
>     conversions are implemented via a function call.
>
>     This case may never actually arise but it seems like the right thing to do.
>
>     Reviewed-on: https://go-review.googlesource.com/39872
>
>
> commit f02691e4195728dbf06f4dde0853c6bccc922183
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Apr 6 17:24:08 2017 -0700
>
>     compiler, runtime: don't let slices point past end of memory block
>
>     When Go code uses a slice expression like [:len(str)] or [:cap(slice)],
>     it's natural for the resulting pointer to point just past the end of
>     the memory block.  If the next memory block is not live, we now have a
>     live pointer to a dead block, which will unnecessarily keep the block
>     alive.  That wastes space, and with the new Go 1.8 GC (not yet
>     committed) will trigger an error when using GODEBUG=gccheckmark=1.
>
>     This changes the implementation of slice expressions to not move the
>     pointer if the resulting string length or slice capacity is 0.  When
>     the length/capacity is zero, the pointer is never used anyhow.
>
>     Reviewed-on: https://go-review.googlesource.com/39870
>
>
> commit 17527c35b027e1afcc318faf5563909e1e9d44a6
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Apr 6 15:30:11 2017 -0700
>
>     compiler: emit write barriers
>
>     The Go 1.8 concurrent GC requires optional write barriers for all
>     assignments that may change pointer values in the heap or in a global
>     variable.  For details see https://blog.golang.org/go15gc.
>
>     This changes the gofrontend code to emit write barriers as needed.
>     This is in preparation for future changes.  At the moment the write
>     barriers will do nothing.  They test runtime.writeBarrier.enabled,
>     which will never be non-zero.  They call simple functions which just
>     do a move without doing any of the other operations required by the
>     write barrier.
>
>     Reviewed-on: https://go-review.googlesource.com/39852
>
>
> commit c0b00f072bf34b2c288e1271ec8118b88c4f6f6f
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Tue Apr 11 17:47:29 2017 +0200
>
>     libgo: allow building gox files from PIC objects
>
>     libtool builds non-PIC objects in the same directory as .lo files
>     and PIC objects in a .libs subdirectory.
>     BUILDGOX rule uses the non-PIC objects to build the gox files,
>     but on AIX only the PIC objects are built.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/40355
>
>
> commit ea0f3da174c5503a209043f14ddda34871cfec52
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Apr 6 19:06:14 2017 -0700
>
>     compiler: add code to generate a ptrmask for a type
>
>     The Go 1.8 garbage collector uses a ptrmask for all types below a
>     certain size.  A ptrmask is simply a bit vector with a single bit for
>     each pointer-sized word in the value.  The bit is 1 if the type has a
>     pointer in that position, 0 if it does not.
>
>     This change adds code to the compiler to generate a ptrmask.  The code
>     is not used by anything yet, it is just compiled.  It will be used
>     when we switch over to the Go 1.8 garbage collector.
>
>     The new Array_type::int_length method, and the new memory_size
>     methods, will also be used by other patches coming later.
>
>     Reviewed-on: https://go-review.googlesource.com/39873
>
>
> commit 3029e1df3be3614d196a03c15e50e68ff850aa4c
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 7 10:31:39 2017 -0700
>
>     compiler: add code to generate a gcprog for a type
>
>     The Go 1.8 garbage collector uses a gcprog for all types above a
>     certain size.  A gcprog describes where the pointers are in the type,
>     using a simple bytecode machine that supports repeating bits.  The
>     effect is to permit using much less space to describe arrays.  The
>     format is described in runtime/mbitmap.go in the docs for runGCProg.
>     This is not yet added to the gofrontend, but can be seen in the gc sources.
>
>     This change adds code to the compiler to generate a gcprog.  The code
>     is not used by anything yet, it is just compiled.  It will be used
>     when we switch over to the Go 1.8 garbage collector.
>
>     Reviewed-on: https://go-review.googlesource.com/39923
>
>
> commit 8b01ef1e9176d20f4c9e667972fe031069a4d057
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Apr 13 07:00:35 2017 -0700
>
>     compiler: add ptrdata computations and expressions
>
>     For the upcoming Go 1.8 GC we need to compute the "ptrdata" of a type:
>     the number of bytes in the type that can contain pointers.  For types
>     that do not contain pointers this number is zero.  For many types it
>     is a number larger than zero but smaller than the total size of the
>     type.  The Go 1.8 GC uses this number to make loops looking for
>     pointers run faster by not scanning the suffix of a value that can not
>     contain a pointer.
>
>     Unfortunately there are two subtly different definitions of ptrdata,
>     and we need both.  The first is the simple one: the prefix that can
>     contain pointers.  The second is the number of bytes described by the
>     gcprog for the type.  Recall that we describe the exact position of
>     pointers in a type using either a ptrmask or a gcprog.  The ptrmask is
>     simpler, the gcprog uses less space.  We use the gcprog for large
>     types, currently defined as types that are more than 2048 bytes.  When
>     the Go 1.8 runtime expands a gcprog, it verifies that the gcprog
>     describes exactly the same number of bytes as the ptrdata field in the
>     type descriptor.  If the last pointer-containing portion of a type is
>     an array, and if the elements of the array have a ptrdata that is less
>     than the size of the element type, then the simple definition of the
>     ptrdata will not include the final non-pointer-containing bytes of the
>     last element of the array.  However, the gcprog will define the array
>     using a repeat count, and will therefore include the full size of the
>     last element of the array.  So for a type that needs a gcprog, the
>     ptrdata field in the type descriptor must be the size of the data
>     described by the gcprog, and that is not necessarily the same as the
>     simple ptrdata.
>
>     It might seem that we can always use the gcprog version of the ptrdata
>     calculation, since that is what will appear in a type descriptor, but
>     it turns out that for global variables we always use a ptrmask, not a
>     gcprog, even if the global variable is large.  This is because gcprogs
>     are handled by expanding them into a ptrmask at runtime, and for a
>     global variable there is no natural place to put the ptrmask.  Simpler
>     to always use the ptrmask.  That means that we need to describe the
>     size of the ptrmask, and that means that we need an expression for the
>     simple form of the ptrdata.
>
>     This CL implements the ptrdata calculation.  This code is not actually
>     used yet.  It will be used later when the Go 1.8 GC is committed.
>
>     Reviewed-on: https://go-review.googlesource.com/40573
>
>
> commit 7a37331303b572412179a08141f1dd35339d40c8
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 06:55:48 2017 -0700
>
>     compiler: zero length arrays never contain pointers
>
>     Reviewed-on: https://go-review.googlesource.com/40696
>
>
> commit c242f0508a64d3d74a28d498cbaeda785ff76258
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 07:26:54 2017 -0700
>
>     bytes: disable allocations test on gccgo
>
>     It turns out that testing.AllocsPerRun has not been producing correct
>     results with the current gccgo memory allocator.  When we update to
>     the Go 1.8 memory allocator, testing.AllocsPerRun will work again, and
>     this test will fail due to lack of escape analysis.
>
>     Reviewed-on: https://go-review.googlesource.com/40700
>
>
> commit 0dc369f1d63376a36bfb0999a1b0377fd444bfab
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Tue Apr 11 16:22:38 2017 +0200
>
>     os: alternative way to find executable path, using Args[0]
>
>     AIX does not provide a proper way to find the original
>     executable path from procfs, which contains just an
>     hardlink.
>     Executable path can be found using Args[0], Getcwd and
>     $PATH.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/40353
>
>
> commit f9bad1342569b338e3b2ea9f12ffc6d3d3fa3028
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 08:01:19 2017 -0700
>
>     compiler: don't write struct with multiple sink fields to C header file
>
>     When writing a struct to the C header file used by the C runtime code,
>     a single sink field is fine: it will be called "_", which is valid C.
>     There are structs with single sink fields that we want to write out,
>     such as finblock.  As it happens, though, the Go 1.8 runtime has a
>     struct with two sink fields, gcControllerState, which will produce a C
>     definition with two fields named "_", which will fail.  Since we don't
>     need to know that struct in C, rather than fix the general case, just
>     punt if the struct has multiple sink fields.
>
>     After the conversion to the Go 1.8 GC, we may be able to get rid of
>     the C header file anyhow.  I'm not sure yet.
>
>     Reviewed-on: https://go-review.googlesource.com/40701
>
>
> commit cfc28901a572aeb15b2f10a38f79eec04c64dfb2
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 10:07:23 2017 -0700
>
>     runtime: disable allocations test on gccgo
>
>     It turns out that testing.AllocsPerRun has not been producing correct
>     results with the current gccgo memory allocator.  When we update to
>     the Go 1.8 memory allocator, testing.AllocsPerRun will work again, and
>     these tests will fail due to lack of escape analysis.
>
>     Reviewed-on: https://go-review.googlesource.com/40703
>
>
> commit 36fedd76edaa48b9ec09709a70d9e4abaddf0caf
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 10:47:06 2017 -0700
>
>     runtime: remove unused size argument from hash/equal fns
>
>     The size argument was removed from hash and equal functions in CL
>     34983.  Somehow I missed removing them from three of the predefined
>     functions.
>
>     Reviewed-on: https://go-review.googlesource.com/40770
>
>
> commit 90f6accb48d2e78cad8955b9292933f6ce3fe4c8
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 13:23:05 2017 -0700
>
>     runtime: remove unused stack.go
>
>     We're never going to use stack.go for gccgo.  Although a build tag
>     keeps it from being built, even having it around can be confusing.
>     Remove it.
>
>     Reviewed-on: https://go-review.googlesource.com/40774
>
>
> commit befa71603fc66a214e01ac219f2bba36e19f136f
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 13:18:34 2017 -0700
>
>     runtime: build fastlog
>
>     Take out the build tags which were preventing fastlog2 from being
>     built.  It's used by the upcoming Go 1.8 GC.
>
>     Reviewed-on: https://go-review.googlesource.com/40773
>
>
> commit b7e19e9be4ab4c3cd8f4c9506d79a8cd56bace40
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Fri Apr 14 10:04:23 2017 -0700
>
>     runtime: add tests from Go 1.8
>
>     Some runtime package tests never made it into the gofrontend repo for
>     some reason.  Add them now.
>     Reviewed-on: https://go-review.googlesource.com/40869
>
>
> commit 1feef185aebd71bc2a09b9a04287461806096610
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Mon Apr 17 16:26:11 2017 -0700
>
>     runtime: change mcall to take a Go function value
>
>     For future work in bringing in the Go 1.8 GC, change the mcall
>     function to take a Go function value, which means that mcall can take
>     a closure rather than just a straight C function pointer.
>
>     As part of this change move kickoff from C to Go, which we want to do
>     anyhow so that we run the write barriers that it generates.
>
>     Reviewed-on: https://go-review.googlesource.com/40935
>
>
> commit c3db34f4efc2d610f74a01dd2ad7775f48889b29
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Tue Apr 11 16:11:26 2017 +0200
>
>     runtime: netpoll implementation for AIX
>
>     Code courtesy of Damien Bergamini from Atos Infogérance.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/40352
>
>
> commit f5634dff40e53ad9ce61afd67fd07334e3af9d1f
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Tue Apr 18 22:06:07 2017 -0700
>
>     runtime: move mstart from Go to C
>
>     The assignments done in mstart must be done without write barriers, as
>     mstart is running without an m or p.  In the gc toolchain the
>     equivalent code to intialize g and g->m is written in assembler;
>     on GNU/Linux, it's in the clone function.
>
>     Reviewed-on: https://go-review.googlesource.com/40989
>
>
> commit 671d7c74592f4b6fe3665af279482ba0ea47ca2d
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Tue Apr 18 17:47:28 2017 -0700
>
>     compiler: varargs slices do not escape in runtime
>
>     Also, don't try to allocate an empty slice on the stack, as it will
>     confuse the GCC backend.
>
>     Also add a few trivial style, code formatting, and debug output fixes.
>
>     Updates golang/go#17431
>
>     Reviewed-on: https://go-review.googlesource.com/40983
>
>
> commit 94699d25f31353bf03419eda56b15993a39f3275
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Tue Apr 18 17:30:09 2017 -0700
>
>     compiler: add Ptrmask_symbol_expression
>
>     Add an expression to evaluate to the ptrmask for a type.  This will be
>     used for global variables, which always use a ptrmask no matter how
>     large they are.
>
>     Reviewed-on: https://go-review.googlesource.com/40981
>
>
> commit bfff1654eac5b9288fa6c431e66cba8c9da6a660
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Mon Apr 17 10:51:16 2017 -0700
>
>     runtime: change g's in systemstack
>
>     The systemstack function in the gc toolchain changes to a different g.
>     This is often used to get more stack space; the gofrontend uses a
>     different stack growth mechanism that does not require changing g's,
>     so we've been running with a version of systemstack that keeps the
>     same g.  However, the garbage collector has various tests to verify
>     that it is running on g0 rather than on a normal g.  For simplicity,
>     change the gofrontend version of systemstack to change to a different
>     g just as the gc toolchain does.
>
>     This permits us to uncomment some sanity checks in notetsleep.
>     Doing that requires us to fix up a couple of places where C code calls
>     {start,stop}TheWorldWithSema while not on g0.
>
>     Note that this does slow down some code in the runtime package
> unnecessarily.
>     It may be useful to find some places where the runtime calls
>     systemstack only to get more stack space and change it to use some
>     other function.  That other function would act like systemstack in the
>     gc toolchain but simply call the argument in the gofrontend.
>
>     Reviewed-on: https://go-review.googlesource.com/40973
>
>
> commit b2ccc7601ce71a7c5732154cf9b2eeea64681469
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 10:36:12 2017 -0700
>
>     compiler, runtime: include ptrmask in GC roots
>
>     Change the list of registered GC roots to include a ptrmask,
>     and change the data structures to be easily used from Go code.
>     The new ptrmask will be used by the Go 1.8 GC to only scan pointers.
>     Tweak the current GC to use the new structures, but ignore the new
>     ptrmask information for now.
>
>     The new GC root data includes the size of the variable.  The size is
>     not currently used, but will be used later by the cgo checking code.
>
>     Reviewed-on: https://go-review.googlesource.com/41075
>
>
> commit 9e065149970bc180e4ca83bb99c74d9c4f43b47b
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 12:23:16 2017 -0700
>
>     compiler, runtime: don't pass size to __go_new
>
>     There is no reason to pass the size to __go_new, as the type
>     descriptor includes the size anyhow.  This makes the function
>     correspond to the Go 1.8 function runtime.newobject, which is what we
>     will use when we update to the Go 1.8 memory allocator.
>
>     Reviewed-on: https://go-review.googlesource.com/41080
>
>
> commit c321de7b738c4a3387c1842919c9305acfa04c57
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 13:13:56 2017 -0700
>
>     compiler, runtime, reflect: make type descriptors more like Go 1.8
>
>     Change the type descriptor structure to be more like the one in the Go
>     1.8 runtime.  Specifically we add the ptrdata field, rename the gc
>     field to gcdata and change the type to *byte, and rearrange a few of
>     the fields.  The structure is still not identical to the Go 1.8
>     structure--we don't use any of the tricks to reduce overall executable
>     size--but it is more similar.
>
>     For now we don't use the new ptrdata field, and the gcdata field is
>     still the old format rather than the new Go 1.8 ptrmask/gcprog format.
>
>     Reviewed-on: https://go-review.googlesource.com/41081
>
>
> commit 7b70c52cddeebea9ebeac003f8c6aad59497e5f0
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 14:54:29 2017 -0700
>
>     reflect: make sure to clear unusable hash/equal function
>
>     Otherwise we wind up copying the one from the prototype, which is wrong.
>
>     Also rewrite the hash/equal functions to look like the ones in Go 1.8,
>     mainly a matter of changing names and using arrayAt.
>
>     Reviewed-on: https://go-review.googlesource.com/41133
>
>
> commit 84d26f467f7de8bdbb0d230458135fe1b6b2a99d
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 14:59:13 2017 -0700
>
>     runtime: remove duplicate declarations of SetFinalizer/KeepAlive
>
>     These should have been removed in CL 38794.  It's a bug that the
>     compiler even permits these duplicate declarations.
>
>     Reviewed-on: https://go-review.googlesource.com/41134
>
>
> commit f85ff7e64c24031f6d0bd7c9c426b6176cb95160
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 15:56:32 2017 -0700
>
>     runtime: don't crash if panicstring called with no m
>
>     It's possible for runtime_panicstring to be called with no m if a
>     signal handler, or scheduler innards, do something wrong.  If that
>     happens carry on with the panic rather than crashing.
>
>     Reviewed-on: https://go-review.googlesource.com/41137
>
>
> commit 5b362b04f642afb8b20715930416fc3b7d91bb12
> Author: Than McIntosh <thanm@google.com>
> Date:   Fri Mar 31 14:35:48 2017 -0400
>
>     compiler: fix for expr sharing introduced by Order_eval::statement.
>
>     When processing an expression statement with a top-level call
>     that returns multiple results, Order_eval::statement can wind up
>     creating a tree that has multiple references to the same call,
>     which results in a confusing AST dump. Change the implementation
>     to avoid introducing this unwanted sharing.
>
>     Reviewed-on: https://go-review.googlesource.com/39210
>
>
> commit b05b4260a68695bf9c9cc29e14ae86ca2699458a
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 16:00:28 2017 -0700
>
>     runtime: restore correct m in gtraceback
>
>     If gtraceback is used to get a stack trace of a g running in the same m,
>     as can happen if we collect a stack trace from a g0, then restore the
>     old m value, don't clear it.
>
>     Reviewed-on: https://go-review.googlesource.com/41138
>
>
> commit ca8bbf4dfac19b3f4f7ce21a688b96a418c75031
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 16:03:24 2017 -0700
>
>     runtime: set startpc field when starting a new goroutine
>
>     This puts the right value in a trace--previously it was always zero.
>
>     Reviewed-on: https://go-review.googlesource.com/41139
>
>
> commit ca8bbf4dfac19b3f4f7ce21a688b96a418c75031
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 16:03:24 2017 -0700
>
>     runtime: set startpc field when starting a new goroutine
>
>     This puts the right value in a trace--previously it was always zero.
>
>     Reviewed-on: https://go-review.googlesource.com/41139
>
>
> commit 887690dce42d7bf8f711f8ea082e4928fb70f2a5
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 17:06:11 2017 -0700
>
>     runtime: add prefetch functions
>
>     The Go 1.8 GC uses prefetch functions.  Add versions for gccgo that
>     call __builtin_prefetch.  Uncomment the test for them in testAtomic64.
>     Don't force the check function to return early, as now taking the
>     address of a local variable in the runtime package does not force it
>     onto the heap.
>
>     Reviewed-on: https://go-review.googlesource.com/41144
>
>
> commit 4269db69f9184e5a45c54aaee7352425a1f88bff
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 17:55:21 2017 -0700
>
>     runtime: split up ticks to get correct alignment
>
>     On 32-bit x86 a uint64 variable by itself is aligned to an 8-byte boundary.
>     A uint64 field in a struct is aligned to a 4-byte boundary.
>     The runtime.ticks variable has a uint64 field that must be aligned
>     to an 8-byte boundary.  Rather than rely on luck, split up the struct
>     into separate vars so that the required alignment happens reliably.
>
>     It would be much nicer if issue golang/go#19057 were fixed somehow,
>     but that is for another day.
>
>     Reviewed-on: https://go-review.googlesource.com/41143
>
>
> commit 66926cabdbdbf3431b4f172f7756e195c1c6c513
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Apr 20 17:15:38 2017 +0200
>
>     libgo: fix bad value for O_CLOEXEC on AIX 7.1
>
>     On AIX 7.1, O_CLOEXEC is defined as 0x0000001000000000, which
>     creates an integer constant overflow error when building libgo.
>
>     This affects only 7.1, O_CLOEXEC is not defined on 6.1 (and
>     defaults to O in sysinfo.go) and is defined as 0x00800000 on
>     AIX 7.2.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/41214
>
>
> commit af288ff10aeafc47651f5def327ed56425d5be19
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Thu Apr 20 17:15:02 2017 -0700
>
>     runtime: preserve stack context in tracebackothers
>
>     The tracebackothers function works by saving the current stack context
>     in the goroutine's context field and then calling gogo to switch to a
>     new goroutine.  The new goroutine will collect its own stack trace and
>     then call gogo to switch back to the original goroutine.  This works
>     fine, but if the original goroutine was called by mcall then the
>     contents of its context field are needed to return from the mcall.
>     Fix this by saving the stack context across the calls to the other
>     goroutines.
>
>     Reviewed-on: https://go-review.googlesource.com/41293
>
>
> commit 43101e5956e793f1b4de05c15d7738c785e927df
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Apr 21 10:58:52 2017 +0200
>
>     os/user: use _posix_* libc functions
>
>     libc getpwnam_r function has a different signature, we must use
>     _posix_getpwnam_r instead (by default, the pwd.h system include
>      file defines getpwnam_r as a static function calling
>     _posix_getpwnam_r, so a C program calling getpwnam_r will indeed
>     reference the _posix_getpwnam_r symbol).
>
>     Idem for getpwuid_r, getgrnam_r and getgrgid_r.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/41334
>
>
> commit 71e1fec4d2a536591ea6657a06916a17b5127071
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Apr 19 21:24:48 2017 -0700
>
>     runtime: don't use pointers in g_ucontext_t or stackcontext
>
>     The g_ucontext_t type holds registers saved for a goroutine.  We have
>     to scan it for pointers, but since registers don't necessarily hold
>     pointers we have to scan it conservatively.  That means that it should
>     not have a pointer type, since the GC will always scan pointers.
>     Instead it needs special treatment to be scanned conservatively.
>     The current GC doesn't care when a pointer type holds a non-pointer,
>     but the Go 1.8 GC does.
>
>     For the current GC this means we have to explicitly scan the
>     g_ucontext_t values in a G.
>
>     While we're at it change stackcontext to be uintptr too.  The entries
>     in stackcontext never hold pointers that the Go GC cares about.
>
>     Reviewed-on: https://go-review.googlesource.com/41270
>
>
> 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
>
>
> commit be4a751943265c0637da859d15a4faf162f5c478
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Thu Apr 20 14:04:35 2017 +0200
>
>     net: sockopt implementation for AIX
>
>     This is a copy of the Linux implementation, it allows to
>     run some simple client/server applications on AIX, while
>     the current sockopt stubs don't.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/41213
>
>
> commit 46a669c4ca5b80fd6f6a0a42095804d9f704611d
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Mar 29 17:55:06 2017 +0200
>
>     math: fix sign for atan/expm1/log1p(-0)
>
>     AIX libc returns +0 for atan(-0), expm1(-0) and log1p(-0),
>     while matching Go functions must return -0.
>
>     Code courtesy of Tony Reix.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/38699
>
>
> commit 53b0e809130038a46f0a3d2870e3905f44ab888d
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Apr 26 17:29:22 2017 +0200
>
>     runtime: fix context clobbering on AIX
>
>     On AIX 64-bits, r13 is a pointer to thread data.
>     setcontext() overwrites r13 with the value saved by getcontext().
>     So, when a goroutine is scheduled on a new thread, r13 will point
>     to the old thread data after calling setcontext().
>
>     Code courtesy of Damien Bergamini.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/41854
>
>
> commit f8d5ebd71c71e6e777200530d8204b92619157f8
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Wed Apr 26 18:01:19 2017 +0200
>
>     runtime: fix wrong time calculation in semasleep
>
>     tv_nsec is added twice when calculating the sleep end time.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/41855
>
>
> commit ef56097f4ea848d48fbf61eba1c757fe7fce99d3
> Author: Matthieu Sarter <matthieu.sarter.external@atos.net>
> Date:   Fri Apr 28 10:27:32 2017 +0200
>
>     libgo: pass $(NM) value when running benchmarks
>
>     On AIX, we need to use "nm -B" instead of "nm", to have the
>     epxected output format, so the configured $(NM) value from
>     the Makefile should be exported before running gotest, which
>     defaults to "nm" if $NM is not set.
>
>     Issue golang/go#19200
>
>     Reviewed-on: https://go-review.googlesource.com/42051
>
>
> commit 0fb550083ae474fb964435927b899ec8e4b62771
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Wed Nov 16 21:12:53 2016 -0800
>
>     runtime: copy garbage collector from Go 1.8 runtime
>
>     This giant patch replaces the old Go 1.4 memory allocator and garbage
>     collector with the new Go 1.8 code.  The memory allocator is fairly
>     similar, though now written in Go rather than C.  The garbage
>     collector is completely different.  It now uses ptrmask and gcprog
>     information, which requires changes in the compiler and the reflect
>     package as well as the runtime.  And, of course, the garbage collector
>     now runs concurrently with program execution.
>
>     In the gc toolchain the garbage collector is strict and precise at all
>     levels.  In the gofrontend we do not have stack maps, so stacks, and
>     register values, are collected conservatively.  That means that an
>     old, no longer used, pointer on a stack or in a register can cause a
>     memory object to live longer than it should.  That in turns means that
>     we must disable some checks for invalid pointers in the garbage
>     collection code.  Not only can we get an invalid pointer on the stack;
>     the concurrent nature of the collector means that we can in effect
>     resurrect a block that was already unmarked but that the collector had
>     not yet gotten around to freeing, and that block can in turn point to
>     other blocks that the collector had managed to already free.  So we
>     must disable pointer checks in general.  In effect we are relying on
>     the fact that the strict pointer checks in the gc toolchain ensure
>     that the garbage collector is correct, and we just assume that it is
>     correct for the gofrontend since we are using the same code.
>
>     Reviewed-on: https://go-review.googlesource.com/41307
>
>
> commit a95078d501175240d095500a8c5fbfb21bec65cb
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Mon Apr 24 16:33:47 2017 -0700
>
>     libgo/Makefile: clean more files
>
>     Fix up the mostlyclean, clean, and distclean targets to better follow
>     https://www.gnu.org/prep/standards/html_node/Standard-Targets.html.
>
>     Reviewed-on: https://go-review.googlesource.com/41625
>
>
> commit 5956bf1055451cf4239cdfeca259c23b1ded54d8
> Author: Ian Lance Taylor <iant@golang.org>
> Date:   Mon May 8 13:35:11 2017 -0700
>
>     libgo: delete goc2c
>
>     The last .goc file has been removed, so remove goc2c.
>
>     The goc2c program was my first contribution to the gc repository that
>     was more than 100 lines:
>     https://github.com/golang/go/commit/2b57a1124e87b0dc8bc1ff6899297b4d7d6e74f2
>     The program was used in gc for a few years under various guises but
>     was finally removed in https://golang.org/cl/132680043.  Now we can
>     remove it from gofrontend as well.
>
>     Reviewed-on: https://go-review.googlesource.com/42911
>
>
> commit a222e35d041de0cd42506b61c93b8209e07702b9
> Author: Than McIntosh <thanm@google.com>
> Date:   Tue May 9 10:33:10 2017 -0400
>
>     compiler: set "need_init_fn" when adding gc root
>
>     Variables that back slice initializers in certain cases have to be
>     added to the gc roots list, since they can be modified at runtime. The
>     code that was doing this addition did not update the flag that tracks
>     whether the package being compiled needs an initializer function,
>     which resulted in the call in question being left out of the final
>     generated code in certain cases. Fix is to change Gogo::add_gc_root()
>     to update the "needs init" flag.
>
>     Reviewed-on: https://go-review.googlesource.com/43030
>
>
> commit 822ab419bf7d1c705cdce1c12133e7a11f56be2e
> Author: Than McIntosh <thanm@google.com>
> Date:   Tue May 9 11:36:51 2017 -0400
>
>     compiler: fix variable context nit in write barrier generation
>
>     Update the write barrier generation code to insure that the "lvalue
>     context" tag on the space var expression is set only in the case where
>     the expr feeds directly into an assignment. This is somewhat
>     counter-intuitive, but needed in the case where the backend looks at
>     context tags.
>
>     Reviewed-on: https://go-review.googlesource.com/43031

  reply	other threads:[~2017-05-11  0:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-10 17:51 Ian Lance Taylor
2017-05-11  0:42 ` Andrew Pinski [this message]
2017-05-11  4:46   ` Andrew Pinski
2017-05-12 12:54   ` Ian Lance Taylor
2017-05-11  8:47 ` Andreas Schwab
2017-05-12 10:27 ` Thomas Schwinge
2017-05-12 12:57   ` Ian Lance Taylor
     [not found]     ` <93ec9abf-da6c-4e10-9c46-daddba5d52d3@googlegroups.com>
2017-05-30 14:29       ` [gofrontend-dev] " Ian Lance Taylor
2017-05-11  7:31 Uros Bizjak
2017-05-11 21:29 ` Rainer Orth

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='CA+=Sn1=9TZX8kuK=TgoossPd+N4hq-dCKm6jPfz19GZuM7oDxg@mail.gmail.com' \
    --to=apinski@cavium.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gofrontend-dev@googlegroups.com \
    --cc=iant@golang.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).