From 0475c019d498afb882c56d99b9da9bf7f77739a8 Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Thu, 15 Apr 2021 09:17:25 -0400 Subject: [PATCH 1/6] Update to official release of LLVM 12 --- ports/llvm-12/CONTROL | 8 ++++---- ports/llvm-12/portfile.cmake | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ports/llvm-12/CONTROL b/ports/llvm-12/CONTROL index 3c6d3b90..be1a1c51 100644 --- a/ports/llvm-12/CONTROL +++ b/ports/llvm-12/CONTROL @@ -1,5 +1,5 @@ Source: llvm-12 -Version: 12.0.0-rc2 +Version: 12.0.0 Homepage: https://llvm.org/ Description: The LLVM Compiler Infrastructure Supports: !uwp @@ -107,7 +107,7 @@ Description: Build compiler's runtime libraries. Feature: flang Description: Build Fortran front end. -Build-Depends: llvm[core,mlir] +Build-Depends: llvm-12[core,mlir] Feature: lld Description: Build LLVM linker. @@ -120,11 +120,11 @@ Description: Build Multi-Level IR Compiler Framework. Feature: openmp Description: Build LLVM OpenMP libraries. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-12[core,utils] Feature: polly Description: Build polyhedral optimizations for LLVM. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-12[core,utils] Feature: enable-z3 Description: Compile with Z3 SMT solver support for Clang static analyzer. diff --git a/ports/llvm-12/portfile.cmake b/ports/llvm-12/portfile.cmake index 5e335969..e4af25e0 100644 --- a/ports/llvm-12/portfile.cmake +++ b/ports/llvm-12/portfile.cmake @@ -1,4 +1,4 @@ -set(LLVM_VERSION "12.0.0-rc2") +set(LLVM_VERSION "12.0.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) @@ -6,7 +6,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO llvm/llvm-project REF llvmorg-${LLVM_VERSION} - SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d + SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26 HEAD_REF main PATCHES 0001-fix-install-paths.patch From 909aedffcd44be16516fa697cd527f1a5c93e950 Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Thu, 15 Apr 2021 09:18:55 -0400 Subject: [PATCH 2/6] Fix unversioned LLVM feature option dependencies on LLVM core --- ports/llvm-10/CONTROL | 4 ++-- ports/llvm-11/CONTROL | 6 +++--- ports/llvm-9/CONTROL | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ports/llvm-10/CONTROL b/ports/llvm-10/CONTROL index d00f4f58..5ba3157f 100644 --- a/ports/llvm-10/CONTROL +++ b/ports/llvm-10/CONTROL @@ -110,11 +110,11 @@ Description: Build LLDB debugger. Feature: openmp Description: Build LLVM OpenMP libraries. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-10[core,utils] Feature: polly Description: Build polyhedral optimizations for LLVM. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-10[core,utils] Feature: enable-z3 Description: Compile with Z3 SMT solver support for Clang static analyzer. diff --git a/ports/llvm-11/CONTROL b/ports/llvm-11/CONTROL index daa2784d..bbf21a46 100644 --- a/ports/llvm-11/CONTROL +++ b/ports/llvm-11/CONTROL @@ -107,7 +107,7 @@ Description: Build compiler's runtime libraries. Feature: flang Description: Build Fortran front end. -Build-Depends: llvm[core,mlir] +Build-Depends: llvm-11[core,mlir] Feature: lld Description: Build LLVM linker. @@ -120,11 +120,11 @@ Description: Build Multi-Level IR Compiler Framework. Feature: openmp Description: Build LLVM OpenMP libraries. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-11[core,utils] Feature: polly Description: Build polyhedral optimizations for LLVM. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-11[core,utils] Feature: enable-z3 Description: Compile with Z3 SMT solver support for Clang static analyzer. diff --git a/ports/llvm-9/CONTROL b/ports/llvm-9/CONTROL index 4fcc9cec..786d19c4 100644 --- a/ports/llvm-9/CONTROL +++ b/ports/llvm-9/CONTROL @@ -111,11 +111,11 @@ Description: Build LLDB debugger. Feature: openmp Description: Build LLVM OpenMP libraries. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-9[core,utils] Feature: polly Description: Build polyhedral optimizations for LLVM. -Build-Depends: llvm[core,utils] +Build-Depends: llvm-9[core,utils] Feature: enable-z3 Description: Compile with Z3 SMT solver support for Clang static analyzer. From 439873a9b4e5c0b069f2c0c06b877a1398bb1ea6 Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Thu, 15 Apr 2021 09:22:46 -0400 Subject: [PATCH 3/6] Add llvm-12 to matrix CI testing --- .github/workflows/vcpkg_ci_linux.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vcpkg_ci_linux.yml b/.github/workflows/vcpkg_ci_linux.yml index 14e57f56..55c64d05 100644 --- a/.github/workflows/vcpkg_ci_linux.yml +++ b/.github/workflows/vcpkg_ci_linux.yml @@ -43,7 +43,8 @@ jobs: llvm: [ 'llvm-9', 'llvm-10', - 'llvm-11' + 'llvm-11', + 'llvm-12' ] runs-on: ${{ matrix.host.name }} From 0e3c83637d2cd2255a3bd5be259424547732f817 Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Thu, 15 Apr 2021 13:15:46 -0400 Subject: [PATCH 4/6] Limit building of tools on llvm-12 --- .github/workflows/vcpkg_ci_linux.yml | 11 +++++++---- .github/workflows/vcpkg_ci_mac.yml | 9 ++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/vcpkg_ci_linux.yml b/.github/workflows/vcpkg_ci_linux.yml index 55c64d05..b2a21cc8 100644 --- a/.github/workflows/vcpkg_ci_linux.yml +++ b/.github/workflows/vcpkg_ci_linux.yml @@ -148,10 +148,10 @@ jobs: name: ${{ env.ARTIFACT_NAME }} path: ${{ env.ARTIFACT_NAME }} - # Only for LLVM-10 right now... + # Only for LLVM-11 right now... - name: 'Build Packaged Lifting Tools' - if: ${{ matrix.llvm == 'llvm-10' }} shell: 'bash' + if: ${{ matrix.llvm == 'llvm-11' }} # NOTE: Cannot use --clean-after-build because of path issue finding semantics files in remill run: | export VCPKG_DISABLE_METRICS=1 @@ -191,6 +191,7 @@ jobs: - name: 'Test rellic build' shell: 'bash' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd rellic rm -rf build @@ -220,9 +221,9 @@ jobs: cmake --build . --target test_dependencies env CTEST_OUTPUT_ON_FAILURE=1 cmake --build . --target test || true - # Only for LLVM-10 right now... + # Only for LLVM-11 right now... - name: 'Anvill build - vcpkg remill' - if: ${{ matrix.llvm == 'llvm-10' }} + if: ${{ matrix.llvm == 'llvm-11' }} shell: 'bash' run: | cd anvill @@ -240,6 +241,7 @@ jobs: - name: 'Anvill build - custom remill' shell: 'bash' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd anvill rm -rf build @@ -256,6 +258,7 @@ jobs: - name: 'Test mcsema build' shell: 'bash' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd mcsema rm -rf build diff --git a/.github/workflows/vcpkg_ci_mac.yml b/.github/workflows/vcpkg_ci_mac.yml index f8483d08..3403f1c2 100644 --- a/.github/workflows/vcpkg_ci_mac.yml +++ b/.github/workflows/vcpkg_ci_mac.yml @@ -36,7 +36,8 @@ jobs: os: - { runner: 'macos-10.15', xcode: '12.4' } llvm: [ - 'llvm-11' + 'llvm-11', + 'llvm-12' ] runs-on: ${{ matrix.os.runner }} @@ -120,8 +121,10 @@ jobs: name: ${{ env.ARTIFACT_NAME }} path: ${{ env.ARTIFACT_NAME }} + # Only for LLVM-11 right now... - name: 'Build Packaged Lifting Tools' shell: 'bash' + if: ${{ matrix.llvm == 'llvm-11' }} # NOTE: Cannot use --clean-after-build because of path issue finding semantics files run: | ${VCPKG_ROOT}/vcpkg install \ @@ -161,6 +164,7 @@ jobs: - name: 'Test rellic build' shell: 'bash' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd rellic mkdir -p build && cd build @@ -190,6 +194,7 @@ jobs: - name: 'Anvill build - vcpkg remill' shell: 'bash' + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd anvill mkdir -p build-vcpkg && cd build-vcpkg @@ -205,6 +210,7 @@ jobs: - name: 'Anvill build - custom remill' shell: 'bash' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd anvill mkdir -p build && cd build @@ -220,6 +226,7 @@ jobs: - name: 'Test mcsema build' shell: 'bash' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd mcsema mkdir -p build && cd build From 0ecdabbeb141a2e59c2ddd22c4eca06d73c37d5c Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Thu, 15 Apr 2021 15:44:03 -0400 Subject: [PATCH 5/6] Fix llvm version for packaged tool --- .github/workflows/vcpkg_ci_linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vcpkg_ci_linux.yml b/.github/workflows/vcpkg_ci_linux.yml index b2a21cc8..05c19537 100644 --- a/.github/workflows/vcpkg_ci_linux.yml +++ b/.github/workflows/vcpkg_ci_linux.yml @@ -163,7 +163,7 @@ jobs: --triplet "${{ matrix.host.triplet }}" \ --debug \ @overlays.txt \ - remill + remill[core,${{ matrix.llvm }}] - name: Prepare ccache id: ccache_prep From caa7584b642018590b8472a41796eff425b63f7a Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Thu, 15 Apr 2021 16:06:35 -0400 Subject: [PATCH 6/6] More updates to CI --- .github/workflows/vcpkg_ci_linux.yml | 4 ++-- .github/workflows/vcpkg_ci_mac.yml | 4 ++-- .github/workflows/vcpkg_ci_windows.yml | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/vcpkg_ci_linux.yml b/.github/workflows/vcpkg_ci_linux.yml index 05c19537..fb187e0f 100644 --- a/.github/workflows/vcpkg_ci_linux.yml +++ b/.github/workflows/vcpkg_ci_linux.yml @@ -241,7 +241,7 @@ jobs: - name: 'Anvill build - custom remill' shell: 'bash' - if: ${{ matrix.llvm != 'llvm-12' }} + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd anvill rm -rf build @@ -258,7 +258,7 @@ jobs: - name: 'Test mcsema build' shell: 'bash' - if: ${{ matrix.llvm != 'llvm-12' }} + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd mcsema rm -rf build diff --git a/.github/workflows/vcpkg_ci_mac.yml b/.github/workflows/vcpkg_ci_mac.yml index 3403f1c2..4c241640 100644 --- a/.github/workflows/vcpkg_ci_mac.yml +++ b/.github/workflows/vcpkg_ci_mac.yml @@ -210,7 +210,7 @@ jobs: - name: 'Anvill build - custom remill' shell: 'bash' - if: ${{ matrix.llvm != 'llvm-12' }} + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd anvill mkdir -p build && cd build @@ -226,7 +226,7 @@ jobs: - name: 'Test mcsema build' shell: 'bash' - if: ${{ matrix.llvm != 'llvm-12' }} + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd mcsema mkdir -p build && cd build diff --git a/.github/workflows/vcpkg_ci_windows.yml b/.github/workflows/vcpkg_ci_windows.yml index f6aa8fb4..d933d54e 100644 --- a/.github/workflows/vcpkg_ci_windows.yml +++ b/.github/workflows/vcpkg_ci_windows.yml @@ -39,7 +39,8 @@ jobs: llvm: [ # 'llvm-9', # 'llvm-10', - 'llvm-11' + 'llvm-11', + 'llvm-12' ] runs-on: ['self-hosted', 'Windows', 'X64'] @@ -147,6 +148,7 @@ jobs: # remill - name: 'Test rellic build' + if: ${{ matrix.llvm != 'llvm-12' }} run: | cd rellic Remove-Item -Recurse -Force -ErrorAction SilentlyContinue .\build @@ -208,6 +210,7 @@ jobs: # # & ( Get-ChildItem install\bin | Where-Object {$_.name -match "anvill-decompile-json-.*.exe"} ) -spec ..\tools\decompile-json\tests\specs\ret0.json -bc_out ret0.bc -ir_out ret0.ir - name: 'Anvill build - custom remill' + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd anvill Remove-Item -Recurse -Force -ErrorAction SilentlyContinue .\build @@ -226,6 +229,7 @@ jobs: & ( Get-ChildItem install\bin | Where-Object {$_.name -match "anvill-decompile-json-.*.exe"} ) -spec ..\tools\decompile-json\tests\specs\ret0.json -bc_out ret0.bc -ir_out ret0.ir - name: 'Test mcsema build' + if: ${{ matrix.llvm == 'llvm-11' }} run: | cd mcsema Remove-Item -Recurse -Force -ErrorAction SilentlyContinue .\build