go cmd/link: 支持DUPOK符号的索引

cyvaqqii  于 6个月前  发布在  Go
关注(0)|答案(3)|浏览(46)

在编译器中常见的情况是,包A定义了一个DUPOK符号X,包B导入了包A,然后包B需要引用相同的DUPOK符号X。
今天,我们通过让包B重新定义符号X来处理这个问题,链接器会丢弃重复的符号。这种方法是可行的(通常情况下,我们需要链接器支持DUPOK符号),但这意味着编译器会花费不必要的时间重新定义符号,而且这意味着对象文件会因为冗余定义而变得过大。
如果我们仍然可以使用符号索引来引用另一个对象文件中定义的DUPOK符号,那就太好了。今天,这对于减少匿名类型和方法 Package 器的冗余类型描述符已经很有用了;但它很可能也会对避免编译冗余的泛型函数/类型的示例也很有用。

smdnsysy

smdnsysy2#

将球打向1.20,这在1.19版本中无法解决。

wkftcu5l

wkftcu5l3#

将文本内容移动到待办事项列表中。

相关问题