Age | Commit message (Collapse) | Author | Files | Lines |
|
Patch from Svante Signell.
PR go/103573
PR go/104290
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386216
|
|
Add build tags and a few other changes so that libgo builds on Solaris.
Patch partially from Rainer Orth.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386215
|
|
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
|
|
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
|
|
The Go 1.18 standard library uses an internal/abi package with two
functions that are implemented in the compiler. This patch implements
them in the gofrontend, to support the upcoming update to 1.18.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/383514
|
|
* `-Werror` can cause issues when a more recent version of GCC compiles
an older version:
- https://bugs.gentoo.org/229059
- https://bugs.gentoo.org/475350
- https://bugs.gentoo.org/667104
libatomic/ChangeLog:
* configure.ac: Support --disable-werror.
* configure: Regenerate.
libbacktrace/ChangeLog:
* configure.ac: Support --disable-werror.
* configure: Regenerate.
libgomp/ChangeLog:
* configure.ac: Support --disable-werror.
* configure: Regenerate.
libitm/ChangeLog:
* configure.ac: Support --disable-werror.
* configure: Regenerate.
libsanitizer/ChangeLog:
* configure.ac: Support --disable-werror.
* aclocal.m4: Include also ../config/warnings.m4.
* libbacktrace/Makefile.am (WARN_FLAGS): Remove.
* configure: Regenerate.
* Makefile.in: Regenerate.
* asan/Makefile.in: Regenerate.
* hwasan/Makefile.in: Regenerate.
* interception/Makefile.in: Regenerate.
* libbacktrace/Makefile.in: Regenerate.
* lsan/Makefile.in: Regenerate.
* sanitizer_common/Makefile.in: Regenerate.
* tsan/Makefile.in: Regenerate.
* ubsan/Makefile.in: Regenerate.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
|
|
Fixes https://gcc.gnu.org/PR104149
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/380054
|
|
Change the compiler to not add zero padding because of zero-sized
fields named "_", since those can't be referenced anyhow.
Change the sparc-linux64 epollevent struct to name the alignment
field "_", to avoid zero padding.
Fixes PR go/103847
PR go/103847
* godump.c (go_force_record_alignment): Name the alignment
field "_".
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/374914
|
|
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.
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/350414
|
|
Fixes PR go/102102
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/348015
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/343729
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/342189
|
|
Didn't notice earlier because this code is only used on systems that
do not support -fsplit-stack.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/342051
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
|
|
|
|
This is the gofrontend version of https://golang.org/cl/264480.
For golang/go#42076
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/340609
|
|
This is the gofrontend version of https://golang.org/cl/289152.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/339690
|
|
The only different between selectnbrecv and selectnbrecv2 is the later
set the input pointer value by second return value from chanrecv.
So by making selectnbrecv return two values from chanrecv, we can get
rid of selectnbrecv2, the compiler can now call only selectnbrecv and
generate simpler code.
This is the gofrontend version of https://golang.org/cl/292890.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/339529
|
|
Panic if the slice is too short.
For golang/go#395
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/338630
|
|
For golang/go#19367
For golang/go#40481
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/338949
|
|
PR bootstrap/101374
They cause a warning with the updated GCC -Warray-bounds option.
Replace them with calls to abort, which for our purposes is fine.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/333409
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/326772
|
|
Change-Id: I12766baf02bfdf2233f1c5bde1a270f06b020aa7
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/321076
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
|
|
|
|
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/309490
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/301459
|
|
Backport of https://golang.org/cl/300993.
For PR go/99553
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/301458
|
|
In newer versions of glibc it is long, which causes a signed
comparison warning.
Fixes PR go/99458
|
|
Go requires that pointer moves are done 8 bytes at a time,
but gccgo uses libc's memmove and memset which does not require
that, and there are some cases where an 8 byte move might be
done as 4+4.
To enforce 8 byte moves for memmove and memset, this adds a
C implementation in libgo/runtime for memmove and memset to be
used on ppc64le and ppc64. Asm implementations were considered
but discarded to avoid different implementations for different
target ISAs.
Fixes golang/go#41428
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/294931
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/293793
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/289069
|
|
Directly set getsystemcfg as //extern in internal/cpu instead of
trying to use the runtime as in Go toolchain.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287932
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287493
|
|
Patch from Svante Signell.
Fixes PR go/98496
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/283692
|
|
On powerpc64le, this caused a failure in TestUnshareUidGidMapping
due to stack corruption which resulted in a bogus execve syscall.
Use the existing c wrapper to ensure we respect the ppc abi for
variadic functions.
Fixes PR go/98610
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/282717
|
|
ChangeLog:
* libtool.m4: Match gnu* along other GNU systems.
* libgo/config/libtool.m4: Match gnu* along other GNU systems.
* libgo/configure: Re-generate.
libffi/
* configure: Re-generate.
libgomp/
* configure: Re-generate.
gcc/
* configure: Re-generate.
libatomic/
* configure: Re-generate.
libbacktrace/
* configure: Re-generate.
libcc1/
* configure: Re-generate.
libgfortran/
* configure: Re-generate.
libgomp/
* configure: Re-generate.
libhsail-rt/
* configure: Re-generate.
libitm/
* configure: Re-generate.
libobjc/
* configure: Re-generate.
liboffloadmic/
* configure: Re-generate.
* plugin/configure: Re-generate.
libphobos/
* configure: Re-generate.
libquadmath/
* configure: Re-generate.
libsanitizer/
* configure: Re-generate.
libssp/
* configure: Re-generate.
libstdc++-v3/
* configure: Re-generate.
libvtv/
* configure: Re-generate.
lto-plugin/
* configure: Re-generate.
zlib/
* configure: Re-generate.
|
|
We don't use them, since we always call the C library functions which do
the right thing anyhow. And they aren't defined on all GNU/Linux variants.
Fixes PR go/98510
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281473
|
|
Some files were missing from the libgo copy of internal/cpu, because they
used to only declare CacheLinePadSize which libgo gets from goarch.sh.
Now they also declare doinit, so copy them over. Adjust cpu_other.go.
Fix the amd64p32 build by adding a build constraint to cpu_no_name.go.
Fixes PR go/98493
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281472
|
|
Patch from Andreas Schwab.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281000
|
|
In libgo it's referenced from os_gccgo.go on all platforms.
Fixes go/98496
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280999
|
|
Add support (mostly dummy support) for GOARCH values supported by
gofrontend but not gc. Fix PPC handling.
Fixes https://gcc.gnu.org/PR98493
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280932
|
|
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
|
|
This is the gofrontend version of https://golang.org/cl/245125.
Original CL description:
Currently, we include a "kind" field on scase to distinguish the three
kinds of cases in a select statement: sends, receives, and defaults.
This commit removes by kind field by instead arranging for the
compiler to always place sends before receives, and to provide their
counts separately. It also passes an explicit "block bool" parameter
to avoid needing to include a default case in the array.
It's safe to shuffle cases like this because the runtime will
randomize the order they're polled in anyway.
For golang/go#40410.
This is being brought over to gofrontend as a step toward upgrading to
Go1.16beta1.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279735
|
|
This is the gofrontend version of https://golang.org/cl/245019.
Original CL description:
The current wakeup protocol for channel communications is that the
second goroutine sets gp.param to the sudog when a value is
successfully communicated over the channel, and to nil when the wakeup
is due to closing the channel.
Setting nil to indicate channel closure works okay for chansend and
chanrecv, because they're only communicating with one channel, so they
know it must be the channel that was closed. However, it means
selectgo has to re-poll all of the channels to figure out which one
was closed.
This commit adds a "success" field to sudog, and changes the wakeup
protocol to always set gp.param to sg, and to use sg.success to
indicate successful communication vs channel closure.
While here, this also reorganizes the chansend code slightly so that
the sudog is still released to the pool if the send blocks and then is
awoken because the channel closed.
For golang/go#40410
This is being brought over to gofrontend as a step toward upgrading to
Go1.16beta1, setting up for more compiler changes related to select handling.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279734
|
|
This is the gofrontend version of https://golang.org/cl/245123.
Original CL description:
Currently, selectgo does an initial pass over the cases array to look
for entries with nil channels, so they can be easily recognized and
skipped later on. But this still involves actually visiting the cases.
This commit changes selectgo to omit cases with nil channels when
constructing pollorder, so that they'll be skipped over entirely later
on. It also checks for caseDefault up front, which will facilitate
changing it to use a "block bool" parameter instead.
Updates golang/go#40410
This is being brought over to gofrontend as a step toward upgrading to
Go1.16beta1, setting up for more compiler changes related to select handling.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279733
|
|
This is the gofrontend version of https://golang.org/cl/245122.
Original CL description:
selectgo will report at most one block event, so there's no need to
keep a releasetime for every select case. It suffices to simply track
the releasetime of the case responsible for the wakeup.
Updates golang/go#40410.
This is being brought over to gofrontend as a step toward upgrading to
Go1.16beta1.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/279732
|
|
The -fdump-go-spec flag to GCC recently changed to be more fastidious
about handling incomplete types. This caused some breakage in
mk[r]sysinfo.sh on Solaris. This commit adjusts for the new behavior.
Specifically:
* Types that refer to _in6_addr may be hidden behind a typedef and can
no longer be filtered out with `grep -v in6_addr`. Instead just
rewrite the definition of _in6_addr to [16]byte wherever it appears.
* timestruc_t is now (correctly) emitted as an alias for timespec, so this
case is handled specially.
* stdio.h is included in sysinfo.c to avoid emitting an incomplete
definition of the FILE type.
* Dummy definitions for _u?pad128_t are now emitted automatically,
which conflict with the definitions installed by mk[r]sysinfo.sh.
These definitions were actually dead code, so just remove them.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278672
|
|
Adjust mksysinfo and mkrsysinfo to strip out floating-point max numbers,
as they can trigger this error.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278476
|