diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a80f6b19..dad5cab1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -196,7 +196,8 @@ jobs: - name: Setup C++ runtime run: docker exec --user root unreal bash -c ' apt-get update ; - apt-get install -y libc++-dev ' + add-apt-repository ppa:ubuntu-toolchain-r/test ; + apt-get install -y libstdc++6' - name: Download package uses: actions/download-artifact@v4 diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index d62ca4b7..ebd8cfa9 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -47,7 +47,12 @@ jobs: if: ${{ inputs.target == 'Linux' && steps.cache.outputs.cache-hit != 'true' }} run: | sudo apt-get update - sudo apt-get install zlib1g-dev libcurl4-openssl-dev clang libc++-dev + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + sudo ./llvm.sh 13 + sudo ./llvm.sh 16 + sudo apt-get install libc++-16-dev libc++abi-16-dev libstdc++-11-dev zlib1g-dev libcurl4-openssl-dev - uses: actions/setup-java@v3 if: ${{ inputs.target == 'Android' }} diff --git a/CHANGELOG.md b/CHANGELOG.md index a7c29fd3..21220e3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ - Bump Java SDK (Android) from v7.15.0 to v7.16.0 ([#665](https://github.com/getsentry/sentry-unreal/pull/665)) - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#7160) - [diff](https://github.com/getsentry/sentry-java/compare/7.15.0...7.16.0) +- Bump Native SDK from v0.7.6 to v0.7.11 ([#667](https://github.com/getsentry/sentry-unreal/pull/667)) + - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0711) + - [diff](https://github.com/getsentry/sentry-native/compare/0.7.6...0.7.11) - Bump Cocoa SDK (iOS) from v8.38.0 to v8.39.0 ([#668](https://github.com/getsentry/sentry-unreal/pull/668)) - [changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#8390) - [diff](https://github.com/getsentry/sentry-cocoa/compare/8.38.0...8.39.0) diff --git a/README.md b/README.md index 31fef606..9ea855f1 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,13 @@ The SDK compiles with three latest engine versions. - On Windows/Linux if crash event was captured during the garbage collection the `BeforeSendHandler` will not be invoked. +- It may be required to upgrade the C++ standard library (`libstdc++`) on older Linux distributions (such as Ubuntu 18.04 and 20.04) to ensure crashpad handler proper functionality within the deployment environment. This can be achieved with something like this: +``` +sudo apt-get update +sudo add-apt-repository ppa:ubuntu-toolchain-r/test +sudo apt-get install -y libstdc++6 +``` + ## Development Please see the [contribution guide](./CONTRIBUTING.md). diff --git a/modules/sentry-native b/modules/sentry-native index 37bf7336..33739b5c 160000 --- a/modules/sentry-native +++ b/modules/sentry-native @@ -1 +1 @@ -Subproject commit 37bf733697e4ce7481bc4630300617768d006a4e +Subproject commit 33739b5ccf0c0d1513d284ac64b610e74adb62cf diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh index 17ee1f9c..869ba826 100755 --- a/scripts/build-linux.sh +++ b/scripts/build-linux.sh @@ -8,13 +8,13 @@ rm -rf "${sentryArtifactsDestination}/"* # Build sentry-native using clang and libc++ for static libs cmake -S "${sentryNativeRoot}" -B "${sentryNativeRoot}/build" -D SENTRY_BACKEND=crashpad -D SENTRY_TRANSPORT=none -D SENTRY_SDK_NAME=sentry.native.unreal -D SENTRY_BUILD_SHARED_LIBS=OFF \ - -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER="clang++" -D CMAKE_CXX_FLAGS="-stdlib=libc++" -D CMAKE_EXE_LINKER_FLAGS="-stdlib=libc++" + -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_C_COMPILER=clang-13 -D CMAKE_CXX_COMPILER="clang++-13" -D CMAKE_CXX_FLAGS="-stdlib=libc++" -D CMAKE_EXE_LINKER_FLAGS="-stdlib=libc++" cmake --build "${sentryNativeRoot}/build" --target sentry --parallel cmake --install "${sentryNativeRoot}/build" --prefix "${sentryNativeRoot}/install" -# Build sentry-native using gcc for crashpad which's not depending on libc++ +# Build sentry-native using clang and libstdc++ for crashpad executable cmake -S "${sentryNativeRoot}" -B "${sentryNativeRoot}/build_crashpad_handler" -D SENTRY_BACKEND=crashpad -D SENTRY_TRANSPORT=none -D SENTRY_SDK_NAME=sentry.native.unreal -D SENTRY_BUILD_SHARED_LIBS=OFF \ - -D CMAKE_BUILD_TYPE=RelWithDebInfo + -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_C_COMPILER=clang-13 -D CMAKE_CXX_COMPILER="clang++-13" -D CMAKE_CXX_FLAGS="-stdlib=libstdc++" -D CMAKE_EXE_LINKER_FLAGS="-stdlib=libstdc++" cmake --build "${sentryNativeRoot}/build_crashpad_handler" --target sentry --parallel cmake --install "${sentryNativeRoot}/build_crashpad_handler" --prefix "${sentryNativeRoot}/install_crashpad_handler"