[libunwind][cmake] Compile _Unwind* routines with -fexceptions (#121819)

When building libunwind with LTO, we found that routines, like
_Unwind_RaiseException were marked `nounwind`. This causes problems when
libunwind is then used with exception throwing code, since many of the
routines are marked `nounwind` and the compiler infers that something
like a try/catch block cannot throw resulting in a miscompile
(see #120657). Similarly, in #56825, it was pointed out that marking
_Unwind_Resume as `nounwind` causes bad exception table generation.

This patch adds the `-fexceptions` flag to the build of the C files that
define these routines, as proposed in #56825.

Fixes #56825 #120657

---------

Co-authored-by: Petr Hosek <[email protected]>
NOKEYCHECK=True
GitOrigin-RevId: 92f1f99d2ee9ff0f928741fef4fcb58e994302df
1 file changed
tree: 5529cae495c5db7fdf507569a90e7f2b8ac43fc7
  1. cmake/
  2. docs/
  3. include/
  4. src/
  5. test/
  6. .clang-format
  7. CMakeLists.txt
  8. LICENSE.TXT