aboutsummaryrefslogtreecommitdiff
path: root/libgo/go
AgeCommit message (Collapse)AuthorFilesLines
2018-02-06runtime: correct runtime structfield type to match reflectIan Lance Taylor2-6/+14
The offset field in structfield has changed to offsetAnon, and now requires a shift to get the actual offset value. Fixes golang/go#23391 Reviewed-on: https://go-review.googlesource.com/92275 From-SVN: r257413
2018-02-05cmd/go: don't lose last flag from _cgo_flagsIan Lance Taylor1-0/+3
The quoting code that read _cgo_flags, currently only in the gccgo version of cmd/go, was losing the last flag read from the file. Fixes golang/go#23666 Reviewed-on: https://go-review.googlesource.com/91655 From-SVN: r257373
2018-02-02reflect: enable allocation testsIan Lance Taylor1-6/+0
They were disabled due to the lack of escape analysis. Now that we have escape analysis, unskip these tests. Reviewed-on: https://go-review.googlesource.com/86248 From-SVN: r257324
2018-02-02runtime: scan register backing store on ia64Ian Lance Taylor1-0/+4
On ia64, a separate stack is used for saving/restoring register frames, occupying the other end of the stack mapping. This must also be scanned for pointers into the heap. Reviewed-on: https://go-review.googlesource.com/85276 From-SVN: r257323
2018-02-01math: adjust compilation flags, use them when testingIan Lance Taylor1-5/+5
We were using special compilation flags for the math package, but we weren't using them when testing. That meant that our tests were not checking the real code we were providing. Fix that. Fixing that revealed that we were not using a good set of flags, or at least were not using flags that let the tests pass. Adjust the flags to stop using -funsafe-math-optimizations on x86. Instead always use -ffp-contract=off -fno-math-errno -fno-trapping-math for all targets. Fixes golang/go#23647 Reviewed-on: https://go-review.googlesource.com/91355 From-SVN: r257312
2018-02-01compiler: omit field name for embedded fields in reflection stringIan Lance Taylor1-0/+8
This matches the gc compiler. The test case was sent for the master repo as https://golang.org/cl/91138. Fixes golang/go#23620 Reviewed-on: https://go-review.googlesource.com/91139 From-SVN: r257300
2018-02-01net: declare lib_getaddrinfo as returning int32Ian Lance Taylor1-1/+1
Otherwise on a 64-bit system we will read the 32-bit value as a 64-bit value. Since getaddrinfo returns negative numbers as error values, these will be interpreted as numbers like 0xfffffffe rather than -2, and the comparisons with values like syscall.EAI_NONAME will fail. Fixes golang/go#23645 Reviewed-on: https://go-review.googlesource.com/91296 From-SVN: r257299
2018-01-31net: rename TestAddr6 to avoid gotest confusionIan Lance Taylor1-3/+3
On ppc64 gotest treats data variables whose names begin with "Test" as tests to run. This is to support the function descriptors used for ppc64 ELF ABI v1. This causes gotest to think that TestAddr6 is a test, when it is actually a variable. For a simple fix until we can figure out how to write gotest properly, rename the variable. Fixes golang/go#23623 Reviewed-on: https://go-review.googlesource.com/90995 From-SVN: r257235
2018-01-30internal/syscall/unix: add randomTrap for sh/shbeIan Lance Taylor1-0/+11
CL 84555 added support for the SuperH architecture, but didn't add the randomTrap definition to be used for the getrandom syscall on Linux. Add it now. Reviewed-on: https://go-review.googlesource.com/90535 From-SVN: r257171
2018-01-27libgo: update to Go1.10rc1Ian Lance Taylor4-0/+62
Reviewed-on: https://go-review.googlesource.com/90295 From-SVN: r257127
2018-01-27libgo: update to Go1.10rc1Ian Lance Taylor33-503/+792
Reviewed-on: https://go-review.googlesource.com/90295 From-SVN: r257126
2018-01-25compiler: deref receiver types in mangled namesIan Lance Taylor1-1/+1
This was the original intent, as reflected in the long comment at the start of names.cc, but I forgot to implement it. Also, remove a leading ".0" from the final name. That could occur for a method whose receiver type starts with 'u', as in that case we prepend a space to the mangled name, to avoid confusion with the Unicode mangling, and the space turns into ".0". Also, if the Unicode encoding would cause the final to start with "..u" or "..U", add a leading underscore. Patch gotest to not get fooled by some names. The result of these changes is that all symbols start with a letter or an underscore. Reviewed-on: https://go-review.googlesource.com/90015 From-SVN: r257068
2018-01-25runtime: fix lfstackUnpack on ia64Ian Lance Taylor1-1/+1
The top three region number bits must be masked out before right-shifting the address bits into place, otherwise they will be copied down into the lower always-zero address bits. Reviewed-on: https://go-review.googlesource.com/84535 From-SVN: r257061
2018-01-24compiler: rationalize external symbol namesIan Lance Taylor4-13/+13
Encode all external symbol names using only ASCII alphanumeric characters, underscore, and dot. Use a scheme that can be reliably demangled to a somewhat readable version as described in the long comment in names.cc. A minor cleanup discovered during this was that we were treating function types as different if one had a NULL parameters_ field and another has a non-NULL parameters_ field that has no parameters. This worked because we mangled them slightly differently. We now mangle them the same, so we treat them as equal, as we should anyhow. Reviewed-on: https://go-review.googlesource.com/89555 * go.go-torture/execute/names-1.go: New test. From-SVN: r257033
2018-01-23cmd/go: buildid support for AIX archives.Ian Lance Taylor3-0/+130
Reviewed-on: https://go-review.googlesource.com/88935 From-SVN: r256971
2018-01-19runtime: no escape for some functions on AIXIan Lance Taylor2-0/+4
Reviewed-on: https://go-review.googlesource.com/88236 From-SVN: r256874
2018-01-19cmd/go: recognize AIX objects and archivesIan Lance Taylor1-0/+3
Reviewed-on: https://go-review.googlesource.com/88275 From-SVN: r256873
2018-01-19runtime: add go:noescape declaration for SolarisIan Lance Taylor1-0/+1
Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/88376 From-SVN: r256872
2018-01-18re PR go/83787 (Many 32-bit Solaris/SPARC Go tests FAIL after Go1.10beta1 ↵Ian Lance Taylor1-0/+1
update) PR go/83787 compiler: pass int to makechan, call makechan64 when appropriate The update to 1.10beta1 changed makechan to take int instead of int64, and added a makechan64 call for large values. Since the size is the last argument to makechan, the old compiler which always passed a 64-bit int worked fine on 64-bit systems and little-endian 32-bit systems, but broke on big-endian 32-bit systems. This CL fixes the compiler to use the appropriate types. This fixes GCC PR 83787. Reviewed-on: https://go-review.googlesource.com/88077 From-SVN: r256835
2018-01-17archive/tar: support stat and device numbers on AIXIan Lance Taylor2-2/+12
Reviewed-on: https://go-review.googlesource.com/87198 From-SVN: r256810
2018-01-17libgo: update to Go1.10beta2 releaseIan Lance Taylor131-5021/+6476
Reviewed-on: https://go-review.googlesource.com/87897 From-SVN: r256794
2018-01-14go/types: implement SizesFor for gccgoIan Lance Taylor2-3/+10
Move the architecture-specific settings out of configure.ac into a new shell script goarch.sh. Use the new script to collect the values for all architectures to make them available in go/types. Also fix cmd/vet to pass the right compiler when it calls SizesFor. This fixes cmd/vet for systems that are not implemented in the gc toolchain, such as alpha and ia64. Reviewed-on: https://go-review.googlesource.com/87635 From-SVN: r256655
2018-01-11debug/dwarf: formStrp uses a 64-bit value for 64-bit DWARFIan Lance Taylor1-1/+12
No test as the only system I know that uses 64-bit DWARF is AIX. Backport of https://golang.org/cl/84379, which will be in Go 1.11. Backporting now for AIX support in gccgo. Reviewed-on: https://go-review.googlesource.com/87296 From-SVN: r256474
2018-01-10os, syscall: handle _st_timespec for AIX statIan Lance Taylor3-1/+60
Reviewed-on: https://go-review.googlesource.com/87197 From-SVN: r256450
2018-01-10libgo: add platform support for SuperHIan Lance Taylor7-6/+10
Reviewed-on: https://go-review.googlesource.com/84555 From-SVN: r256446
2018-01-10Add missing .a files.Ian Lance Taylor5-0/+0
Add missing .a files. These should have been committed with the update to go1.10beta1, but were skipped because by default Subversion ignores all files matching *.a. From-SVN: r256442
2018-01-10re PR c/82922 (Request: add -Wstrict-prototypes to -Wextra as K&R style is ↵Ian Lance Taylor1-2/+2
obsolescent) PR c/82922 runtime, syscall: use full prototypes in C code Based on patch by Martin Sebor. Reviewed-on: https://go-review.googlesource.com/86815 From-SVN: r256437
2018-01-10exp: remove exp/proxy and exp/terminal packagesIan Lance Taylor10-1315/+0
The exp/proxy package was removed from the master library in https://golang.org/cl/6461056 (August, 2012). The exp/terminal package was removed from the master library in https://golang.org/cl/5970044 (March, 2012). I'm not sure why they lingered in the gofrontend copy, but let's finally remove them now. Reviewed-on: https://go-review.googlesource.com/87138 From-SVN: r256435
2018-01-10cmd/go: check for another GCC error messageIan Lance Taylor1-1/+3
GCC always recognizes the -fsplit-stack option, but then tests whether it is supported by the selected target. If not, it reports cc1: error: ‘-fsplit-stack’ is not supported by this compiler configuration Check for that error message when deciding whether a compiler option works. Reviewed-on: https://go-review.googlesource.com/87137 From-SVN: r256433
2018-01-10runtime: work around escaping closure in export_test.goIan Lance Taylor1-7/+7
When compiling runtime, it is not allowed for local variables and closures to be heap allocated. In one test, there is a go statement with a closure. In the gc compiler, it distinguishes capturing variable by value vs. by address, and rewrites it to passing the captured values as arguments. Currently we don't have this, and the escape analysis decides to heap allocate the closure and also the captured variables, which is not allowed. Work around it by passing the variables explicitly. This is in preparation of turning on escape analysis for the runtime. Reviewed-on: https://go-review.googlesource.com/86245 From-SVN: r256419
2018-01-10runtime: noescape some functions/variablesIan Lance Taylor5-10/+28
This is in preparation of turning on escape analysis for the runtime. - In gccgo, systemstack is implemented with mcall, which is not go:noescape. Wrap the closure in noescape so the escape analysis does not think it escapes. - Mark some C functions go:noescape. They do not leak arguments. - Use noescape function to make a few local variables' addresses not escape. The escape analysis cannot figure out because they are assigned to pointer indirections. Reviewed-on: https://go-review.googlesource.com/86244 From-SVN: r256418
2018-01-10cmd/go: add AIX supportIan Lance Taylor1-6/+24
For gccgo code avoid --whole-archive and -(. Use -blibpath instead of -rpath. Reviewed-on: https://go-review.googlesource.com/86956 From-SVN: r256417
2018-01-10libgo: add aix build tagsIan Lance Taylor4-4/+4
Reviewed-on: https://go-review.googlesource.com/86936 From-SVN: r256416
2018-01-09os/signal/internal/pty: build on SolarisIan Lance Taylor1-1/+1
Patch from Rainer Orth. Reviewed-on: https://go-review.googlesource.com/87037 From-SVN: r256399
2018-01-09libgo: update to Go1.10beta1Ian Lance Taylor987-21935/+70389
Update the Go library to the 1.10beta1 release. Requires a few changes to the compiler for modifications to the map runtime code, and to handle some nowritebarrier cases in the runtime. Reviewed-on: https://go-review.googlesource.com/86455 gotools/: * Makefile.am (go_cmd_vet_files): New variable. (go_cmd_buildid_files, go_cmd_test2json_files): New variables. (s-zdefaultcc): Change from constants to functions. (noinst_PROGRAMS): Add vet, buildid, and test2json. (cgo$(EXEEXT)): Link against $(LIBGOTOOL). (vet$(EXEEXT)): New target. (buildid$(EXEEXT)): New target. (test2json$(EXEEXT)): New target. (install-exec-local): Install all $(noinst_PROGRAMS). (uninstall-local): Uninstasll all $(noinst_PROGRAMS). (check-go-tool): Depend on $(noinst_PROGRAMS). Copy down objabi.go. (check-runtime): Depend on $(noinst_PROGRAMS). (check-cgo-test, check-carchive-test): Likewise. (check-vet): New target. (check): Depend on check-vet. Look at cmd_vet-testlog. (.PHONY): Add check-vet. * Makefile.in: Rebuild. From-SVN: r256365
2017-12-16os: pass -s to hostname on AIXIan Lance Taylor1-3/+9
Reviewed-on: https://go-review.googlesource.com/79375 From-SVN: r255738
2017-12-16syscall: emulate Flock on AIXIan Lance Taylor1-0/+22
Reviewed-on: https://go-review.googlesource.com/79095 From-SVN: r255737
2017-12-02runtime: export cgoCheck functionsIan Lance Taylor1-0/+4
The functions cgoCheckPointer and cgoCheckResult are called by code generated by cgo. That means that we need to export them using go:linkname, as otherwise they are local symbols. The cgo code currently uses weak references to only call the symbols if they are defined, which is why it has been working--the cgo code has not been doing any checks. Reviewed-on: https://go-review.googlesource.com/80295 From-SVN: r255347
2017-11-23cmd/go, go/internal/gccgoimporter: pass -X to ar on AIXIan Lance Taylor2-3/+12
Reviewed-on: https://go-review.googlesource.com/72930 From-SVN: r255090
2017-11-09sync/atomic, runtime/internal/atomic: don't assume reads from 0 failIan Lance Taylor3-13/+14
For a misaligned address force a panic rather than assuming that reading from the address 0 will cause one. Reviewed-on: https://go-review.googlesource.com/69850 From-SVN: r254610
2017-10-20debug/dwarf: support 64-bit DWARF in byte order checkIan Lance Taylor5-16/+87
Also fix 64-bit DWARF to read a 64-bit abbrev offset in the compilation unit. This is a backport of https://golang.org/cl/71171, which will be in the Go 1.10 release, to the gofrontend copy. Doing it now because AIX is pretty much the only system that uses 64-bit DWARF. Reviewed-on: https://go-review.googlesource.com/72250 From-SVN: r253955
2017-09-29debug/elf: support 32-bit SPARC relocsIan Lance Taylor1-0/+42
Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/67111 From-SVN: r253292
2017-09-27net: check Getsockname error returnIan Lance Taylor1-2/+8
Reviewed-on: https://go-review.googlesource.com/64550 From-SVN: r253231
2017-09-22debug/xcoff,cmd: add XCOFF supportIan Lance Taylor16-19/+1104
Reviewed-on: https://go-review.googlesource.com/64592 From-SVN: r253105
2017-09-20syscall: enable ParseDirent for AIXIan Lance Taylor2-1/+20
Reviewed-on: https://go-review.googlesource.com/64990 From-SVN: r253022
2017-09-20syscall: workaround for getsockname bug in AIXIan Lance Taylor4-1/+188
Reviewed-on: https://go-review.googlesource.com/64552 From-SVN: r253021
2017-09-20internal,net,os,runtime,syscall: fixes for AIX following update to go1.9Ian Lance Taylor16-19/+154
Reviewed-on: https://go-review.googlesource.com/64551 From-SVN: r253016
2017-09-20runtime: restore "goroutine in C code" messageIan Lance Taylor2-1/+2
In the 1.9 upgrade I took out the word "goroutine" from a traceback showing a goroutine running in C code, to let TestCgoNumGoroutine pass. However, it turns out that some code is actually checking for that string; for example, https://github.com/grpc/grpc-go/blob/master/test/leakcheck/leakcheck.go#L44 So keep the message the same, and change the test. Reviewed-on: https://go-review.googlesource.com/64850 From-SVN: r252991
2017-09-15syscall: fixes for SolarisIan Lance Taylor3-2/+14
Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/64170 From-SVN: r252866
2017-09-14libgo: update to go1.9Ian Lance Taylor931-20116/+55737
Reviewed-on: https://go-review.googlesource.com/63753 From-SVN: r252767