gcc/libgo/go
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
..
archive libgo: update to Go1.14beta1 2020-01-21 23:53:22 -08:00
bufio libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
builtin
bytes libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
cmd libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
compress libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
container libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
context libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
crypto libgo: update to Go1.15rc2 release 2020-08-07 17:22:33 -07:00
database/sql libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
debug libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
encoding libgo: update to Go1.15rc2 release 2020-08-07 17:22:33 -07:00
errors libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
expvar libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
flag libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
fmt libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
go libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
golang.org/x libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
hash libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
html libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
image libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
index/suffixarray libgo: compile examples in _test packages 2020-01-09 23:14:57 +00:00
internal reflect: ensure uniqueness of type descriptors on AIX. 2020-10-13 17:54:37 -07:00
io libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
log libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
math libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
mime libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
net net: add hurd build tag 2020-09-28 16:16:54 -07:00
os libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
path libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
plugin libgo: update to Go1.14beta1 2020-01-21 23:53:22 -08:00
reflect reflect: ensure uniqueness of type descriptors on AIX. 2020-10-13 17:54:37 -07:00
regexp libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
runtime libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
sort
strconv libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
strings libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
sync libgo: update to Go1.15.2 release 2020-09-23 17:32:49 -07:00
syscall libgo: add 32-bit RISC-V (RV32) support 2020-09-30 19:47:48 -07:00
testdata
testing libgo: update to Go1.15.2 release 2020-09-23 17:32:49 -07:00
text libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
time libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00
unicode libgo: update to go1.15rc1 2020-08-01 11:21:40 -07:00