上記ソースを check.c として、1.5.16, 1.5.17 だと次のような結果になります。

>gcc -o check -DCHECK check.c ; ./check ; echo $? ; sleep 5 ; ps
0
PID PPID PGID WINPID TTY UID STIME COMMAND
1800 1 1800 1800 ? 13002 Jun 11 /usr/bin/ssh-agent
2164 1 2164 2164 ? 13002 Jun 12 /usr/local/bin/ck
212 2164 212 3664 0 13002 Jun 12 /usr/bin/tcsh
1068 212 1068 3192 0 13002 22:14:22 /usr/bin/ps

>gcc -o check check.c ; ./check ; echo $? ; sleep 5 ; ps
0
PID PPID PGID WINPID TTY UID STIME COMMAND
1800 1 1800 1800 ? 13002 Jun 11 /usr/bin/ssh-agent
2164 1 2164 2164 ? 13002 Jun 12 /usr/local/bin/ck
212 2164 212 3664 0 13002 Jun 12 /usr/bin/tcsh
O 2500 1 1236 2500 0 13002 22:13:18 /home/atarashi/check
2064 212 2064 284 0 13002 22:13:23 /usr/bin/ps

プロセスが残ったままになるのでファイルが削除できず ./configure がこけます。
1.5.13-1.5.15 だと CHECK を定義しようがしまいがプロセスは残りません。

これ挙動が変ですよね?皆さんのところでも同じですか?