aboutsummaryrefslogtreecommitdiff
path: root/libgo/go
AgeCommit message (Collapse)AuthorFilesLines
2020-08-10runtime: revert eqtype for AIXClément Chigot4-11/+64
AIX linker is not able to merge identical type descriptors in a single symbol if there are coming from different object or shared object files. This results into several pointers referencing the same type descriptors. Thus, eqtype is needed to ensure that these different symbols will be considered as the same type descriptor. Fixes golang/go#39276 gcc/go/ChangeLog: * go-c.h (struct go_create_gogo_args): Add need_eqtype field. * go-lang.c (go_langhook_init): Set need_eqtype. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/235697
2020-08-07libgo: update to Go1.15rc2 releaseIan Lance Taylor19-194/+307
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/247517
2020-08-03internal/syscall/unix: correct ia64 syscall numbersIan Lance Taylor1-2/+2
Per Andreas Schwab. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/246264
2020-08-03internal/syscall/unix: define copyFileRangeTrap for all architecturesIan Lance Taylor9-26/+34
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/246363
2020-08-01libgo: update to go1.15rc1Ian Lance Taylor886-14825/+45550
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157
2020-07-27compiler,runtime: pass only ptr and len to some runtime callsIan Lance Taylor5-63/+68
This ports https://golang.org/cl/227163 to the Go frontend. This is a step toward moving up to the go1.15rc1 release. Original CL description: cmd/compile,runtime: pass only ptr and len to some runtime calls Some runtime calls accept a slice, but only use ptr and len. This change modifies most such routines to accept only ptr and len. After this change, the only runtime calls that accept an unnecessary cap arg are concatstrings and slicerunetostring. Neither is particularly common, and both are complicated to modify. Negligible compiler performance impact. Shrinks binaries a little. There are only a few regressions; the one I investigated was due to register allocation fluctuation. Passes 'go test -race std cmd', modulo golang/go#38265 and golang/go#38266. Wow, does that take a long time to run. file before after Δ % compile 19655024 19655152 +128 +0.001% cover 5244840 5236648 -8192 -0.156% dist 3662376 3658280 -4096 -0.112% link 6680056 6675960 -4096 -0.061% pprof 14789844 14777556 -12288 -0.083% test2json 2824744 2820648 -4096 -0.145% trace 11647876 11639684 -8192 -0.070% vet 8260472 8256376 -4096 -0.050% total 115163736 115118808 -44928 -0.039% For golang/go#36890 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245099
2020-07-17libgo: update to Go 1.14.6 releaseIan Lance Taylor22-813/+1128
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/243317
2020-07-10libgo: update to Go 1.14.4 releaseIan Lance Taylor19-79/+396
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/241999
2020-06-15libgo: update x/sys/cpu to add all GOARCHes supported by gccgoTobias Klauser1-1/+6
CL 237897 added additional GOARCHes supported by gccgo to x/sys/cpu. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/238038
2020-06-15internal/syscall/unix: use getrandom_linux_generic.go on riscvTobias Klauser1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/237899
2020-06-12runtime: fix arenaBaseOffset for aix/ppcClément Chigot2-2/+2
The arenaBaseOffset modifications was aimed only for aix/ppc64. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/237038
2020-05-25libgo: update x/sys/cpu after gccgo support addedClément Chigot2-1/+28
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/234597
2020-05-11runtime: fix TestCallersNilPointerPaniceric fang1-12/+20
The expected result of TestCallersNilPointerPanic has changed in GoLLVM. This CL makes some elements of the expected result optional so that this test passes in both gccgo and GoLLVM. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/230138
2020-05-11syscall: append to environment in tests, don't clobber itIan Lance Taylor1-3/+6
This is a partial backport of https://golang.org/cl/233318. It's only a partial backport because part of the change was already applied to libgo in CL 193497 as part of the update to the Go 1.13beta1 release. Fixes PR go/95061 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/233359
2020-04-20gccgo: fix runtime compilation on NetBSDBenny Siegert3-6/+41
si_code in siginfo_t is a macro on NetBSD, not a member of the struct itself, so add a C trampoline for receiving its value. Also replace references to mos.waitsemacount with the replacement and add some helpers from os_netbsd.go in the GC repository. Update golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/228918
2020-04-09libgo: update to final 1.14.2 releaseIan Lance Taylor9-73/+162
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/227551
2020-04-06libgo: update to almost the 1.14.2 releaseIan Lance Taylor32-281/+636
Update to edea4a79e8d7dea2456b688f492c8af33d381dc2 which is likely to be approximately the 1.14.2 release. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/227377
2020-02-26libgo: update to final Go1.14 releaseIan Lance Taylor22-49/+222
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/221158
2020-02-24internal/poll: add hurd build tagIan Lance Taylor1-1/+1
Patch from Svante Signell. Fixes GCC PR go/93900 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/220592
2020-02-24internal/syscall/unix: add hurd build tagIan Lance Taylor1-1/+1
Patch from Svante Signell. Fixes GCC PR go/93900 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/220589
2020-02-18cmd/go: update -DGOPKGPATH to use current pkgpath encodingIan Lance Taylor1-6/+20
This will need to be done in the gc version too, probably more cleverly. This version will ensure that the next GCC release works correctly when using the GCC version of the go tool. Updates golang/go#37272 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/219817
2020-02-15libgo: update to Go1.14rc1 releaseIan Lance Taylor187-1816/+1514
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/218017
2020-02-15runtime: on 32-bit systems, limit default GOMAXPROCS to 32Ian Lance Taylor1-0/+8
Otherwise we can easily run out of stack space for threads. The user can still override by setting GOMAXPROCS. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/219278
2020-02-03syscall: fix riscv64 GNU/Linux buildIan Lance Taylor1-14/+0
Make syscall_linux_riscv64.go, new in the 1.14beta1 release, look like the other syscall_linux_GOARCH.go files. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/217577
2020-01-29runtime, syscall: add a couple of hurd build tagsIan Lance Taylor2-2/+2
Patch by Svante Signell. Updates PR go/93468 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216959
2020-01-29runtime: update netpoll_hurd.go for go1.14beta1 changesIan Lance Taylor1-33/+44
Patch from Svante Signell. Updates PR go/93468 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216958
2020-01-23internal/cpu: don't define CacheLinePadSize for riscv64Ian Lance Taylor1-2/+0
In libgo CacheLinePadSize is defined by the generated file cpugen.go. Keep cpu_riscv64.go around, even though it is now empty, so that we will pick up changes to it in future merges. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216077
2020-01-22runtime: for Solaris, add osinit, and drop duplicate getncpuIan Lance Taylor1-5/+4
Fixes a build breakage introduced in the 1.14beta1 upgrade. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215857
2020-01-22internal/syscall/unix: use getrandom_linux_generic.go on arm64beAndrew Pinski1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215342
2020-01-21libgo: update to Go1.14beta1Ian Lance Taylor1181-20823/+66338
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
2020-01-09libgo: compile examples in _test packagesIan Lance Taylor42-82/+4
Previously if the only names defined by _test packages were examples, the gotest script would emit an incorrect _testmain.go file. I worked around that by marking the example_test.go files +build ignored. This CL changes the gotest script to handle this case correctly, and removes the now-unnecessary build tags. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214039 From-SVN: r280085
2020-01-07compiler, runtime: stop using __go_runtime_errorIan Lance Taylor3-0/+12
Use specific panic functions instead, which are mostly already in the runtime package. Also correct "defer nil" to panic when we execute the defer, rather than throw when we queue it. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213642 From-SVN: r279979
2020-01-02compiler, runtime, reflect: generate hash functions only for map keysIan Lance Taylor11-209/+306
Right now we generate hash functions for all types, just in case they are used as map keys. That's a lot of wasted effort and binary size for types which will never be used as a map key. Instead, generate hash functions only for types that we know are map keys. Just doing that is a bit too simple, since maps with an interface type as a key might have to hash any concrete key type that implements that interface. So for that case, implement hashing of such types at runtime (instead of with generated code). It will be slower, but only for maps with interface types as keys, and maybe only a bit slower as the aeshash time probably dominates the dispatch time. Reorg where we keep the equals and hash functions. Move the hash function from the key type to the map type, saving a field in every non-map type. That leaves only one function in the alg structure, so get rid of that and just keep the equal function in the type descriptor itself. While we're here, reorganize the rtype struct to more closely match the gc version. This is the gofrontend version of https://golang.org/cl/191198. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212843 From-SVN: r279848
2019-12-24re PR go/93020 (Final patches to build gcc-10 on GNU/Hurd)Ian Lance Taylor4-4/+4
PR go/93020 libgo: Hurd portability patches By Svante Signell. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212409 From-SVN: r279724
2019-12-09re PR go/92861 (Passes relative time to sem_timedwait on GNU/Hurd)Ian Lance Taylor1-4/+0
PR go/92861 runtime: don't define CLOCK_REALTIME in os_hurd.go It's already defined in sysinfo.go. Patch by Samuel Thibault. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210538 From-SVN: r279136
2019-12-09re PR go/92861 (Passes relative time to sem_timedwait on GNU/Hurd)Ian Lance Taylor1-2/+26
PR go/92861 runtime: use absolute time for sem_timedwait Patch by Samuel Thibault. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210457 From-SVN: r279106
2019-12-06re PR other/29842 ([meta-bug] outstanding patches / issues from ↵Ian Lance Taylor1-5/+5
STMicroelectronics) PR go/29842 runtime: update HURD support for mOS now being embedded Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210285 From-SVN: r279062
2019-11-19libgo: better cmd/cgo handling for '.' in pkgpathIan Lance Taylor1-1/+3
Updates cgo's gccgoPkgpathToSymbolNew() to bring it into conformance with the way that gccgo now handles package paths with embedded dots (see CL 200838). See also https://gcc.gnu.org/PR61880, a related bug. This CL is a copy of CL 207957 in the main Go repo. Updates golang/go#35623. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/207977 From-SVN: r278470
2019-10-14runtime: correct facilities names in s390 CPU supportIan Lance Taylor1-5/+7
Patch from Andreas Krebbel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201038 From-SVN: r276964
2019-10-14internal/cpu: define kdsaQuery for s390Ian Lance Taylor1-0/+15
Patch from Andreas Krebbel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201037 From-SVN: r276962
2019-09-17runtime: for FFI, treat directIface types as pointersIan Lance Taylor1-0/+6
This only matters on systems that pass a struct with a single pointer field differently than passing a single pointer. I noticed it on 32-bit PPC, where the reflect package TestDirectIfaceMethod failed. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/195878 From-SVN: r275814
2019-09-17re PR go/91781 (r275691 breaks go test "reflect")Ian Lance Taylor2-9/+36
PR go/91781 reflect: promote integer closure return to full word The libffi library expects an integer return type to be promoted to a full word. Implement that when returning from a closure written in Go. This only matters on big-endian systems when returning an integer smaller than the pointer size, which is why we didn't notice it until now. Fixes https://gcc.gnu.org/PR91781. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/195858 From-SVN: r275813
2019-09-17reflect: unexport FFICallbackGo; use go:linkname insteadIan Lance Taylor2-8/+9
The function was always intended to be internal-only, but was exported so that C code could call it. Now that have go:linkname for that, use it. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/195857 From-SVN: r275809
2019-09-12libgo: update to Go1.13Ian Lance Taylor193-1651/+3430
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194698 From-SVN: r275691
2019-09-11golang.org/x/sys/cpu: define doinit when neededIan Lance Taylor1-0/+9
Should fix the build on riscv64 and other systems. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194641 From-SVN: r275650
2019-09-10libgo: Solaris and x/sys/cpu compatibility fixesIan Lance Taylor13-87/+12
Restore Solaris compatibility fixes lost when internal/x/net/lif moved to golang.org/x/net/lif. Also fix the Makefile for x/net/lif and x/net/route. Change x/sys/cpu to get the cache line size from goarch.sh as the gofrontend version of internal/cpu does. Partially based on work by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194438 From-SVN: r275611
2019-09-10go/internal/gccgoimporter: support embedded field in pointer loopIan Lance Taylor4-25/+74
Backport of https://golang.org/cl/194440. Original description: If an embedded field refers to a type via a pointer, the parser needs to know the name of the embedded field. It is possible that the pointer type is not yet resolved. This CL fixes the parser to handle that case by setting the pointer element type to the unresolved named type while the pointer is being resolved. Updates golang/go#34182 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194562 From-SVN: r275606
2019-09-10cmd/go: look for tool build ID before hashing entire fileIan Lance Taylor1-4/+9
Also fix the key used to store the ID. This is a significant speedup in cmd/go run time. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194257 From-SVN: r275559
2019-09-06libgo: update to Go 1.13beta1 releaseIan Lance Taylor1371-31340/+89437
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497 From-SVN: r275473
2019-08-31compiler, runtime: support and use single argument go:linknameIan Lance Taylor34-284/+259
The gc compiler has started permitting go:linkname comments with a single argument to mean that a function should be externally visible outside the package. Implement this in the Go frontend. Change the libgo runtime package to use it, rather than repeating the name just to export a function. Remove a couple of unnecessary go:linkname comments on declarations. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/192197 From-SVN: r275239