diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e19e726058..b823cb49ec 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,6 +36,16 @@ jobs: platform: ubuntu-22.04 CC: clang CXX: clang++ + - name: Alpine Linux (GCC + musl) + platform: ubuntu-latest + container: alpine:3.21 + CC: gcc + CXX: g++ + - name: Alpine Linux (clang + musl) + platform: ubuntu-latest + container: alpine:3.21 + CC: clang + CXX: clang++ - name: Windows (x64) platform: windows-latest - name: Windows ClangCL (x64) @@ -59,15 +69,22 @@ jobs: platform: macos-latest name: ${{ matrix.name }} runs-on: ${{ matrix.platform }} + container: ${{ matrix.container }} env: CMAKE_DEFINES: "${{ matrix.CMAKE_DEFINES }}" steps: + - name: Installing Alpine Linux Dependencies + if: ${{ contains(matrix.container, 'alpine') }} + run: | + apk update + apk add git bash build-base clang cmake zlib-dev curl-dev openssl-dev libunwind-dev linux-headers pkgconf + - uses: actions/checkout@v4 with: submodules: "recursive" - - name: Installing Linux Dependencies - if: ${{ runner.os == 'Linux' }} + - name: Installing Ubuntu Dependencies + if: ${{ runner.os == 'Linux' && !matrix.container }} run: | sudo apt update sudo apt install clang zlib1g-dev libcurl4-openssl-dev libssl-dev libunwind-dev pkg-config diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b25d488ba..7fa393a355 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,6 +143,14 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") ) endif() +if(LINUX) + target_compile_definitions(crashpad_interface INTERFACE + _FILE_OFFSET_BITS=64 + _LARGEFILE64_SOURCE + _LARGEFILE_SOURCE + ) +endif() + add_library(crashpad::interface ALIAS crashpad_interface) add_subdirectory(compat) diff --git a/compat/linux/sys/ptrace.h b/compat/linux/sys/ptrace.h index 604a46ab06..bc1d383da2 100644 --- a/compat/linux/sys/ptrace.h +++ b/compat/linux/sys/ptrace.h @@ -17,7 +17,9 @@ #include_next +#ifdef __GLIBC__ #include +#endif // https://sourceware.org/bugzilla/show_bug.cgi?id=22433 #if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \ diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 872d59289d..e2a5b0188c 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -95,6 +95,13 @@ if(CRASHPAD_BUILD_TOOLS) $<$:-Wno-multichar> ) endif() + if(LINUX) + target_compile_definitions(crashpad_generate_dump PRIVATE + _FILE_OFFSET_BITS=64 + _LARGEFILE64_SOURCE + _LARGEFILE_SOURCE + ) + endif() crashpad_install_target(crashpad_generate_dump) if(APPLE)