runtime: revert eqtype for AIX
commitf4b9b136808c31118c52c0addafb3fd323484d1b
authorClément Chigot <chigot.c@gmail.com>
Fri, 29 May 2020 09:39:42 +0000 (29 11:39 +0200)
committerIan Lance Taylor <iant@golang.org>
Mon, 10 Aug 2020 23:45:16 +0000 (10 16:45 -0700)
treecc518ef3fc753c719afdcd1c2eb5476188f3c027
parent636686662326496f68451e7eb91882fe462f850a
runtime: revert eqtype for AIX

AIX linker is not able to merge identical type descriptors in a single
symbol if there are coming from different object or shared object files.
This results into several pointers referencing the same type
descriptors.
Thus, eqtype is needed to ensure that these different symbols will be
considered as the same type descriptor.

Fixes golang/go#39276

gcc/go/ChangeLog:

* go-c.h (struct go_create_gogo_args): Add need_eqtype field.
* go-lang.c (go_langhook_init): Set need_eqtype.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/235697
13 files changed:
gcc/go/go-c.h
gcc/go/go-lang.c
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/expressions.cc
gcc/go/gofrontend/expressions.h
gcc/go/gofrontend/go.cc
gcc/go/gofrontend/gogo.cc
gcc/go/gofrontend/gogo.h
gcc/go/gofrontend/runtime.def
libgo/go/runtime/alg.go
libgo/go/runtime/eqtype.go [new file with mode: 0644]
libgo/go/runtime/eqtype_aix_gccgo.go [new file with mode: 0644]
libgo/go/runtime/iface.go