2011-04-01 89 views
5

什麼是'linkonce'部分,額外的榮譽它與comdat部分有什麼不同?什麼是'linkonce'部分

要清楚,我很熟悉如何COMDAT節的工作,他們是如何使用,等等。在谷歌上搜索,的linkonce幾乎只在它的假設部分的意義/目的/宗旨論壇討論已經很好理解了。

回答

4

http://gcc.gnu.org/ml/gcc/2003-09/msg00984.html似乎商量這事......

編輯

總結:

根據這一線索,COMDAT是在這個意義上,沒有單一的更抽象一點正確/標準定義什麼構成true COMDAT實現。 g ++的linkonce是/概念的實現。

在MSVC++和風河的'diab'編譯器使用的COMDAT實現中,它們的COMDAT實現允許它刪除未使用的部分;例如,如果的main.cpp鏈接對Foo.cpp中,則主要二進制可以排除任何COMDAT節foo.o的如果不引用的部分。

我不確定這種類型的摺疊是否適用於g ++ linkonce部分,但它似乎合乎邏輯。