2013-05-12 50 views
1

在GCC 4.8.0發佈後,我立即在OS X 10.8上使用ISL和CLooG構建它。完整的構建大小約爲3.8 GB(釋放焦油球+未定義的源代碼+所有生成的對象)。我不記得我用於該版本的編譯器。我猜GCC沒有拿起蘋果叮噹聲?那麼編譯器可能是默認的GCC 4.2.1 /usr/bin;所有其他版本的GCC都安裝在其他地方,我確信我沒有自定義CCGCC 4.8.0在OS X和Ubuntu上的構建大小差別很大

今天我在Ubuntu 12.04上再次構建了GCC 4.8.0,這次沒有ISL和CLooG。完整的構建大小約爲5.3 GB(仍然釋放焦油球+未定義的源代碼+所有生成的對象)。這個版本的編譯器是GCC 4.7.3。

這很有趣。爲什麼尺寸如此不同?這是否表明Mach-O比ELF更具空間效率?還是還有其他因素?

+0

海灣合作委員會通常是在第2或第3階段自我編譯..... – 2013-05-12 06:58:22

+0

@BasileStarynkevitch好吧,那爲什麼大小不同? – 4ae1e1 2013-05-12 07:47:49

回答

0

是隻有一個64位和其他32位和64位?

如果您想比較Mach-O與ELF,您可能需要從兩個版本中獲取幾個有代表性的文件。

+0

對於64位的東西,沒有。我沒有給任何架構配置選項。實際上x86_64-apple-darwin12.3.0和x86_64-unknown-linux-gnu都基於相同的硬件 - gnu/linux是我的Ubuntu虛擬機。 – 4ae1e1 2013-05-12 15:48:28

+0

對於代表性文件,'gcc-4.8.0'1.0M(Darwin)vs 3.0M(Linux),'g ++ - 4.8.0'1.0M vs 3.0M,'gcj-4.8.0 1.0M'對3.1M ,''gfortran-4.8.0' 1.0M vs 3.0M。這是一個很好的模式。但是像'aot-compile-4.8.0',我實際上不知道它是什麼,是3.0K和3.1K。 – 4ae1e1 2013-05-12 15:53:14

+0

Mach-O已知不包含調試部分,對吧?但是,調試信息應該位於構建中的某處,我想(否則'gdb'將不起作用)。我試圖「重新渲染」,但看不到任何有趣的東西。另一方面,我從來沒有試過'otool',所以我沒有去讀Mach-O。 – 4ae1e1 2013-05-12 15:57:42