2KBぐらいEXEファイルを作るテスト libcに頼らない、WindowsAPIを直接たたく小さいツール向け
- -nostdlib -nodefaultlibs -nostartfiles: libc, mingw標準のあれこれをつけない
- -fno-ident: ファイル内に
- -fno-asynchronous-unwind-tables: eh_handlerとかを作らない?
- -R .reloc: relocセクションを削除。小さいプログラムならいらないでしょう。
- .rdataと.textのマージ
- Windowsではセクションがnbyteの倍数でないとロードされない制約がある。
- .rdataセクションを作られると、たった数バイトの文字列などのために結構なpaddingが挿入される
- リンカスクリプトにより.textセクションに.rdataをマージする。
- MSVCならリンカオプションで何とかなるが、gccだとリンカスクリプトを書く必要があった。