omit frame pointerするとsetjmp/longjmpが使えない

なるほど。。
じゃぁなんでCygwin(やLinuxのようなほかのOS)ではomit-frame-pointerして無事なのかとかいろいろ考えるべきことは有るが。。原理的には、setjmpからlongjmpまでのチェインに含まれる関数だけがフレームポインタを保持しなければならないので、別にomit-frame-pointerしても良い関数というのが色々と有るはず。。(なんでMinGWは自動的にこの手の処理を検出してくれないんだろうか)
setjmpの高速なdrop-in replacementであるところのlibunwindはどうしてんのかと思ったら

Linuxにしか対応してなかった。。