from Source to Binary -- How GNU Toolchain Works
引用一下簡介
一開始的切入點是簡單的 "Hello World" 程式,觀察其編譯的方式,探討 GCC 這個 compiler driver 的行為,進而擴展到 binutils 與 libc。不同於教科書的理論呈現方式,我們探討實務上面對的議題,比方說,GCC 設計初期就考慮到多個前端與後端,以及繁複的優化機制,光是 IR (中間表示式) 就歷經多次變革。在 gcc4 之後,再次大幅強化,而議程中則適時給予簡要的案例探討。另外,組譯器也並非我們預想一般單純,實務上還得充分考慮到 relocation 與位址處理的機制,最後才是連結器 / 動態連結器的引入,我們實地觀察了 x86 架構上,GNU/Linux 的執行時期行為。