Skip to content

Commit

Permalink
Update PASTA patches for LLVM14 and LLVM15. Remove RocksDB, add lz4. (#…
Browse files Browse the repository at this point in the history
…988)

* Updated PASTA patches for LLVM14 and LLVM15. Remove RocksDB, add lz4.

* Make pasta a feature for LLVM

Applies PASTA patches when chosen

* Build LLVM with pasta patches in CI

Co-authored-by: Eric Kilmer <[email protected]>
  • Loading branch information
pgoodman and ekilmer authored Nov 9, 2022
1 parent 1c2e02d commit 3e3acb7
Show file tree
Hide file tree
Showing 9 changed files with 676 additions and 369 deletions.
15 changes: 10 additions & 5 deletions .github/workflows/vcpkg_ci_amd64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- { name: 'ubuntu-20.04', arch: 'amd64', triplet: 'x64-linux-rel', arch_docker: '' }
image:
- { name: 'ubuntu', tag: '20.04' }
llvm: [ 'llvm-14', 'llvm-15' ]
llvm: [ 'llvm-14', 'llvm-14[pasta]', 'llvm-15', 'llvm-15[pasta]' ]

container:
image: docker.pkg.github.com/lifting-bits/cxx-common/vcpkg-builder-${{ matrix.image.name }}:${{ matrix.image.tag }}${{ matrix.host.arch_docker }}
Expand All @@ -45,12 +45,17 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

env:
ARTIFACT_NAME: vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_${{ matrix.llvm }}_${{ matrix.host.arch }}
VCPKG_DEFAULT_HOST_TRIPLET: ${{ matrix.host.triplet }}

name: Do the job on the runner
runs-on: ubuntu-latest # run the job on the newly created runner
steps:
- name: Set Artifact Name
run: |
# Need to fix because paths with brackets cause issues
NAME="$(echo 'vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_${{ matrix.llvm }}_${{ matrix.host.arch }}' | tr '[' '-' | tr -d ']')"
echo "ARTIFACT_NAME=${NAME}" >> "$GITHUB_ENV"
- uses: actions/checkout@v3
with:
submodules: recursive
Expand Down Expand Up @@ -163,15 +168,15 @@ jobs:
mkdir -p "${INSTALL_DIR}"
- name: 'Rellic build'
if: ${{ matrix.llvm == 'llvm-14' }}
if: contains(matrix.llvm, 'llvm-14')
shell: 'bash'
run: |
cd rellic
scripts/build-preset.sh debug
scripts/roundtrip.py ${INSTALL_DIR}/install/bin/rellic-decomp* $(pwd)/tests/tools/decomp "${VCPKG_ROOT}/installed/${{ matrix.host.triplet }}/tools/llvm/clang"
- name: 'Remill build'
if: ${{ matrix.llvm == 'llvm-14' }}
if: contains(matrix.llvm, 'llvm-14')
shell: 'bash'
run: |
cd remill
Expand All @@ -184,7 +189,7 @@ jobs:
popd
- name: 'Anvill build'
if: ${{ matrix.llvm == 'llvm-14' }}
if: contains(matrix.llvm, 'llvm-14')
shell: 'bash'
run: |
cd anvill
Expand Down
31 changes: 14 additions & 17 deletions .github/workflows/vcpkg_ci_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,18 @@ jobs:
matrix:
os:
- { runner: 'macos-11', xcode: '13.0' }
llvm: [
'llvm-14',
'llvm-15'
]
target_arch: [
'x64',
'arm64'
]
llvm: [ 'llvm-14', 'llvm-14[pasta]', 'llvm-15', 'llvm-15[pasta]' ]
target_arch: [ 'x64', 'arm64' ]

runs-on: ${{ matrix.os.runner }}

env:
ARTIFACT_NAME: vcpkg_${{ matrix.os.runner }}_${{ matrix.llvm }}_xcode-${{ matrix.os.xcode }}_${{ matrix.target_arch == 'x64' && 'amd64' || matrix.target_arch }}

steps:
- name: Set Artifact Name
run: |
# Need to fix because paths with brackets cause issues
NAME="$(echo 'vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_${{ matrix.llvm }}_${{ matrix.host.arch }}' | tr '[' '-' | tr -d ']')"
echo "ARTIFACT_NAME=${NAME}" >> "$GITHUB_ENV"
- uses: actions/checkout@v3
with:
submodules: recursive
Expand Down Expand Up @@ -154,7 +151,7 @@ jobs:
- name: 'Rellic build'
shell: 'bash'
if: ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
if: contains(matrix.llvm, 'llvm-14') && matrix.target_arch == 'x64'
run: |
cd rellic
mkdir -p build && cd build
Expand All @@ -169,14 +166,14 @@ jobs:
cmake --build . --target install
- name: 'Rellic test'
shell: 'bash'
if: ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
if: contains(matrix.llvm, 'llvm-14') && matrix.target_arch == 'x64'
run: |
# Test only should run when we're not cross compiling
cd rellic/build
../scripts/roundtrip.py ./tools/rellic-decomp ../tests/tools/decomp "${VCPKG_ROOT}/installed/${TARGET_TRIPLET}/tools/llvm/clang"
- name: 'Remill build'
shell: 'bash'
if: ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
if: contains(matrix.llvm, 'llvm-14') && matrix.target_arch == 'x64'
run: |
cd remill
mkdir -p build && cd build
Expand All @@ -192,15 +189,15 @@ jobs:
cmake --build . --target test_dependencies
- name: 'Remill test'
shell: 'bash'
if: ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
if: contains(matrix.llvm, 'llvm-14') && matrix.target_arch == 'x64'
run: |
# Only run test on x64
# Sometimes fails on a flaky test
cd remill/build
env CTEST_OUTPUT_ON_FAILURE=1 cmake --build . --target test || true
- name: 'Anvill build'
shell: 'bash'
if: ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
if: contains(matrix.llvm, 'llvm-14') && matrix.target_arch == 'x64'
run: |
cd anvill
mkdir -p build && cd build
Expand All @@ -218,7 +215,7 @@ jobs:
cmake --build . --target install
- name: 'Anvil test'
shell: 'bash'
if: ${{ matrix.llvm == 'llvm-14' && matrix.target_arch == 'x64' }}
if: contains(matrix.llvm, 'llvm-14') && matrix.target_arch == 'x64'
run: |
# Only run test on x64
cd anvill/build
Expand Down
2 changes: 1 addition & 1 deletion dependencies.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ abseil
grpc[codegen]
flatbuffers
roaring
rocksdb[zstd]
capnproto
cpp-httplib
re2
zstd
lz4
doctest
sqlite3
Loading

0 comments on commit 3e3acb7

Please sign in to comment.