Skip to content

Commit

Permalink
Drop llvm-15 + ubuntu 20.04 and more (#1029)
Browse files Browse the repository at this point in the history
* Update vcpkg

* bump rellic

* bump anvill/remill

* Cleanup NuGet cache to fix space error on runner

* Use anvill patchable-ir-main

---------

Co-authored-by: Eric Kilmer <[email protected]>
  • Loading branch information
Ninja3047 and ekilmer authored Aug 2, 2023
1 parent 32a7e4c commit 7b344ae
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 41 deletions.
39 changes: 19 additions & 20 deletions .github/workflows/vcpkg_ci_amd64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,8 @@ jobs:
matrix:
image:
# 'name' is Docker image name whereas 'os' is more generic
- { os: 'ubuntu', name: 'ubuntu-v2', tag: '20.04' }
- { os: 'ubuntu', name: 'ubuntu-v2', tag: '22.04' }
llvm: [ 'llvm-15', 'llvm-16[pasta]', 'llvm-16' ]
llvm: [ 'llvm-16[pasta]', 'llvm-16' ]
target_arch: [ 'x64', 'arm64' ]

container:
Expand Down Expand Up @@ -119,6 +118,12 @@ jobs:
echo "VCPKG_ROOT=$(pwd)/${{ env.ARTIFACT_NAME }}" >> $GITHUB_ENV
echo "TARGET_TRIPLET=${{ matrix.target_arch }}-linux-rel" >> $GITHUB_ENV
- name: Cleanup NuGet
shell: 'bash'
run: |
du -sh ~/.nuget || true
rm -rf ~/.nuget || true
- name: Upload CMake logs on error
if: failure()
uses: actions/upload-artifact@v3
Expand Down Expand Up @@ -175,7 +180,7 @@ jobs:
- name: 'Rellic build'
shell: 'bash'
working-directory: rellic
if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
if: matrix.target_arch == 'x64'
run: |
# Does not compile with gcc
export CC="$(which clang)"
Expand All @@ -191,10 +196,10 @@ jobs:
cmake --build build --target install
- name: 'Rellic test'
shell: 'bash'
working-directory: rellic/build
if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
working-directory: rellic
if: matrix.target_arch == 'x64'
run: |
../scripts/roundtrip.py ./tools/rellic-decomp ../tests/tools/decomp "${VCPKG_ROOT}/installed/${TARGET_TRIPLET}/tools/llvm/clang"
cmake --build build --target test
- name: 'Remill dependencies'
shell: 'bash'
Expand All @@ -211,11 +216,6 @@ jobs:
if: matrix.target_arch == 'x64'
working-directory: remill
run: |
if [[ '${{ matrix.image.tag }}' == '20.04' ]]; then
# Remill uses C++20 concepts that aren't supported by gcc-9 in 20.04
export CC="$(which clang)"
export CXX="$(which clang++)"
fi
cmake -G Ninja \
-DCMAKE_VERBOSE_MAKEFILE=ON \
"-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" \
Expand All @@ -237,7 +237,7 @@ jobs:
- name: 'Anvill build'
shell: 'bash'
working-directory: anvill
if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
if: matrix.target_arch == 'x64'
run: |
# TODO: Does not support compilation with gcc
export CC="$(which clang)"
Expand All @@ -257,17 +257,16 @@ jobs:
-S . -B build
cmake --build build
cmake --install build
# NOTE: This is an old test that doesn't make sense anymore
# Need to find some other way to run a smoketest
#- name: 'Anvill test'
# shell: 'bash'
# working-directory: anvill
# if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
# run: |
# ./install/bin/anvill-decompile-spec --spec ../bin/Decompile/tests/specs/ret0.json --bc_out ./ret0.bc --ir_out ret0.ir
- name: 'Anvill test'
shell: 'bash'
working-directory: anvill
if: matrix.target_arch == 'x64'
run: |
cmake --build build --target test
- name: Cache cleanup and reporting
shell: 'bash'
run: |
rm -rf vcpkg/{buildtrees,installed,packages}
ccache --show-stats
df -h
29 changes: 12 additions & 17 deletions .github/workflows/vcpkg_ci_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
matrix:
os:
- { runner: 'macos-12', xcode: '14.2' }
llvm: [ 'llvm-15', 'llvm-16[pasta]', 'llvm-16' ]
llvm: [ 'llvm-16[pasta]', 'llvm-16' ]
target_arch: [ 'x64', 'arm64' ]

runs-on: ${{ matrix.os.runner }}
Expand Down Expand Up @@ -177,7 +177,7 @@ jobs:
- name: 'Rellic build'
shell: 'bash'
working-directory: rellic
if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
if: matrix.target_arch == 'x64'
run: |
cmake -G Ninja \
-DCMAKE_VERBOSE_MAKEFILE=ON \
Expand All @@ -191,11 +191,10 @@ jobs:
cmake --install build
- name: 'Rellic test'
shell: 'bash'
working-directory: rellic/build
if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
working-directory: rellic
if: matrix.target_arch == 'x64'
run: |
# Test only should run when we're not cross compiling
../scripts/roundtrip.py ./tools/rellic-decomp ../tests/tools/decomp "${VCPKG_ROOT}/installed/${TARGET_TRIPLET}/tools/llvm/clang"
cmake --build build --target test
- name: 'Remill dependencies'
shell: 'bash'
Expand Down Expand Up @@ -234,7 +233,7 @@ jobs:
- name: 'Anvill build'
shell: 'bash'
working-directory: anvill
if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
if: matrix.target_arch == 'x64'
run: |
cmake -G Ninja \
-DCMAKE_VERBOSE_MAKEFILE=ON \
Expand All @@ -251,16 +250,12 @@ jobs:
-S . -B build
cmake --build build
cmake --install build
# NOTE: This is an old test that doesn't make sense anymore
# Need to find some other way to run a smoketest
#- name: 'Anvill test'
# shell: 'bash'
# working-directory: anvill
# # if: contains(matrix.llvm, 'llvm-15') && matrix.target_arch == 'x64'
# if: matrix.target_arch == 'x64'
# run: |
# ./install/bin/anvill-decompile-spec -spec ../bin/Decompile/tests/specs/ret0.json -bc_out ./ret0.bc -ir_out ret0.ir
- name: 'Anvill test'
shell: 'bash'
working-directory: anvill
if: matrix.target_arch == 'x64'
run: |
cmake --build build --target test
- name: Cache cleanup and reporting
shell: 'bash'
Expand Down
2 changes: 1 addition & 1 deletion anvill
Submodule anvill updated 94 files
+96 −77 .github/workflows/build.yml
+1 −1 CMakeLists.txt
+6 −6 Dockerfile
+2 −2 README.md
+15 −4 bin/Decompile/Main.cpp
+0 −176 bin/Decompile/tests/scripts/roundtrip.py
+103 −18 ci/challenge_bins_test_settings.json
+168 −10 data_specifications/specification.proto
+14 −0 include/anvill/ABI.h
+4 −0 include/anvill/CrossReferenceFolder.h
+247 −13 include/anvill/Declarations.h
+38 −22 include/anvill/Lifters.h
+7 −2 include/anvill/Optimize.h
+53 −0 include/anvill/Passes/BasicBlockPass.h
+3 −3 include/anvill/Passes/CodeQualityStatCollector.h
+50 −0 include/anvill/Passes/ConvertPointerArithmeticToGEP.h
+29 −0 include/anvill/Passes/InlineBasicBlockFunctions.h
+0 −50 include/anvill/Passes/LowerSwitchIntrinsics.h
+0 −24 include/anvill/Passes/LowerTypeHintIntrinsics.h
+0 −40 include/anvill/Passes/RecoverBasicStackFrame.h
+16 −0 include/anvill/Passes/RemoveAnvillReturns.h
+44 −0 include/anvill/Passes/RemoveCallIntrinsics.h
+0 −63 include/anvill/Passes/RemoveRemillFunctionReturns.h
+34 −0 include/anvill/Passes/ReplaceStackReferences.h
+3 −2 include/anvill/Result.h
+34 −4 include/anvill/Specification.h
+1 −16 include/anvill/Transforms.h
+143 −0 include/anvill/Type.h
+52 −4 include/anvill/Utils.h
+15 −6 lib/ABI.cpp
+1 −1 lib/Arch/AArch64_C.cpp
+10 −9 lib/Arch/Arch.cpp
+10 −7 lib/Arch/Arch.h
+324 −0 lib/Arch/PPC_SysV.cpp
+28 −0 lib/Arch/StubABI.cpp
+40 −32 lib/CMakeLists.txt
+25 −5 lib/CrossReferenceFolder.cpp
+364 −53 lib/Declarations.cpp
+790 −0 lib/Lifters/BasicBlockLifter.cpp
+172 −0 lib/Lifters/BasicBlockLifter.h
+298 −0 lib/Lifters/CodeLifter.cpp
+87 −0 lib/Lifters/CodeLifter.h
+8 −7 lib/Lifters/DataLifter.cpp
+4 −4 lib/Lifters/EntityLifter.cpp
+189 −1,299 lib/Lifters/FunctionLifter.cpp
+73 −225 lib/Lifters/FunctionLifter.h
+34 −19 lib/Lifters/Options.cpp
+18 −20 lib/Lifters/ValueLifter.cpp
+7 −7 lib/Lifters/ValueLifter.h
+136 −22 lib/Optimize.cpp
+58 −27 lib/Passes/CodeQualityStatCollector.cpp
+579 −0 lib/Passes/ConvertPointerArithmeticToGEP.cpp
+38 −0 lib/Passes/InlineBasicBlockFunctions.cpp
+0 −214 lib/Passes/LowerSwitchIntrinsics.cpp
+0 −66 lib/Passes/LowerTypeHintIntrinsics.cpp
+0 −550 lib/Passes/RecoverBasicStackFrame.cpp
+85 −0 lib/Passes/RemoveCallIntrinsics.cpp
+0 −252 lib/Passes/RemoveRemillFunctionReturns.cpp
+9 −10 lib/Passes/RemoveStackPointerCExprs.cpp
+378 −0 lib/Passes/ReplaceStackReferences.cpp
+13 −13 lib/Passes/SliceManager.cpp
+76 −97 lib/Passes/SplitStackFrameAtReturnAddress.cpp
+3 −5 lib/Passes/TransformRemillJumpIntrinsics.cpp
+38 −6 lib/Passes/Utils.cpp
+8 −4 lib/Passes/Utils.h
+247 −55 lib/Protobuf.cpp
+24 −2 lib/Protobuf.h
+61 −9 lib/Specification.cpp
+11 −1 lib/Specification.h
+260 −50 lib/Type.cpp
+365 −112 lib/Utils.cpp
+1 −1 libraries/lifting-tools-ci
+1 −1 remill
+13 −14 scripts/build.sh
+1 −1 scripts/run-on-anghabench.sh
+22 −10 scripts/test-amp-challenge-bins.sh
+6 −12 scripts/test-angha-1k.sh
+1 −2 tests/anvill_passes/CMakeLists.txt
+5,036 −0 tests/anvill_passes/data/MainBasicBlocks.ll
+7 −7 tests/anvill_passes/src/BranchRecoveryPass.cpp
+44 −46 tests/anvill_passes/src/BrightenPointers.cpp
+3 −4 tests/anvill_passes/src/InstructionFolderPass.cpp
+30 −32 tests/anvill_passes/src/RecoverEntityUses.cpp
+0 −317 tests/anvill_passes/src/RecoverStackFrameInformation.cpp
+4 −4 tests/anvill_passes/src/RemoveStackPointerCExprs.cpp
+19 −16 tests/anvill_passes/src/SinkSelectionsIntoBranchTargets.cpp
+4 −6 tests/anvill_passes/src/SplitStackFrameAtReturnAddress.cpp
+0 −319 tests/anvill_passes/src/SwitchLoweringPass.cpp
+51 −0 tests/anvill_passes/src/TestAbstractStackBB.cpp
+47 −47 tests/anvill_passes/src/TransformRemillJump.cpp
+0 −8 tests/anvill_passes/src/Utils.cpp
+0 −2 tests/anvill_passes/src/Utils.h
+4 −5 tests/anvill_passes/src/XorConversionPass.cpp
+0 −10 tests/tools/src/TypeSpecification.cpp
2 changes: 1 addition & 1 deletion vcpkg_info.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
https://github.com/trail-of-forks/vcpkg.git
fix-cross-compile-linux
cxx-common

0 comments on commit 7b344ae

Please sign in to comment.