Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop llvm-15 + ubuntu 20.04 #1029

Merged
merged 18 commits into from
Aug 2, 2023
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'
ekilmer marked this conversation as resolved.
Show resolved Hide resolved
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