diff options
Diffstat (limited to 'lib/mlibc/.github/workflows/abidiff.yml')
-rw-r--r-- | lib/mlibc/.github/workflows/abidiff.yml | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/lib/mlibc/.github/workflows/abidiff.yml b/lib/mlibc/.github/workflows/abidiff.yml deleted file mode 100644 index 036a7ec..0000000 --- a/lib/mlibc/.github/workflows/abidiff.yml +++ /dev/null @@ -1,158 +0,0 @@ -name: Check for ABI breaks - -on: - push: - branches-ignore: - - abi-break - pull_request: - branches-ignore: - - abi-break - -jobs: - run-abidiff: - name: Compare ABIs - runs-on: ubuntu-22.04 - container: - image: ghcr.io/managarm/mlibc-crossers:latest - defaults: - run: - shell: bash - steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y ninja-build qemu-user \ - python3-setuptools python3-jsonschema \ - python3-pip abigail-tools - pip install --break-system-packages -U xbstrap pyexpect meson - - - name: Checkout base branch - if: ${{ github.base_ref }} - uses: actions/checkout@v2 - with: - path: mlibc-base - ref: ${{ github.base_ref }} - submodules: true - fetch-depth: 4 - - - name: Checkout managarm/mlibc#master - if: ${{ github.base_ref == '' }} - uses: actions/checkout@v2 - with: - path: mlibc-base - repository: managarm/mlibc - submodules: true - ref: master - fetch-depth: 4 - - - name: Checkout branch - uses: actions/checkout@v2 - with: - path: mlibc-branch - submodules: true - - - name: Determine base ref - run: | - master_hash="$(git -C mlibc-base rev-parse HEAD)" - branch_hash="$(git -C mlibc-branch rev-parse HEAD)" - printf '%s\n' "$master_hash" "$branch_hash" - - if [ "$master_hash" = "$branch_hash" ]; then - git -C mlibc-base reset --hard HEAD^ - fi - - - name: Set up linux kernel headers - run: | - set -x - mkdir -p linux-headers-base/{src,build} - cp mlibc-base/ci/bootstrap.yml linux-headers-base/src/ - ( - cd linux-headers-base/build - xbstrap init ../src - xbstrap install linux-headers - ) - mkdir -p linux-headers-branch/{src,build} - cp mlibc-branch/ci/bootstrap.yml linux-headers-branch/src/ - ( - cd linux-headers-branch/build - xbstrap init ../src - xbstrap install linux-headers - ) - cat > linux-headers-base/build/bootstrap-site.yml << EOF - define_options: - arch: ${{matrix.arch}} - EOF - cp linux-headers-base/build/bootstrap-site.yml linux-headers-branch/build/bootstrap-site.yml - - - name: Build and install both copies - run: | - set -xe - mkdir root-base root-branch - cat > linux-x86_64.cross-file <<-EOF - [binaries] - c = ['x86_64-linux-mlibc-gcc'] - cpp = ['x86_64-linux-mlibc-g++'] - - [host_machine] - system = 'linux' - cpu_family = 'x86_64' - cpu = 'x86_64' - endian = 'little' - EOF - ( - cd mlibc-branch - meson setup \ - --cross-file=../linux-x86_64.cross-file \ - --buildtype=debugoptimized \ - -Dlinux_kernel_headers=$GITHUB_WORKSPACE/linux-headers-branch/build/packages/linux-headers/usr/include \ - build - ninja -C build - DESTDIR="$GITHUB_WORKSPACE/root-branch" ninja -C build install - ) - ( - cd mlibc-base - meson setup \ - --cross-file=../linux-x86_64.cross-file \ - --buildtype=debugoptimized \ - -Dlinux_kernel_headers=$GITHUB_WORKSPACE/linux-headers-branch/build/packages/linux-headers/usr/include \ - build - ninja -C build - DESTDIR="$GITHUB_WORKSPACE/root-base" ninja -C build install - ) - - name: Compare - run: | - # TODO(arsen): does this require handling for version suffixes? - set -e +x - exec 2>&1 # work around GHA foolishly decoupling stdout and stderr - - exitcode=0 - git -C mlibc-branch show -s --format=%s | grep -q abi-break || \ - exitcode=1 - - echo ==== RUNNING ABIDIFF... ==== - ( cd root-base; find . -type f -name '*.so'; ) | while read -r file - do - if ! file -- root-{base,branch}/"$file"; then - touch files-differ - continue - fi - abidiff \ - --no-added-syms \ - --suppr mlibc-branch/ci/abidiff_suppress.ini \ - --hd1 root-base/usr/local/include/ \ - --hd2 root-branch/usr/local/include/ \ - root-{base,branch}/"$file" \ - || touch files-differ - done - - echo ==== CHECKING FOR EXTRA FILES... ==== - ( cd root-branch; find . -type f -name '*.so'; ) | while read -r file - do - [ -e "root-base/$file" ] || file root-{base,branch}/"$file" \ - || touch files-differ - done - - if [ -e files-differ ]; then - echo SOME FILES/ABI DIFFER, SEE OUTPUT ABOVE - exit "$exitcode" - fi |