aboutsummaryrefslogtreecommitdiff
path: root/libgo
AgeCommit message (Collapse)AuthorFilesLines
2021-05-18libgo: update configure to current sourcesIan Lance Taylor1-2/+2
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>
2021-05-18libgo: update bzip2 binary test cases to match source repoIan Lance Taylor2-0/+0
2021-05-18libgo: use Windows line endings in testwinsignalIan Lance Taylor1-19/+19
2021-04-12libgo: update to Go1.16.3 releaseIan Lance Taylor20-67/+354
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/309490
2021-03-15libgo: update to Go 1.16.2 releaseIan Lance Taylor32-191/+509
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/301459
2021-03-12misc/cgo/testcarchive: don't use == for string equality in C codeIan Lance Taylor1-1/+1
Backport of https://golang.org/cl/300993. For PR go/99553 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/301458
2021-03-08runtime: cast SIGSTKSZ to uintptrIan Lance Taylor1-2/+2
In newer versions of glibc it is long, which causes a signed comparison warning. Fixes PR go/99458
2021-02-25libgo: ensure memmove, memset 8 byte atomicity on ppc64xLynn Boger6-6/+143
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
2021-02-19libgo: update to Go1.16 releaseIan Lance Taylor38-81/+434
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/293793
2021-02-03libgo: install new 1.16 packagesIan Lance Taylor2-17/+60
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/289069
2021-01-29internal/cpu: correctly link to getsystemcfgClément Chigot2-4/+1
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
2021-01-29libgo: update to Go1.16rc1Ian Lance Taylor187-10091/+10352
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287493
2021-01-14libgo: update hurd supportIan Lance Taylor7-14/+20
Patch from Svante Signell. Fixes PR go/98496 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/283692
2021-01-12syscall: ensure openat uses variadic libc wrapperPaul E. Murphy1-1/+1
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
2021-01-05Update GNU/Hurd configure supportSamuel Thibault2-22/+2
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.
2021-01-05syscall: don't define sys_SETREUID and friendsIan Lance Taylor2-12/+0
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
2021-01-05internal/cpu: more build fixes for Go1.16beta1 releaseIan Lance Taylor9-0/+63
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
2021-01-01internal/cpu: add aarch64 support functionsIan Lance Taylor1-0/+26
Patch from Andreas Schwab. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281000
2021-01-01runtime: move startupRandomData back to runtime2.goIan Lance Taylor2-4/+4
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
2021-01-01internal/cpu, golang.org/x/sys/cpu: support other GOARCH valuesIan Lance Taylor9-48/+77
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
2020-12-30libgo: update to Go1.16beta1 releaseIan Lance Taylor1186-30816/+67381
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
2020-12-22runtime: eliminate scase.kind fieldIan Lance Taylor1-40/+53
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
2020-12-22runtime: add "success" field to sudogIan Lance Taylor3-22/+28
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
2020-12-22runtime: omit nil-channel cases from selectgo's ordersIan Lance Taylor1-40/+28
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
2020-12-22runtime: remove scase.releasetime fieldIan Lance Taylor1-12/+9
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
2020-12-20libgo: adjust sysinfo scripts for changed -fdump-go-specNikhil Benesch3-91/+21
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
2020-12-18compiler: check for floating-point exponent overflowIan Lance Taylor2-0/+2
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
2020-12-08libgo: update to 1.15.6 releaseIan Lance Taylor10-20/+201
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/276153
2020-12-07syscall: don't use AF_LINK on hurdIan Lance Taylor2-1/+102
Patch from Svante Signell. Fixes PR go/98153 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/275939
2020-12-04runtime: update type descriptor name in fieldtrack C support codeIan Lance Taylor1-1/+1
We were using the old name, but nothing noticed because it is a weak reference that is permitted to be nil, so that it works with code that does not use the field tracking library. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/275449
2020-12-03compiler: defer to middle-end for complex divisionIan Lance Taylor3-60/+5
Go used to use slightly different semantics than C99 for complex division, so we used runtime routines to handle the different. The gc compiler has changes its behavior to match C99, so changes ours as well. For golang/go#14644 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/274213
2020-11-30internal/cpu: don't define CacheLinePadSize for mips64xIan Lance Taylor1-2/+0
For libgo the definition comes from the generated file cpugen.go. Fixes PR go/98041 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273866
2020-11-30compiler, runtime: check len/cap for append(s, make(T, l)...)Ian Lance Taylor1-2/+9
The overflow checks done in growslice always reported an error for the capacity argument, even if it was the length argument that overflowed. This change lets the code pass the current issue4085b.go test. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273806
2020-11-30libgo: define SO_RCVTIMEO on 32-bit GNU/LinuxIan Lance Taylor2-0/+12
Fixes golang/go#42872 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273892
2020-11-23log/syslog: correct asm name for C functionIan Lance Taylor1-1/+1
Patch from Rainer Orth. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/272259
2020-11-20libgo: update to Go 1.15.5 releaseIan Lance Taylor8-7/+311
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/272146
2020-11-20compiler, libgo: change mangling schemeIan Lance Taylor45-231/+341
Overhaul the mangling scheme to avoid ambiguities if the package path contains a dot. Instead of using dot both to separate components and to mangle characters, use dot only to separate components and use underscore to mangle characters. For golang/go#41862 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/271726
2020-11-17cmd/go, cmd/cgo: update gofrontend mangling checksIan Lance Taylor7-130/+275
This is a port of two patches in the master repository. https://golang.org/cl/259298 cmd/cgo: split gofrontend mangling checks into cmd/internal/pkgpath This is a step toward porting https://golang.org/cl/219817 from the gofrontend repo to the main repo. Note that this also corrects the implementation of the v2 mangling scheme to use ..u and ..U where appropriate. https://golang.org/cl/259299 cmd/go: use cmd/internal/pkgpath for gccgo pkgpath symbol For golang/go#37272 For golang/go#41862 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/270637
2020-11-10libgo: update to Go 1.15.4 releaseIan Lance Taylor16-28/+266
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/268177
2020-10-28libgo: handle linking to NetBSD's versioned symbolsNikhil Benesch15-34/+197
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
2020-10-28syscall: don't build libcall_bsd.go on solarisIan Lance Taylor1-1/+1
This new file was based on master sources that are built for *BSD but not Solaris Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/266017
2020-10-27libgo: update to Go 1.15.3 releaseIan Lance Taylor26-187/+365
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265717
2020-10-27compiler, go/internal/gccgoimporter: export notinheap annotationIan Lance Taylor1-0/+7
This is the gofrontend version of https://golang.org/cl/259297. This is required now because that change is in the 1.15.3 release. This requires changing the go/internal/gccgoimporter package, to skip the new annotation. This change will need to be ported to the gc and x/tools repos. For golang/go#41761 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265258
2020-10-26syscall: import additional BSD-specific syscall wrappersNikhil Benesch2-0/+141
Import additional code from upstream for handing system calls on BSD systems. This makes the syscall package on NetBSD complete enough to compile the standard library. Updates golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265123
2020-10-23net/http/cgi: merge upstream changes to default env varsNikhil Benesch1-3/+3
Incorporate upstream modifications to the cgi package's set of rules about which environment variables should be inherited by child processes by default on each platform. In particular this permits tests to pass on NetBSD by preserving the value of the LD_LIBRARY_PATH environment variable. This is a partial backport of the following upstream CLs: https://golang.org/cl/263802 https://golang.org/cl/263577 https://golang.org/cl/254740 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/264097
2020-10-21syscall: only compile ptrace varargs shim on LinuxNikhil Benesch13-18/+17
Only compile the __go_ptrace varargs shim on Linux to avoid compilation failures on some other platforms. The C ptrace function is not entirely portable (e.g., NetBSD has `int data` instead of `void* data`), and so far Linux is the only platform that needs the varargs shim. Additionally, make the types in the ptrace and raw_ptrace function declarations match. This makes it more clear that the only difference between the two is that calls via the former are allowed to block while calls via the latter are not. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263517
2020-10-21syscall: import upstream code for BSD sockets and sysctlsNikhil Benesch3-1/+103
Import some missing upstream code for BSD sockets and sysctls and adapt it for gccgo. Updates golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261137
2020-10-20libgo: adjust NetBSD-specific types for stable syscall APINikhil Benesch1-3/+15
The backwards-compatibility guarantees of the syscall package require some munging of the C API inferred by mksysinfo.sh. Specifically, the RTM_RESOLVE constant must be added if it is missing, and the stat_t struct must use the suffix "timespec" rather than "tim" for its time-related fields. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263519
2020-10-20syscall: remove Sendfile on NetBSDNikhil Benesch2-3/+3
NetBSD does not support the sendfile syscall. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263521
2020-10-15runtime: use correct types in __go_ptrace shimNikhil Benesch1-1/+1
Make the types of the addr and data arguments in the __go_ptrace shim match the types declared in Go and the types declared by the C ptrace function, i.e., void*. This avoids a warning about an implicit int-to-pointer cast on some platforms. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262340