2
https://github.com/bford/PIOS/tree/lab1/boot爲什麼GCC 3.x對尺寸進行了充分優化,但GCC 4.x不適用於此代碼?
這是耶魯操作系統課程中使用的微內核存儲庫的一部分。我不是那個課程 - 這不是一個家庭作業問題。這是一個問題,源於好奇心觀察別人在一個完全不同的大學嘗試的笑話作業...
顯然,在GCC 4.x編譯該代碼導致可執行文件大於扇區(512字節),因此不適合作爲引導加載程序。在GCC 3.x中編譯它會產生大約500字節的<。使用的優化標誌是相同的,並且可以在位於該存儲庫中的Makefiles中看到。
我的問題是: GCC 3.x codegen和GCC 4.x codegen之間有什麼變化,可能導致'迴歸'?
它們都在鏈接的makefile中。 -O0是感興趣的主要標誌,並且存在於所有編譯中。沒有使用其他相關的-f標誌(來自makefile的afaik)。 Ld已通過標誌去除無關符號。 – user