The macro HAVE_EHTABLE_SUPPORT is used by parts of ExecutionEngine to tell register_frame/deregister_frame is available to register the
FDE for a generated (JIT) code. It's currently set by a slowly growing set of macro tests in the respective headers, which is updated now and then when it fails to link on some platform or another due to the symbols being missing (see for example https://bugs.llvm.org/show_bug.cgi?id=5715).
This change converts the macro in two HAVE_(DE)REGISTER_FRAME config.h macros (like most of the other HAVE_* macros) and set's them based on whether CMake can actually find a definition for these symbols to link to at configuration time.
Just noting that, since the fallback path attempts to use the functions in question by finding them at runtime, I guess none of the macros queried here is actually effective at preventing an attempt to register the frame.
It is still possible that the macros were effective at preventing a hard load-dependency on certain DLLs though. @daltenty, should __SEH__ and __USING_SJLJ_EXCEPTIONS__ continue to force the fallback path?