大域変数から参照されているものは回収されてはならない。 まだ参照されているか?は、bss領域とかデータ領域の開始位置と終了位置の間を走査してやればよい。 開始や終了の位置はリンク時に解決されるので、ld のデフォルトリンカスクリプトを見ればわかりそう。 ld を --verbose で実行するとデフォルトのリンカスクリプトが表示されます。 ld --verbose /home/taro/scheme/gc $ ld --verbose GNU ld version 2.17 Debian GNU/Linux Supported emulations: elf_i386 i386linux elf_x86_64 using internal linker script: ================================================== /* Script