GNU ld

GNU ld はリンクの際に関数単位での要・不要を判断せず、ファイル単位でしか判断しないです。
なので対象オブジェクトファイル中で1つしか関数を使っていなくても、その他の不要関数がリンクされてしまいます。


これって結構すごい仕様ですよね。
確かK-tanが開発されたリンカは関数単位で要・不要を判断すると聞いたことがありますが、その方がずっといろいろ節約できますよね。
こんな事情もあり1関数1ファイルのライブラリを良く見かけます。


DLLやらOS上でのコード共有があるので一概に全然ダメだという気はないですが、GNU ldの中の人ががんばれば多大なコンピュータ資源の節約になって結果的に温暖化のスピードが緩やかになるかも。