aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/sync
AgeCommit message (Collapse)AuthorFilesLines
2020-01-21libgo: update to Go1.14beta1Ian Lance Taylor3-13/+15
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
2019-09-12libgo: update to Go1.13Ian Lance Taylor3-13/+34
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194698 From-SVN: r275691
2019-09-06libgo: update to Go 1.13beta1 releaseIan Lance Taylor11-84/+664
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497 From-SVN: r275473
2019-02-26libgo: update to Go1.12rc1Ian Lance Taylor1-1/+2
Reviewed-on: https://go-review.googlesource.com/c/162881 From-SVN: r269202
2019-02-06re PR go/89199 (libgo regression in implementation of CompareAndSwap ↵Ian Lance Taylor1-5/+5
functions resulting in intermittent testcase failures on ppc64le power9 after r268458) PR go/89199 sync/atomic: use strong form of atomic_compare_exchange_n In the recent change to use atomic_compare_exchange_n I thought we could use the weak form, which can spuriously fail. But that is not how it is implemented in the gc library, and it is not what the rest of the library expects. Thanks to Lynn Boger for identifying the problem. Fixes https://gcc.gnu.org/PR89199 Reviewed-on: https://go-review.googlesource.com/c/161359 From-SVN: r268591
2019-02-01runtime, sync: use __atomic intrinsics instead of __syncIan Lance Taylor2-88/+26
GCC has supported the __atomic intrinsics since 4.7. They are better than the __sync intrinsics in that they specify a memory model and, more importantly for our purposes, they are reliably implemented either in the compiler or in libatomic. Fixes https://gcc.gnu.org/PR52084 Reviewed-on: https://go-review.googlesource.com/c/160820 From-SVN: r268458
2019-01-18libgo: update to Go1.12beta2Ian Lance Taylor2-9/+5
Reviewed-on: https://go-review.googlesource.com/c/158019 gotools/: * Makefile.am (go_cmd_vet_files): Update for Go1.12beta2 release. (GOTOOLS_TEST_TIMEOUT): Increase to 600. (check-runtime): Export LD_LIBRARY_PATH before computing GOARCH and GOOS. (check-vet): Copy golang.org/x/tools into check-vet-dir. * Makefile.in: Regenerate. gcc/testsuite/: * go.go-torture/execute/names-1.go: Stop using debug/xcoff, which is no longer externally visible. From-SVN: r268084
2018-10-25compiler: improve name mangling for packpathsIan Lance Taylor1-26/+26
The current implementation of Gogo::pkgpath_for_symbol was written in a way that allowed two distinct package paths to map to the same symbol, which could cause collisions at link- time or compile-time. Switch to a better mangling scheme to insure that we get a unique packagepath symbol for each package. In the new scheme instead of having separate mangling schemes for identifiers and package paths, the main identifier mangler ("go_encode_id") now handles mangling of both packagepath characters and identifier characters. The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as "foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this patch also adds a demangling capability so that function names returned from runtime.CallersFrames are converted back to their original unmangled form. Changing the pkgpath_for_symbol scheme requires updating a number of //go:linkname directives and C "__asm__" directives to match the new scheme, as well as updating the 'gotest' driver (which makes assumptions about the correct mapping from pkgpath symbol to package name). Fixes golang/go#27534. Reviewed-on: https://go-review.googlesource.com/c/135455 From-SVN: r265510
2018-09-24libgo: update to Go 1.11Ian Lance Taylor8-153/+115
Reviewed-on: https://go-review.googlesource.com/136435 gotools/: * Makefile.am (mostlyclean-local): Run chmod on check-go-dir to make sure it is writable. (check-go-tools): Likewise. (check-vet): Copy internal/objabi to check-vet-dir. * Makefile.in: Rebuild. From-SVN: r264546
2018-02-12re PR go/84215 (Random results in go/libgo tests)Ian Lance Taylor1-34/+0
PR go/84215 runtime, sync/atomic: use write barrier for atomic pointer functions This copies atomic_pointer.go from 1.10rc2. It was omitted during the transition of the runtime from C to Go, and I forgot about it. This may help with https://gcc.gnu.org/PR84215. Reviewed-on: https://go-review.googlesource.com/93197 From-SVN: r257599
2018-01-27libgo: update to Go1.10rc1Ian Lance Taylor1-3/+3
Reviewed-on: https://go-review.googlesource.com/90295 From-SVN: r257126
2018-01-17libgo: update to Go1.10beta2 releaseIan Lance Taylor3-15/+19
Reviewed-on: https://go-review.googlesource.com/87897 From-SVN: r256794
2018-01-09libgo: update to Go1.10beta1Ian Lance Taylor4-25/+7
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-11-09sync/atomic, runtime/internal/atomic: don't assume reads from 0 failIan Lance Taylor1-6/+6
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-09-14libgo: update to go1.9Ian Lance Taylor19-79/+1148
Reviewed-on: https://go-review.googlesource.com/63753 From-SVN: r252767
2017-01-14libgo: update to Go 1.8 release candidate 1Ian Lance Taylor11-99/+250
Compiler changes: * Change map assignment to use mapassign and assign value directly. * Change string iteration to use decoderune, faster for ASCII strings. * Change makeslice to take int, and use makeslice64 for larger values. * Add new noverflow field to hmap struct used for maps. Unresolved problems, to be fixed later: * Commented out test in go/types/sizes_test.go that doesn't compile. * Commented out reflect.TestStructOf test for padding after zero-sized field. Reviewed-on: https://go-review.googlesource.com/35231 gotools/: Updates for Go 1.8rc1. * Makefile.am (go_cmd_go_files): Add bug.go. (s-zdefaultcc): Write defaultPkgConfig. * Makefile.in: Rebuild. From-SVN: r244456
2016-07-22libgo: update to go1.7rc3Ian Lance Taylor15-81/+162
Reviewed-on: https://go-review.googlesource.com/25150 From-SVN: r238662
2016-02-18libgo: Update to final Go 1.6 release.Ian Lance Taylor1-3/+8
Reviewed-on: https://go-review.googlesource.com/19592 From-SVN: r233515
2016-02-03libgo: Update to go1.6rc1.Ian Lance Taylor9-137/+65
Reviewed-on: https://go-review.googlesource.com/19200 From-SVN: r233110
2015-10-31runtime: Remove now unnecessary pad field from ParFor.Ian Lance Taylor7-134/+275
It is not needed due to the removal of the ctx field. Reviewed-on: https://go-review.googlesource.com/16525 From-SVN: r229616
2015-01-15libgo, compiler: Upgrade libgo to Go 1.4, except for runtime.Ian Lance Taylor13-327/+409
This upgrades all of libgo other than the runtime package to the Go 1.4 release. In Go 1.4 much of the runtime was rewritten into Go. Merging that code will take more time and will not change the API, so I'm putting it off for now. There are a few runtime changes anyhow, to accomodate other packages that rely on minor modifications to the runtime support. The compiler changes slightly to add a one-bit flag to each type descriptor kind that is stored directly in an interface, which for gccgo is currently only pointer types. Another one-bit flag (gcprog) is reserved because it is used by the gc compiler, but gccgo does not currently use it. There is another error check in the compiler since I ran across it during testing. gotools/: * Makefile.am (go_cmd_go_files): Sort entries. Add generate.go. * Makefile.in: Rebuild. From-SVN: r219627
2014-11-05sync/atomic: fix data races in testsIan Lance Taylor1-8/+8
Backport https://codereview.appspot.com/111320044 from Go master library. From-SVN: r217110
2014-07-19libgo: Update to Go 1.3 release.Ian Lance Taylor9-402/+274
From-SVN: r212837
2014-06-06libgo: Merge to master revision 19184.Ian Lance Taylor2-34/+196
The next revision, 19185, renames several runtime files, and will be handled in a separate change. From-SVN: r211328
2014-06-04libgo: Merge from revision 18783:00cce3a34d7e of master library.Ian Lance Taylor2-0/+234
This revision was committed January 7, 2014. The next revision deleted runtime/mfinal.c. That will be done in a subsequent merge. This merge changes type descriptors to add a zero field, pointing to a zero value for that type. This is implemented as a common variable. * go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and alignment parameters. Permit init parameter to be NULL. From-SVN: r211249
2013-11-06libgo: Update to October 24 version of master library.Ian Lance Taylor13-142/+784
From-SVN: r204466
2013-07-16libgo: Update to Go 1.1.1.Ian Lance Taylor7-6/+64
From-SVN: r200974
2013-01-29libgo: Update Go library to master revision 15489/921e53d4863c.Ian Lance Taylor2-32/+20
From-SVN: r195560
2013-01-24re PR go/46986 (Go is not supported on Darwin)Ian Lance Taylor2-24/+28
PR go/46986 all: prepend #__USER_LABEL_PREFIX__ to mangled Go symbols For old-fashioned Darwin. From-SVN: r195438
2012-11-21libgo: Update to current version of master library.Ian Lance Taylor2-0/+22
From-SVN: r193688
2012-10-23libgo: Update to current sources.Ian Lance Taylor12-95/+512
From-SVN: r192704
2012-10-03libgo: Update to Go 1.0.3.Ian Lance Taylor2-2/+3
From-SVN: r192025
2012-05-14libgo: Use -fgo-pkgpath.Ian Lance Taylor1-23/+23
From-SVN: r187485
2012-03-30libgo: Update to weekly.2012-03-13.Ian Lance Taylor1-0/+16
From-SVN: r186023
2012-03-06libgo: Update to weekly.2012-03-04 release.Ian Lance Taylor2-15/+20
From-SVN: r185010
2012-03-02libgo: Update to weekly.2012-02-22 release.Ian Lance Taylor9-30/+182
From-SVN: r184819
2012-03-02libgo: Update to weekly.2012-02-14 release.Ian Lance Taylor2-2/+2
From-SVN: r184798
2012-02-12sync/atomic: Disable tests which can't run based on pointer size.Ian Lance Taylor1-0/+2
From-SVN: r184136
2012-01-25libgo: Update to weekly.2012-01-20.Ian Lance Taylor1-2/+2
From-SVN: r183540
2011-12-12libgo: Update to weekly.2011-11-18.Ian Lance Taylor1-0/+2
From-SVN: r182266
2011-12-07libgo: Update to weekly 2011-11-09.Ian Lance Taylor1-1/+1
From-SVN: r182073
2011-10-26Update Go library to last weekly.Ian Lance Taylor3-44/+759
From-SVN: r180552
2011-09-16Update Go library to r60.Ian Lance Taylor13-104/+628
From-SVN: r178910
2011-05-20Update to current version of Go library.Ian Lance Taylor1-5/+4
From-SVN: r173931
2011-03-30Update to current Go library.Ian Lance Taylor3-21/+63
From-SVN: r171732
2011-03-24Update to current version of Go library.Ian Lance Taylor1-1/+1
From-SVN: r171427
2011-03-16Update to current version of Go library (revision 94d654be2064).Ian Lance Taylor13-50/+1094
From-SVN: r171076
2010-12-03Add Go frontend, libgo library, and Go testsuite.Ian Lance Taylor8-0/+437
gcc/: * gcc.c (default_compilers): Add entry for ".go". * common.opt: Add -static-libgo as a driver option. * doc/install.texi (Configuration): Mention libgo as an option for --enable-shared. Mention go as an option for --enable-languages. * doc/invoke.texi (Overall Options): Mention .go as a file name suffix. Mention go as a -x option. * doc/frontends.texi (G++ and GCC): Mention Go as a supported language. * doc/sourcebuild.texi (Top Level): Mention libgo. * doc/standards.texi (Standards): Add section on Go language. Move references for other languages into their own section. * doc/contrib.texi (Contributors): Mention that I contributed the Go frontend. gcc/testsuite/: * lib/go.exp: New file. * lib/go-dg.exp: New file. * lib/go-torture.exp: New file. * lib/target-supports.exp (check_compile): Match // Go. From-SVN: r167407