diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 5b21eb9a..1287aaff 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -10,6 +10,7 @@ defaults: env: buildType: RelWithDebInfo tempdir: ${{ github.workspace }}/build + libddwafVersion: 1.16.1 jobs: Coverage: runs-on: ubuntu-22.04 @@ -55,32 +56,22 @@ jobs: steps: - uses: actions/checkout@v4 name: Checkout - with: - submodules: recursive - clean: true - - name: Create Build Directory for libddwaf - run: cmake -E make_directory "${{ env.tempdir }}/buildPW" + - name: Prepare libddwaf + run: | + # Get sha256sum + brew install coreutils + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-darwin-x86_64.tar.gz + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-darwin-x86_64.tar.gz.sha256 + sha256sum --check libddwaf-${{ env.libddwafVersion }}-darwin-x86_64.tar.gz.sha256 + mkdir -p libddwaf/out + tar xvzf libddwaf-${{ env.libddwafVersion }}-darwin-x86_64.tar.gz -C libddwaf/out --strip-components=1 + mv libddwaf/out/lib/.build-id/*/*.debug libddwaf/out/lib/libddwaf.dylib.dwarf - name: Create Build Directory for JNI binding run: cmake -E make_directory "${{ env.tempdir }}/buildAG" - - name: Generate Build Scripts for libddwaf - run: | - cmake -DCMAKE_BUILD_TYPE=${{ env.buildType }} \ - -DLIBDDWAF_BUILD_STATIC=0 \ - -DCMAKE_C_FLAGS="-mmacosx-version-min=11.6 -fno-omit-frame-pointer" \ - -DCMAKE_CXX_FLAGS="-mmacosx-version-min=11.6 -fno-omit-frame-pointer" \ - -DCMAKE_INSTALL_PREFIX='${{ env.tempdir }}/out' \ - -G '${{ env.generator }}' '${{ github.workspace }}/libddwaf' - working-directory: ${{ env.tempdir }}/buildPW - - name: Build Binaries for libddwaf - run: cmake --build . --verbose - working-directory: ${{ env.tempdir }}/buildPW - - name: Install Binaries for libddwaf - run: cmake --build . --target install - working-directory: ${{ env.tempdir }}/buildPW - name: Generate Build Scripts for JNI binding run: | cmake -DCMAKE_BUILD_TYPE=${{ env.buildType }} \ - -DCMAKE_PREFIX_PATH='${{ env.tempdir }}/out/share/cmake/libddwaf/' \ + -DCMAKE_PREFIX_PATH='${{ github.workspace }}/libddwaf/out/share/cmake/libddwaf/' \ -DCMAKE_C_FLAGS="-mmacosx-version-min=11.6 -fno-omit-frame-pointer" \ -G "${{ env.generator }}" ${{ github.workspace }} working-directory: ${{ env.tempdir }}/buildAG @@ -92,7 +83,7 @@ jobs: cmake -E copy ${{ env.shlib_prefix }}ddwaf.${{ env.shlib_ext }} \ ${{ env.shlib_prefix }}ddwaf.${{ env.debug_ext }} \ ${{ github.workspace }}/native_libs/${{ env.libdir }} - working-directory: ${{ env.tempdir }}/buildPW + working-directory: ${{ github.workspace }}/libddwaf/out/lib - name: Copy JNI binding binaries to native_libs run: | cmake -E copy ${{ env.shlib_prefix }}sqreen_jni.${{ env.shlib_ext }} \ @@ -104,6 +95,7 @@ jobs: with: path: native_libs name: libsqreen_jni_${{ env.artifactsuff }} + Native_binaries_Stage_macos_aarch64: name: MacOS aarch64 runs-on: macOS-12 @@ -117,34 +109,23 @@ jobs: steps: - uses: actions/checkout@v4 name: Checkout - with: - submodules: recursive - clean: true - - name: Create Build Directory for libddwaf - run: cmake -E make_directory "${{ env.tempdir }}/buildPW" + - name: Prepare libddwaf + run: | + # Get sha256sum + brew install coreutils + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-darwin-arm64.tar.gz + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-darwin-arm64.tar.gz.sha256 + sha256sum --check libddwaf-${{ env.libddwafVersion }}-darwin-arm64.tar.gz.sha256 + mkdir -p libddwaf/out + tar xvzf libddwaf-${{ env.libddwafVersion }}-darwin-arm64.tar.gz -C libddwaf/out --strip-components=1 + mv libddwaf/out/lib/.build-id/*/*.debug libddwaf/out/lib/libddwaf.dylib.dwarf - name: Create Build Directory for JNI binding run: cmake -E make_directory "${{ env.tempdir }}/buildAG" - - name: Generate Build Scripts for libddwaf - run: | - cmake -DCMAKE_OSX_ARCHITECTURES=arm64 \ - -DCMAKE_BUILD_TYPE=${{ env.buildType }} \ - -DLIBDDWAF_BUILD_STATIC=0 \ - -DCMAKE_C_FLAGS="-mmacosx-version-min=11.6 -fno-omit-frame-pointer" \ - -DCMAKE_CXX_FLAGS="-mmacosx-version-min=11.6 -fno-omit-frame-pointer" \ - -DCMAKE_INSTALL_PREFIX='${{ env.tempdir }}/out' \ - -G '${{ env.generator }}' '${{ github.workspace }}/libddwaf' - working-directory: ${{ env.tempdir }}/buildPW - - name: Build Binaries for libddwaf - run: cmake --build . - working-directory: ${{ env.tempdir }}/buildPW - - name: Install Binaries for libddwaf - run: cmake --build . --target install - working-directory: ${{ env.tempdir }}/buildPW - name: Generate Build Scripts for JNI binding run: | cmake -DCMAKE_OSX_ARCHITECTURES=arm64 \ -DCMAKE_BUILD_TYPE=${{ env.buildType }} \ - -DCMAKE_PREFIX_PATH='${{ env.tempdir }}/out/share/cmake/libddwaf/' \ + -DCMAKE_PREFIX_PATH='${{ github.workspace }}/libddwaf/out/share/cmake/libddwaf/' \ -DCMAKE_C_FLAGS="-mmacosx-version-min=11.6 -fno-omit-frame-pointer" \ -G "${{ env.generator }}" ${{ github.workspace }} working-directory: ${{ env.tempdir }}/buildAG @@ -156,7 +137,7 @@ jobs: cmake -E copy ${{ env.shlib_prefix }}ddwaf.${{ env.shlib_ext }} \ ${{ env.shlib_prefix }}ddwaf.${{ env.debug_ext }} \ ${{ github.workspace }}/native_libs/${{ env.libdir }} - working-directory: ${{ env.tempdir }}/buildPW + working-directory: ${{ github.workspace }}/libddwaf/out/lib - name: Copy JNI binding binaries to native_libs run: | cmake -E copy ${{ env.shlib_prefix }}sqreen_jni.${{ env.shlib_ext }} \ @@ -185,31 +166,25 @@ jobs: steps: - uses: actions/checkout@v4 name: Checkout - with: - submodules: recursive - clean: true - uses: ilammy/msvc-dev-cmd@v1 name: Setup x86_64 build with: toolset: 14.29 arch: amd64 - - name: Create Build Directory for libddwaf - run: cmake -E make_directory "${{ env.tempdir }}/buildPW" + - name: Prepare libddwaf + run: | + choco install wget --no-progress + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-windows-x64.tar.gz + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-windows-x64.tar.gz.sha256 + sha256sum --check libddwaf-${{ env.libddwafVersion }}-windows-x64.tar.gz.sha256 + mkdir -p libddwaf/out + tar xvzf libddwaf-${{ env.libddwafVersion }}-windows-x64.tar.gz -C libddwaf/out --strip-components=1 + shell: bash - name: Create Build Directory for JNI binding run: cmake -E make_directory "${{ env.tempdir }}/buildAG" - - name: Generate Build Scripts for libddwaf - run: | - cmake -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DLIBDDWAF_BUILD_SHARED=0 -DCMAKE_INSTALL_PREFIX="${{ env.tempdir }}/out" -G "${{ env.generator }}" "${{ github.workspace }}/libddwaf" - working-directory: ${{ env.tempdir }}/buildPW - - name: Build Binaries for libddwaf - run: cmake --build . --target libddwaf_static - working-directory: ${{ env.tempdir }}/buildPW - - name: Install Binaries for libddwaf - run: cmake --build . --target install - working-directory: ${{ env.tempdir }}/buildPW - name: Generate Build Scripts for JNI binding run: | - cmake -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DCMAKE_PREFIX_PATH="${{ env.tempdir }}/out/share/cmake/libddwaf/" -G "${{ env.generator }}" "${{ github.workspace }}" + cmake -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DCMAKE_PREFIX_PATH="${{ github.workspace }}/libddwaf/out/share/cmake/libddwaf/" -G "${{ env.generator }}" "${{ github.workspace }}" working-directory: ${{ env.tempdir }}/buildAG - name: Build Binaries for JNI Binding run: cmake --build . @@ -224,218 +199,60 @@ jobs: path: native_libs name: libsqreen_jni_${{ env.artifactsuff }} - Native_binaries_Stage_libddwaf_linux_x86_64: - name: Linux x86_64 (semi-static libddwaf.so) - runs-on: ubuntu-20.04 - env: - dockerfile: ci/alpine-libc++-static/x86_64 - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - clean: true - - uses: docker/setup-buildx-action@v1 - id: buildx - with: - install: true - - name: Build semi-statically compiled dynamic library - run: docker buildx build -f ${{ env.dockerfile }}/Dockerfile --progress=plain -o ${{ github.workspace }}/libddwaf/out . - - name: Save Artifacts - uses: actions/upload-artifact@v4 - with: - path: libddwaf/out - name: libddwaf_linux-x86_64 - - Native_binaries_Stage_libddwaf_linux_aarch64: - name: Linux aarch64 (semi-static libddwaf.so) - runs-on: arm-4core-linux - env: - dockerfile: ci/alpine-libc++-static/aarch64 - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - clean: true - - name: Install docker - run: | - curl -fsSL https://get.docker.com -o get-docker.sh - sudo sh get-docker.sh - - name: Build semi-statically compiled dynamic library - run: | - sudo docker buildx build -f ${{ env.dockerfile }}/Dockerfile --platform linux/arm64 --progress=plain -o ${{ github.workspace }}/libddwaf/out . - sudo chown -R $USER:$USER ${{ github.workspace }}/libddwaf/out - - name: Save Artifacts - uses: actions/upload-artifact@v4 - with: - path: libddwaf/out - name: libddwaf_linux-aarch64 - - Native_binaries_Stage_linux_x86_64_glibc: - name: Linux x86_64 (glibc) - runs-on: ubuntu-20.04 - needs: - - Native_binaries_Stage_libddwaf_linux_x86_64 - env: - dockerfile: ci/manylinux/x86_64 - artifactsuff: linux_glibc-x86_64 - libdir: linux/x86_64/glibc - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - clean: true - - name: Download libddwaf artifact - uses: actions/download-artifact@v4 - with: - name: libddwaf_linux-x86_64 - path: libddwaf/out - - name: Build docker linux image - run: docker build ${{ env.dockerfile }} -t linux_cmake - - name: Build bindings - run: | - docker run --name pwaf_java_build -u $(id -u):$(id -g) -w ${{ github.workspace }} -v ${{ github.workspace }}:${{ github.workspace }} linux_cmake bash -e -c 'export VERBOSE=1; - export LIBDDWAF_INSTALL_PREFIX=${{ github.workspace }}/libddwaf/out; - set -x; - mkdir buildAG && - cd buildAG && - cmake ${{ github.workspace }} -DCMAKE_PREFIX_PATH=$LIBDDWAF_INSTALL_PREFIX/share/cmake/libddwaf -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DCMAKE_C_FLAGS="-fno-omit-frame-pointer" && - make -j && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/libddwaf.so ${{ github.workspace }}/native_libs/linux/x86_64 && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/.build-id/*/*.debug ${{ github.workspace }}/native_libs/linux/x86_64/libddwaf.so.debug && - cp -v *.so *.so.debug ${{ github.workspace }}/native_libs/${{ env.libdir }}' - shell: bash - - name: Save Artifacts - uses: actions/upload-artifact@v4 - with: - path: native_libs - name: jni_${{ env.artifactsuff }} - - Native_binaries_Stage_linux_x86_64_musl: - name: Linux x86_64 (musl) - runs-on: ubuntu-20.04 - needs: - - Native_binaries_Stage_libddwaf_linux_x86_64 - env: - dockerfile: ci/alpine - artifactsuff: linux_musl-x86_64 - libdir: linux/x86_64/musl - steps: # identical to glibc - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - clean: true - - name: Download libddwaf artifact - uses: actions/download-artifact@v4 - with: - name: libddwaf_linux-x86_64 - path: libddwaf/out - - name: Build docker linux image - run: docker build ${{ env.dockerfile }} -t linux_cmake - - name: Build bindings - run: | - docker run --name pwaf_java_build -u $(id -u):$(id -g) -w ${{ github.workspace }} -v ${{ github.workspace }}:${{ github.workspace }} linux_cmake bash -e -c 'export VERBOSE=1; - export LIBDDWAF_INSTALL_PREFIX=${{ github.workspace }}/libddwaf/out; - set -x; - mkdir buildAG && - cd buildAG && - cmake ${{ github.workspace }} -DCMAKE_PREFIX_PATH=$LIBDDWAF_INSTALL_PREFIX/share/cmake/libddwaf -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DCMAKE_C_FLAGS="-fno-omit-frame-pointer" && - make -j && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/libddwaf.so ${{ github.workspace }}/native_libs/linux/x86_64 && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/.build-id/*/*.debug ${{ github.workspace }}/native_libs/linux/x86_64/libddwaf.so.debug && - cp -v *.so *.so.debug ${{ github.workspace }}/native_libs/${{ env.libdir }}' - shell: bash - - name: Save Artifacts - uses: actions/upload-artifact@v4 - with: - path: native_libs - name: jni_${{ env.artifactsuff }} - - Native_binaries_Stage_linux_aarch64_glibc: - name: Linux aarch64 (glibc) - runs-on: arm-4core-linux - needs: - - Native_binaries_Stage_libddwaf_linux_aarch64 + Native_binaries_Stage_linux: + strategy: + fail-fast: false + matrix: + include: + - libc: glibc + arch: x86_64 + dockerfile: ci/manylinux/x86_64 + runs-on: ubuntu-20.04 + - libc: musl + arch: x86_64 + dockerfile: ci/alpine + runs-on: ubuntu-20.04 + - libc: glibc + arch: aarch64 + dockerfile: ci/manylinux/aarch64 + runs-on: arm-4core-linux + - libc: musl + arch: aarch64 + dockerfile: ci/alpine + runs-on: arm-4core-linux + name: Linux ${{ matrix.libc }} ${{ matrix.arch }} + runs-on: ${{ matrix.runs-on }} env: - dockerfile: ci/manylinux/aarch64 - artifactsuff: linux_glibc-aarch64 - libdir: linux/aarch64/glibc + artifactsuff: linux_${{ matrix.libc }}-${{ matrix.arch }} + libdir: linux/${{ matrix.arch }}/${{ matrix.libc }} steps: - name: Checkout repository uses: actions/checkout@v4 - with: - submodules: recursive - clean: true - - name: Download libddwaf artifact - uses: actions/download-artifact@v4 - with: - name: libddwaf_linux-aarch64 - path: libddwaf/out - name: Install docker run: | curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh - - name: Build docker linux image - run: sudo docker build --platform linux/arm64 ${{ env.dockerfile }} -t linux_cmake_aarch64 - - name: Build bindings + if: ${{ matrix.runs-on == 'arm-4core-linux' }} + - name: Prepare libddwaf run: | - sudo docker run --platform arm64 --name pwaf_java_build -u $(id -u):$(id -g) -w ${{ github.workspace }} -v ${{ github.workspace }}:${{ github.workspace }} linux_cmake_aarch64 bash -e -c 'export VERBOSE=1; - export LIBDDWAF_INSTALL_PREFIX=${{ github.workspace }}/libddwaf/out; - set -x; - mkdir buildAG && - cd buildAG && - cmake ${{ github.workspace }} -DCMAKE_PREFIX_PATH=$LIBDDWAF_INSTALL_PREFIX/share/cmake/libddwaf -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DCMAKE_C_FLAGS="-fno-omit-frame-pointer" && - make -j && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/libddwaf.so ${{ github.workspace }}/native_libs/linux/aarch64/ && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/.build-id/*/*.debug ${{ github.workspace }}/native_libs/linux/aarch64/libddwaf.so.debug && - cp -v *.so *.so.debug ${{ github.workspace }}/native_libs/${{ env.libdir }}' - shell: bash - - name: Save Artifacts - uses: actions/upload-artifact@v4 - with: - path: native_libs - name: jni_${{ env.artifactsuff }} - - Native_binaries_Stage_linux_aarch64_musl: - name: Linux aarch64 (musl) - runs-on: arm-4core-linux - needs: - - Native_binaries_Stage_libddwaf_linux_aarch64 - env: - dockerfile: ci/alpine - artifactsuff: linux_musl-aarch64 - libdir: linux/aarch64/musl - steps: # identical to glibc - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - clean: true - - name: Download libddwaf artifact - uses: actions/download-artifact@v4 - with: - name: libddwaf_linux-aarch64 - path: libddwaf/out - - name: Install docker - run: | - curl -fsSL https://get.docker.com -o get-docker.sh - sudo sh get-docker.sh + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-${{ matrix.arch }}-linux-musl.tar.gz + wget https://github.com/DataDog/libddwaf/releases/download/${{ env.libddwafVersion }}/libddwaf-${{ env.libddwafVersion }}-${{ matrix.arch }}-linux-musl.tar.gz.sha256 + sha256sum --check libddwaf-${{ env.libddwafVersion }}-${{ matrix.arch }}-linux-musl.tar.gz.sha256 + mkdir -p libddwaf/out + tar xvzf libddwaf-${{ env.libddwafVersion }}-${{ matrix.arch }}-linux-musl.tar.gz -C libddwaf/out --strip-components=1 + mv libddwaf/out/lib/.build-id/*/*.debug libddwaf/out/lib/libddwaf.so.debug - name: Build docker linux image - run: sudo docker build --platform linux/arm64 ${{ env.dockerfile }} -t linux_cmake + run: sudo docker build ${{ matrix.dockerfile }} -t linux_cmake - name: Build bindings run: | - sudo docker run --platform linux/arm64 --name pwaf_java_build -u $(id -u):$(id -g) -w ${{ github.workspace }} -v ${{ github.workspace }}:${{ github.workspace }} linux_cmake bash -e -c 'export VERBOSE=1; + sudo docker run --name pwaf_java_build -u $(id -u):$(id -g) -w ${{ github.workspace }} -v ${{ github.workspace }}:${{ github.workspace }} linux_cmake bash -e -c 'export VERBOSE=1; export LIBDDWAF_INSTALL_PREFIX=${{ github.workspace }}/libddwaf/out; set -x; mkdir buildAG && cd buildAG && cmake ${{ github.workspace }} -DCMAKE_PREFIX_PATH=$LIBDDWAF_INSTALL_PREFIX/share/cmake/libddwaf -DCMAKE_BUILD_TYPE=${{ env.buildType }} -DCMAKE_C_FLAGS="-fno-omit-frame-pointer" && make -j && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/libddwaf.so ${{ github.workspace }}/native_libs/linux/aarch64/ && - cp -v $LIBDDWAF_INSTALL_PREFIX/lib/.build-id/*/*.debug ${{ github.workspace }}/native_libs/linux/aarch64/libddwaf.so.debug && + cp -v $LIBDDWAF_INSTALL_PREFIX/lib/libddwaf.so{,.debug} ${{ github.workspace }}/native_libs/linux/${{ matrix.arch }}/ && cp -v *.so *.so.debug ${{ github.workspace }}/native_libs/${{ env.libdir }}' shell: bash - name: Save Artifacts @@ -498,10 +315,7 @@ jobs: - Native_binaries_Stage_macos_x86_64 - Native_binaries_Stage_macos_aarch64 - Native_binaries_Stage_windows_x86_64 - - Native_binaries_Stage_linux_x86_64_glibc - - Native_binaries_Stage_linux_x86_64_musl - - Native_binaries_Stage_linux_aarch64_glibc - - Native_binaries_Stage_linux_aarch64_musl + - Native_binaries_Stage_linux - Native_binaries_Stage_asan steps: - name: Setup JDK 1.8 diff --git a/ci/alpine-abuild-libc++/.gitignore b/ci/alpine-abuild-libc++/.gitignore deleted file mode 100644 index 84c048a7..00000000 --- a/ci/alpine-abuild-libc++/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build/ diff --git a/ci/alpine-abuild-libc++/APKBUILD b/ci/alpine-abuild-libc++/APKBUILD deleted file mode 100644 index c99d38dd..00000000 --- a/ci/alpine-abuild-libc++/APKBUILD +++ /dev/null @@ -1,66 +0,0 @@ -# Maintener: Anatol Pomozov -# Contributor: Llewelyn Trahaearn -# Contributor: Daniel Micay -# Contributor: MThinkCpp - -pkgname=libc++ -pkgver=15.0.6 -pkgrel=2 -url="https://libcxx.llvm.org/" -license=('custom:Apache 2.0 with LLVM Exception') -pkgdesc='LLVM C++ standard library.' -arch='all' -makedepends=('clang' 'cmake' 'samurai' 'python3' 'linux-headers' 'compiler-rt') -checkdepends=('llvm') -options=(!lto 'staticlibs' !strip) -source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz"{,.sig}) -sha512sums=('6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13' - 'SKIP') -validpgpkeys=('474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard - -prepare() { - mkdir -p build -} - -build() { - cd build - - cmake \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_C_FLAGS=-fno-omit-frame-pointer \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_FLAGS=-fno-omit-frame-pointer \ - \ - -DLIBUNWIND_ENABLE_SHARED=OFF \ - -DLIBUNWIND_USE_COMPILER_RT=ON \ - \ - -DLIBCXXABI_ENABLE_SHARED=ON \ - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ - -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \ - -DLIBCXXABI_USE_COMPILER_RT=ON \ - \ - -DLIBCXX_ENABLE_SHARED=OFF \ - -DLIBCXX_HAS_MUSL_LIBC=ON \ - -DLIBCXX_USE_COMPILER_RT=ON \ - -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ - \ - -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \ - -DLLVM_EXTERNAL_LIT=/usr/bin/lit \ - ../llvm-project-$pkgver.src/runtimes - CXX_FLAGS="-Wno-suggest-override" ninja unwind cxx cxxabi -} - -check() { - #ninja -C build check-cxx check-cxxabi - true -} - -package () { - DESTDIR="$pkgdir" ninja -C src/build install-unwind install-cxxabi install-cxx -} -sha512sums=" -3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949 llvm-project-15.0.6.src.tar.xz -" diff --git a/ci/alpine-abuild-libc++/Dockerfile b/ci/alpine-abuild-libc++/Dockerfile deleted file mode 100644 index c625c071..00000000 --- a/ci/alpine-abuild-libc++/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM alpine@sha256:8914eb54f968791faf6a8638949e480fef81e697984fba772b3976835194c6d4 AS build_env -RUN apk --no-cache add alpine-sdk coreutils cmake sudo bash samurai python3 linux-headers compiler-rt \ - && adduser -G abuild -g "Alpine Package Builder" -s /bin/ash -D builder \ - && echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \ - && mkdir /packages \ - && chown builder:abuild /packages \ - && mkdir -p /var/cache/apk \ - && ln -s /var/cache/apk /etc/apk/cache -COPY /abuilder /bin/ -USER builder -RUN mkdir /home/builder/package && chown builder /home/builder/package -WORKDIR /home/builder/package -ENV REPODEST /packages - -FROM build_env AS build_apk -ADD APKBUILD /home/builder/package/ -#ADD avoid-strtoll_l.patch /home/builder/package/ -RUN abuild-keygen -ain -RUN sudo apk update -RUN sudo rm /bin/ash && sudo ln -s /bin/bash /bin/ash -RUN abuild -r -RUN find /packages - -FROM scratch -ARG ARCH -COPY --from=build_apk /packages/builder/$ARCH/libc++-15.0.6-r2.apk /libc++-15.0.6-r2.$ARCH.apk diff --git a/ci/alpine-abuild-libc++/abuilder b/ci/alpine-abuild-libc++/abuilder deleted file mode 100644 index 29761508..00000000 --- a/ci/alpine-abuild-libc++/abuilder +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env ash - -set -e - -main() { - mkdir -p "$REPODEST" /home/builder/.abuild - abuild-apk update - [ "$RSA_PRIVATE_KEY" ] && { - echo -e "$RSA_PRIVATE_KEY" > "/home/builder/.abuild/$RSA_PRIVATE_KEY_NAME" - export PACKAGER_PRIVKEY="/home/builder/.abuild/$RSA_PRIVATE_KEY_NAME" - } - sudo chown -R builder:abuild /home/builder/package - sudo chown -R builder:abuild $REPODEST - - exec abuild "$@" -} - -main "$@" diff --git a/ci/alpine-abuild-libc++/build_aarch64.sh b/ci/alpine-abuild-libc++/build_aarch64.sh deleted file mode 100755 index e0d04f7b..00000000 --- a/ci/alpine-abuild-libc++/build_aarch64.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -docker buildx build --progress=plain --platform linux/arm64 --build-arg ARCH=aarch64 -f Dockerfile -o build . diff --git a/ci/alpine-abuild-libc++/build_x86_64.sh b/ci/alpine-abuild-libc++/build_x86_64.sh deleted file mode 100755 index b0df04d3..00000000 --- a/ci/alpine-abuild-libc++/build_x86_64.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -docker buildx build --progress=plain --platform linux/x86_64 --build-arg ARCH=x86_64 -f Dockerfile -o build . diff --git a/ci/alpine-libc++-static/aarch64/Dockerfile b/ci/alpine-libc++-static/aarch64/Dockerfile deleted file mode 100644 index 60065e67..00000000 --- a/ci/alpine-libc++-static/aarch64/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -FROM alpine@sha256:8914eb54f968791faf6a8638949e480fef81e697984fba772b3976835194c6d4 as build_env -RUN apk --no-cache add clang compiler-rt wget cmake make binutils musl-dev git patchelf -RUN mkdir /tmp/apk && cd /tmp/apk && \ - echo 'cc1aaa7d68b51c1b8ac1b9de198f76a93923bf120f9e23f49a9ef591c0752487f0ba678503373ef5899241087745fca4f0cd2ca0aa7ab6f8c2316fc5f0166093 libc++-15.0.6-r2.aarch64.apk' > CHECKSUM && \ - wget -q https://sqreen-ci-java.s3.amazonaws.com/apk/libc%2B%2B-15.0.6-r2.aarch64.apk -O libc++-15.0.6-r2.aarch64.apk && \ - sha512sum -c CHECKSUM && \ - apk add --allow-untrusted libc++-15.0.6-r2.aarch64.apk && \ - rm -rf /tmp/apk - -FROM build_env AS libddwaf_build -COPY . /AgentJavaNative -RUN mkdir -p /build /out -WORKDIR /build - -# NOTES: -# CMAKE_CXX_FLAGS (except -stdlib=libc++) and CMAKE_C_FLAGS are only used to -# pass the cmake compiler sanity checks. They have no effect otherwise due to -# the usage of -nodefaultlibs -# -static-libgcc is used to force libunwind to be compiled statically -# (-l:libwind.a instead of -lunwind), it has nothing to do with libgcc. -# Again, this is only needed for the cmake sanity checks. -RUN cd /build && cmake /AgentJavaNative/libddwaf \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_FLAGS="-stdlib=libc++ -Qunused-arguments -rtlib=compiler-rt -unwindlib=libunwind -static-libgcc -fno-omit-frame-pointer" \ - -DCMAKE_C_FLAGS="-Qunused-arguments -rtlib=compiler-rt -unwindlib=libunwind -static-libgcc -fno-omit-frame-pointer" \ - -DLIBDDWAF_BUILD_STATIC=OFF \ - -DLIBDDWAF_SHARED_LINKER_FLAGS='-v -nodefaultlibs -Wl,-Bstatic -lc++ /usr/lib/clang/15.0.7/lib/linux/libclang_rt.builtins-aarch64.a -lunwind -Wl,-Bdynamic -lc /usr/lib/clang/15.0.7/lib/linux/libclang_rt.builtins-aarch64.a' -# Link line will be: -# "/usr/bin/ld" -z now -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o libddwaf.so /usr/bin/../lib/crti.o /usr/lib/clang/11.1.0/lib/linux/clang_rt.crtbegin-x86_64.o -L/usr/bin/../lib -L/lib -L/usr/lib -soname libddwaf.so CMakeFiles/libddwaf_objects.dir/src/Clock.cpp.o CMakeFiles/libddwaf_objects.dir/src/parameter.cpp.o CMakeFiles/libddwaf_objects.dir/src/PowerWAF.cpp.o CMakeFiles/libddwaf_objects.dir/src/PowerWAFInterface.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWAdditive.cpp.o CMakeFiles/libddwaf_objects.dir/src/object.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWManifest.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWProcessor.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRet.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRetriever.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRule.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRuleManager.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWTransformer.cpp.o CMakeFiles/libddwaf_objects.dir/src/radixlib.c.o CMakeFiles/libddwaf_objects.dir/src/utils.cpp.o CMakeFiles/libddwaf_objects.dir/src/log.cpp.o CMakeFiles/libddwaf_objects.dir/src/rule_processor/IPWRuleProcessor.cpp.o CMakeFiles/libddwaf_objects.dir/src/rule_processor/perf_match.cpp.o CMakeFiles/libddwaf_objects.dir/src/rule_processor/re2.cpp.o -lrt -ldl -lm --no-undefined -version-script=/libddwaf/libddwaf.version --build-id=0xa75fbdf483c3016d8ae0acccea972956fe1121fe third_party/lib/libre2.a third_party/liblib_ac.a third_party/liblib_injection.a -Bstatic -lc++ /usr/lib/clang/11.1.0/lib/linux/libclang_rt.builtins-x86_64.a -lunwind -Bdynamic -lc /usr/lib/clang/11.1.0/lib/linux/libclang_rt.builtins-x86_64.a -lpthread /usr/lib/clang/11.1.0/lib/linux/clang_rt.crtend-x86_64.o /usr/bin/../lib/crtn.o -# The apparent dynamic linking to librt, libm, libpthread doesn't happen -# because in musl these are all empty libraries. The symbols live in libc, and -# will be imported. When linking to the shared library in a glibc system, -# -lm, -ldl, -lpthread need to be provided though -RUN cmake --build . --parallel -RUN patchelf --remove-needed libc.musl-aarch64.so.1 /build/libddwaf.so -RUN cmake --install . --prefix /out - -FROM scratch -COPY --from=libddwaf_build /out/ / diff --git a/ci/alpine-libc++-static/x86_64/Dockerfile b/ci/alpine-libc++-static/x86_64/Dockerfile deleted file mode 100644 index 3df24906..00000000 --- a/ci/alpine-libc++-static/x86_64/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -FROM alpine@sha256:8914eb54f968791faf6a8638949e480fef81e697984fba772b3976835194c6d4 as build_env -RUN apk --no-cache add clang compiler-rt compiler-rt wget cmake make binutils musl-dev git patchelf -RUN mkdir /tmp/apk && cd /tmp/apk && \ - echo 'db4c0012fabaf1aa86455d3e1cf8f15176429a799455b86d75ce450b75863dcef3fefcf183fc50ba977517398b7bf4e185820f3ebc1627456df9a2e1206d2013 libc++-15.0.6-r2.x86_64.apk' > CHECKSUM && \ - wget -q https://sqreen-ci-java.s3.amazonaws.com/apk/libc%2B%2B-15.0.6-r2.x86_64.apk -O libc++-15.0.6-r2.x86_64.apk && \ - sha512sum -c CHECKSUM && \ - apk add --allow-untrusted libc++-15.0.6-r2.x86_64.apk && \ - rm -rf /tmp/apk - -FROM build_env AS libddwaf_build -COPY .. /AgentJavaNative -RUN mkdir -p /build -WORKDIR /build - -# NOTES: -# CMAKE_CXX_FLAGS (except -stdlib=libc++) and CMAKE_C_FLAGS are only used to -# pass the cmake compiler sanity checks. They have no effect otherwise due to -# the usage of -nodefaultlibs -# -static-libgcc is used to force libunwind to be compiled statically -# (-l:libwind.a instead of -lunwind), it has nothing to do with libgcc. -# Again, this is only needed for the cmake sanity checks. -RUN cmake /AgentJavaNative/libddwaf \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_FLAGS="-stdlib=libc++ -Qunused-arguments -rtlib=compiler-rt -unwindlib=libunwind -static-libgcc -fno-omit-frame-pointer" \ - -DCMAKE_C_FLAGS="-Qunused-arguments -rtlib=compiler-rt -unwindlib=libunwind -static-libgcc -fno-omit-frame-pointer" \ - -DLIBDDWAF_BUILD_STATIC=OFF \ - -DLIBDDWAF_SHARED_LINKER_FLAGS='-v -nodefaultlibs -Wl,-Bstatic -lc++ /usr/lib/clang/15.0.7/lib/linux/libclang_rt.builtins-x86_64.a -lunwind -Wl,-Bdynamic -lc /usr/lib/clang/15.0.7/lib/linux/libclang_rt.builtins-x86_64.a' -# Link line will be: -# "/usr/bin/ld" -z now -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o libddwaf.so /usr/bin/../lib/crti.o /usr/lib/clang/15.0.6/lib/linux/clang_rt.crtbegin-x86_64.o -L/usr/bin/../lib -L/lib -L/usr/lib -soname libddwaf.so CMakeFiles/libddwaf_objects.dir/src/Clock.cpp.o CMakeFiles/libddwaf_objects.dir/src/parameter.cpp.o CMakeFiles/libddwaf_objects.dir/src/PowerWAF.cpp.o CMakeFiles/libddwaf_objects.dir/src/PowerWAFInterface.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWAdditive.cpp.o CMakeFiles/libddwaf_objects.dir/src/object.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWManifest.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWProcessor.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRet.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRetriever.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRule.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWRuleManager.cpp.o CMakeFiles/libddwaf_objects.dir/src/PWTransformer.cpp.o CMakeFiles/libddwaf_objects.dir/src/radixlib.c.o CMakeFiles/libddwaf_objects.dir/src/utils.cpp.o CMakeFiles/libddwaf_objects.dir/src/log.cpp.o CMakeFiles/libddwaf_objects.dir/src/rule_processor/IPWRuleProcessor.cpp.o CMakeFiles/libddwaf_objects.dir/src/rule_processor/perf_match.cpp.o CMakeFiles/libddwaf_objects.dir/src/rule_processor/re2.cpp.o -lrt -ldl -lm --no-undefined -version-script=/libddwaf/libddwaf.version --build-id=0xa75fbdf483c3016d8ae0acccea972956fe1121fe third_party/lib/libre2.a third_party/liblib_ac.a third_party/liblib_injection.a -Bstatic -lc++ /usr/lib/clang/15.0.6/lib/linux/libclang_rt.builtins-x86_64.a -lunwind -Bdynamic -lc /usr/lib/clang/15.0.6/lib/linux/libclang_rt.builtins-x86_64.a -lpthread /usr/lib/clang/15.0.6/lib/linux/clang_rt.crtend-x86_64.o /usr/bin/../lib/crtn.o -# The apparent dynamic linking to librt, libm, libpthread doesn't happen -# because in musl these are all empty libraries. The symbols live in libc, and -# will be imported. When linking to the shared library in a glibc system, -# -lm, -ldl, -lpthread need to be provided though -RUN cmake --build . --parallel -RUN patchelf --remove-needed libc.musl-x86_64.so.1 /build/libddwaf.so -RUN cmake --install . --prefix /out - -FROM scratch -COPY --from=libddwaf_build /out/ /