初始注意:該問題提到AIX是因爲它是初始上下文,但問題確實與gcc本身有關,很可能與平臺無關。GCC目標特異性和二進制兼容性
AIX應該是向後二進制兼容的:在AIX 5.1上編譯的C程序將在5.2,5.3,6.1和7.1上運行。
根據我的理解,應該構建gcc來針對特定系統(無論是在交叉編譯的情況下是當前還是另一個)。因此,構建在AIX 6.1上的gcc以AIX 6.1爲目標,並且由於二進制兼容性,可以在6.1和7.1上生成可用的二進制文件。
但是,構建在AIX 6.1上的gcc本身是一個6.1程序,所以它應該在7.1上按原樣執行。當然,如果我在7.1上編譯一個程序,這個程序可能會被鏈接或使用特定於7.1的頭文件,從而導致產生的二進制文件需要7.1。所以據我瞭解,我應該能夠在AIX 6.1上運行構建在AIX 6.1上的gcc到一臺7.1機器上,並且可能產生非最優但完全有效的二進制文件,儘管它們需要7.1作爲鏈接的副作用。
這看起來太像彩虹和獨角獸在璀璨的天空中跳舞。我聞起來有些腥,但缺乏gcc內臟的知識。請強大的人羣,啓發我。
tl; dr:基於平臺二進制兼容性生成在版本N + 1上運行的二進制文件,gcc是否可以在版本N + 1上運行並使用基於並針對版本N的OS /平臺?如果不是,什麼機制會阻止它?
原始上下文:perzl.org/aix是一個非常棒的嘗試,它爲AIX提供了最新的RPM包。它特別提供了非常有用的GCC軟件包,每個AIX版本都有一個。不幸的是,AIX 7.1沒有GCC。我認爲我很幸運能夠使用gcc for AIX 6.1。 – Lloeki 2011-01-31 14:16:19