gcc/libgo/go/internal
Clément Chigot 72b3833822 reflect: ensure uniqueness of type descriptors on AIX.
On AIX, duplication of type descriptors can occur if one is
declared in the libgo and one in the Go program being compiled.
The AIX linker isn't able to merge them together as Linux one does.
One solution is to always load libgo first but that needs a huge mechanism in
gcc core. Thus, this patch ensures that the duplication isn't visible
for the end user.

In reflect and internal/reflectlite, the comparison of rtypes is made on their
name and not only on their addresses.

In reflect, toType() function is using a canonicalization map to force rtypes
having the same rtype.String() to return the same Type. This can't be made in
internal/reflectlite as it needs sync package. But, for now, it doesn't matter
as internal/reflectlite is not widely used.

Fixes golang/go#39276

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/260158
2020-10-13 17:54:37 -07:00
..
bytealg libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
cfg libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
cpu runtime, net: fix build errors on AIX 2020-09-22 17:29:52 -07:00
fmtsort libgo: update to Go1.14beta1 2020-01-21 23:53:22 -08:00
goroot libgo: update to Go1.14beta1 2020-01-21 23:53:22 -08:00
goversion libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
lazyregexp libgo: update to Go 1.13beta1 release 2019-09-06 18:12:46 +00:00
lazytemplate libgo: update to Go 1.13beta1 release 2019-09-06 18:12:46 +00:00
nettrace libgo: update to go1.7rc3 2016-07-22 18:15:38 +00:00
obscuretestdata libgo: update to Go1.14beta1 2020-01-21 23:53:22 -08:00
oserror libgo: update to Go1.13 2019-09-12 23:22:53 +00:00
poll libgo: update to Go1.15.2 release 2020-09-23 17:32:49 -07:00
profile libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
race libgo: update to Go 1.8 release candidate 1 2017-01-14 00:05:42 +00:00
reflectlite reflect: ensure uniqueness of type descriptors on AIX. 2020-10-13 17:54:37 -07:00
singleflight libgo: update to Go1.14beta1 2020-01-21 23:53:22 -08:00
syscall libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
testenv libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
testlog libgo: update to Go1.10beta2 release 2018-01-17 14:20:29 +00:00
trace libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
unsafeheader libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
xcoff libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00