我有一個Solaris sparc機器,當我構建我的程序時,它生成應該是64位的32位代碼。如何檢查原因?gcc在sparc上生成32位代碼
$ UNAME -a
的SunOS 5.10溶膠Generic_118833-33 sun4u的SPARC SUNW,太陽火V240
$在/ usr/sfw/bin中/ GCC --version
海合會(GCC)3.4.3(CSL -sol210-3_4-branch + sol_rpath)
Copyright(C)2004 Free Software Foundation,Inc.
這是免費軟件;請參閱複製條件的來源。有保修;沒有
保修;甚至不適用於適銷性或針對特定用途的適用性。
$在/ usr/sfw/bin中/ GCC test.c的
$文件爲a.out
的a.out:ELF 32位MSB可執行SPARC版本1,動態鏈接的,不剝離,可 沒有調試信息$
是的,它變成是32位。但爲什麼?它是否在安裝包時被選中? – Adil 2010-03-04 05:30:37
@Adil與x86_64不同,64位SPARC代碼需要更多內存,而不是32位以上的性能增益,所以最好僅在32位地址空間不足時使用。因此,即使硬件和內核爲64位,SPARC用戶空間默認爲32位。 – ephemient 2010-03-04 05:35:13