You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@
9
9
**Fixes**:
10
10
11
11
- Fix use-after-free on allocation failure when merging scope tags, extra, and contexts into a captured event. ([#1539](https://github.com/getsentry/sentry-native/pull/1539))
12
+
- Remove C++ exception ABI symbols (`_Unwind_Resume`, etc.) from vendored `libunwind` build. ([#1544](https://github.com/getsentry/sentry-native/pull/1544))
|`src/arm/`, `include/tdep-arm/`| ARM 32-bit — kept for potential future use |
83
86
|`src/riscv/`, `include/tdep-riscv/`| RISC-V — kept for potential future use |
87
+
|`src/unwind/`, `src/mi/_ReadULEB.c`, `src/mi/_ReadSLEB.c`| C++ exception ABI conflicts with `libgcc_eh.a`; see [above](#excluded-c-exception-abi-sources)|
84
88
|`include/libunwind-*.h` for removed arches | Referenced via `#ifdef` in `include/libunwind.h` — harmless dead code |
85
89
| Autotools artifacts (`configure`, `configure.ac`, `Makefile.am`, `Makefile.in`, `aclocal.m4`, `INSTALL`) | Carried over from the release tarball. Not used by CMake, but `configure.ac` and `Makefile.am` are useful as reference for the build logic |
86
90
91
+
### Excluded: C++ exception ABI sources
92
+
93
+
The `src/unwind/` directory and `src/mi/_ReadULEB.c` / `src/mi/_ReadSLEB.c`
94
+
are **present in the tree but excluded from the CMake build**. These files
95
+
implement the Itanium C++ exception handling ABI (`_Unwind_Resume`,
96
+
`_Unwind_RaiseException`, `_Unwind_ForcedUnwind`, etc.) — the same symbols
97
+
that `libgcc_eh.a` provides.
98
+
99
+
When sentry-native is built as a static library (`SENTRY_BUILD_SHARED_LIBS=OFF`)
100
+
and linked into a shared library whose toolchain uses `-static-libgcc`
101
+
(e.g. godot-cpp), including these symbols causes **multiple definition** errors
102
+
against `libgcc_eh.a`. Excluding them is safe because sentry-native only uses
103
+
the local unwinding API (`_ULx86_64_init_local`, `_ULx86_64_step`, etc.) and
0 commit comments