aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/sync/atomic
AgeCommit message (Collapse)AuthorFilesLines
2022-02-11libgo: update to Go1.18beta2Ian Lance Taylor3-21/+28
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
2021-09-05libgo: update to final Go 1.17 releaseIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/343729
2021-08-12libgo: update to Go1.17rc2Ian Lance Taylor2-11/+257
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
2020-12-30libgo: update to Go1.16beta1 releaseIan Lance Taylor4-17/+41
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-11-20compiler, libgo: change mangling schemeIan Lance Taylor1-26/+26
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-08-01libgo: update to go1.15rc1Ian Lance Taylor3-35/+46
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157
2020-01-21libgo: update to Go1.14beta1Ian Lance Taylor1-9/+5
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
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 Taylor1-71/+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
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 Taylor3-125/+76
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-09libgo: update to Go1.10beta1Ian Lance Taylor2-17/+1
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 Taylor3-15/+14
Reviewed-on: https://go-review.googlesource.com/63753 From-SVN: r252767
2017-01-14libgo: update to Go 1.8 release candidate 1Ian Lance Taylor2-10/+41
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 Taylor5-5/+24
Reviewed-on: https://go-review.googlesource.com/25150 From-SVN: r238662
2015-10-31runtime: Remove now unnecessary pad field from ParFor.Ian Lance Taylor1-67/+4
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 Taylor5-278/+292
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 Taylor1-2/+5
From-SVN: r212837
2013-11-06libgo: Update to October 24 version of master library.Ian Lance Taylor5-71/+544
From-SVN: r204466
2013-07-16libgo: Update to Go 1.1.1.Ian Lance Taylor2-2/+45
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 Taylor1-23/+25
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 Taylor4-88/+327
From-SVN: r192704
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-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-10-26Update Go library to last weekly.Ian Lance Taylor3-44/+759
From-SVN: r180552
2011-09-16Update Go library to r60.Ian Lance Taylor3-0/+136
From-SVN: r178910
2011-03-30Update to current Go library.Ian Lance Taylor2-11/+49
From-SVN: r171732
2011-03-16Update to current version of Go library (revision 94d654be2064).Ian Lance Taylor3-0/+660
From-SVN: r171076