summaryrefslogtreecommitdiff
path: root/libgo/go
Commit message (Collapse)AuthorAgeFilesLines
* syscall: add prlimitIan Lance Taylor2023-05-111-0/+8
| | | | | | | | | | As of https://go.dev/cl/476695 golang.org/x/sys/unix can call syscall.prlimit, so we need such a function in libgo. For golang/go#46279 Fixes golang/go#59712 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/486576
* mime: remove test ordering dependencyIan Lance Taylor2023-04-072-1/+5
| | | | | | | | | | | | | | | | | Backport CL 421442 from upstream. Original description: Arrange for tests that call setMimeInit to fully restore the old values, by clearing the sync.Once that controls initialization. Once we've done that, call initMime in initMimeUnixTest because otherwise the test types loaded there will be cleared by the call to initMime that previously was not being done. For golang/go#51648 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/483117
* syscall, runtime: always call XSI strerror_rIan Lance Taylor2022-11-292-47/+9
| | | | | | | | This does the right thing for either glibc or musl on GNU/Linux. Based on patch by Sören Tempel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/454176
* runtime: use _libgo_off_t_type when calling C mmapIan Lance Taylor2022-10-271-2/+4
| | | | | | | | | The last argument to the C mmap function is type off_t, not uintptr. On some 32-bit systems, off_t is larger than uintptr. Based on patch by Sören Tempel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/445735
* runtime: portable access to sigev_notify_thread_idIan Lance Taylor2022-09-271-1/+11
| | | | | | | | | | | | | | | | | | | Previously, libgo relied on the _sigev_un implementation-specific field in struct sigevent, which is only available on glibc. This patch uses the sigev_notify_thread_id macro instead which is mandated by timer_create(2). In theory, this should work with any libc implementation for Linux. Unfortunately, there is an open glibc bug as glibc does not define this macro. For this reason, a glibc-specific workaround is required. Other libcs (such as musl) define the macro and don't require the workaround. See https://sourceware.org/bugzilla/show_bug.cgi?id=27417 This makes libgo compatible with musl libc. Based on patch by Sören Tempel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
* runtime: synchronize empty struct field handlingmelonedo2022-09-271-4/+10
| | | | | | | | | | | | In GCCGO and gollvm, the logic for allocating one byte for the last field is: 1. the last field has zero size 2. the struct itself does not have zero size 3. the last field is not blank this commit adds the last two conditions to runtime.structToFFI. For golang/go#55146 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/431735
* cmd/cgo: add and use runtime/cgo.Incomplete instead of //go:notinheapIan Lance Taylor2022-09-225-51/+66
| | | | | | | | | | | This ports https://go.dev/cl/421879 to libgo. This is a quick port to update gofrontend to work with the version of cgo in gc mainline. A more complete port will follow, changing the gc version of cmd/cgo to choose an approach based on feature testing the gccgo in use. Updates golang/go#46731 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/432338
* libgo: make runtime.Version return a meaningful stringIan Lance Taylor2022-06-281-10/+0
| | | | | | Fixes golang/go#51850 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/414734
* libgo: permit loff_t and off_t to be macrosIan Lance Taylor2022-06-171-8/+8
| | | | | | | | | They are macros in musl libc, rather than typedefs, and -fgo-dump-spec doesn't handle that case. Based on patch by Sören Tempel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
* syscall: gofmtIan Lance Taylor2022-06-1442-6/+52
| | | | | | | | | Add blank lines after //sys comments where needed, and then run gofmt on the syscall package with the new formatter. This is the libgo version of CL 407136. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412074
* runtime: add special handling for signal 34A. Wilcox2022-04-181-1/+2
| | | | | | | | | | | | The musl libc uses signal 34 internally for setgid (similar to how glibc uses signal 32 and signal 33). For this reason, special handling is needed for this signal in the runtime. The gc implementation already handles the signal accordingly. As such, this commit intends to simply copy the behavior of the Google Go implementation to libgo. See https://go.dev/issues/39343 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/400594
* compiler: revert `for package-scope "a = b; b = x" just set "a = x"`Ian Lance Taylor2022-04-152-6/+8
| | | | | | | | | | | | | | | | | | | | Revert CL 245098. It caused incorrect initialization ordering. Adjust the runtime package to work even with the CL reverted. Original description of CL 245098: This avoids requiring an init function to initialize the variable. This can only be done if x is a static initializer. The go1.15rc1 runtime package relies on this optimization. The package has a variable "var maxSearchAddr = maxOffAddr". The maxSearchAddr variable is used by code that runs before package initialization is complete. For golang/go#51913 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/395994
* libgo: update to final Go 1.18 releaseIan Lance Taylor2022-03-1687-599/+1978
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/393377
* libgo: fix AIX build for the Go1.18 updateClément Chigot2022-03-044-4/+2
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/388635
* runtime/internal/syscall: build dummy package if not LinuxIan Lance Taylor2022-02-211-0/+7
| | | | | | Fixes libgo build on non-Linux systems. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/387134
* libgo: update Hurd supportIan Lance Taylor2022-02-188-9/+297
| | | | | | Patches from Svante Signell for PR go/104290. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386797
* libgo: update to Go1.18rc1 releaseIan Lance Taylor2022-02-18177-2945/+3655
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386594
* net: add hurd build tag for setReadMsgCloseOnExecIan Lance Taylor2022-02-171-1/+1
| | | | | | | | | Patch from Svante Signell. PR go/103573 PR go/104290 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386216
* libgo: restore building on SolarisIan Lance Taylor2022-02-167-8/+17
| | | | | | | | 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
* runtime: call timer functions via syscallIan Lance Taylor2022-02-131-10/+11
| | | | | | | | | | | | | | | | | | | | | 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
* libgo: update to Go1.18beta2Ian Lance Taylor2022-02-111913-36042/+82937
| | | | | | | | | 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
* compiler, internal/abi: implement FuncPCABI0, FuncPCABIInternalIan Lance Taylor2022-02-082-5/+41
| | | | | | | | 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
* runtime: build panic32.go on amd64p32Ian Lance Taylor2022-01-201-2/+2
| | | | | | Fixes https://gcc.gnu.org/PR104149 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/380054
* runtime: set runtime.GOROOT value at build timeIan Lance Taylor2021-09-211-2/+0
| | | | | | | | | | | 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.
* libgo: update to go1.17.1 releaseIan Lance Taylor2021-09-1611-18/+151
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/350414
* runtime: use hash32, not hash64, for amd64p32, mips64p32, mips64p32leIan Lance Taylor2021-09-072-4/+4
| | | | | | Fixes PR go/102102 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/348015
* libgo: update to final Go 1.17 releaseIan Lance Taylor2021-09-058-63/+103
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/343729
* libgo: various fixes for Solaris supportIan Lance Taylor2021-08-148-15/+33
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/342189
* libgo: update to Go1.17rc2Ian Lance Taylor2021-08-121944-22608/+73883
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
* runtime: run gofmt on testdata/testwinsignal/main.goIan Lance Taylor2021-08-121-19/+19
|
* compiler: store pointers to go:notinheap types indirectlyIan Lance Taylor2021-08-121-2/+2
| | | | | | | | 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
* runtime: extend internal atomics to comply with sync/atomicIan Lance Taylor2021-08-052-0/+105
| | | | | | This is the gofrontend version of https://golang.org/cl/289152. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/339690
* compile, runtime: make selectnbrecv return two valuesIan Lance Taylor2021-08-031-28/+3
| | | | | | | | | | | | | 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
* compiler, runtime: allow slice to array pointer conversionIan Lance Taylor2021-08-022-0/+9
| | | | | | | | Panic if the slice is too short. For golang/go#395 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/338630
* compiler, runtime: support unsafe.Add and unsafe.SliceIan Lance Taylor2021-08-021-0/+29
| | | | | | | For golang/go#19367 For golang/go#40481 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/338949
* libgo: update to Go1.16.5 releaseIan Lance Taylor2021-06-1029-129/+779
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/326772
* libgo: update bzip2 binary test cases to match source repoIan Lance Taylor2021-05-182-0/+0
|
* libgo: use Windows line endings in testwinsignalIan Lance Taylor2021-05-181-19/+19
|
* libgo: update to Go1.16.3 releaseIan Lance Taylor2021-04-1213-65/+271
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/309490
* libgo: update to Go 1.16.2 releaseIan Lance Taylor2021-03-1526-182/+449
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/301459
* libgo: ensure memmove, memset 8 byte atomicity on ppc64xLynn Boger2021-02-251-2/+0
| | | | | | | | | | | | | | | | | 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
* libgo: update to Go1.16 releaseIan Lance Taylor2021-02-1932-79/+378
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/293793
* internal/cpu: correctly link to getsystemcfgClément Chigot2021-01-292-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
* libgo: update to Go1.16rc1Ian Lance Taylor2021-01-29178-10080/+10342
| | | | Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287493
* libgo: update hurd supportIan Lance Taylor2021-01-144-11/+17
| | | | | | | | Patch from Svante Signell. Fixes PR go/98496 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/283692
* syscall: ensure openat uses variadic libc wrapperPaul E. Murphy2021-01-121-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
* syscall: don't define sys_SETREUID and friendsIan Lance Taylor2021-01-052-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
* internal/cpu: more build fixes for Go1.16beta1 releaseIan Lance Taylor2021-01-059-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
* internal/cpu: add aarch64 support functionsIan Lance Taylor2021-01-011-0/+26
| | | | | | Patch from Andreas Schwab. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281000
* runtime: move startupRandomData back to runtime2.goIan Lance Taylor2021-01-012-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