Skip to content

Commit 620fc54

Browse files
author
Peter Goodman
authored
Merge pull request #1003 from lifting-bits/remove-llvm-14
Remove LLVM 14 support
2 parents 5288d56 + 5029b1e commit 620fc54

22 files changed

+21
-3075
lines changed

.github/workflows/vcpkg_ci_amd64.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- { name: 'ubuntu-20.04', arch: 'amd64', triplet: 'x64-linux-rel', arch_docker: '' }
3737
image:
3838
- { name: 'ubuntu', tag: '20.04' }
39-
llvm: [ 'llvm-14', 'llvm-14[pasta]', 'llvm-15', 'llvm-15[pasta]' ]
39+
llvm: [ 'llvm-15', 'llvm-15[pasta]' ]
4040

4141
container:
4242
image: docker.pkg.github.com/lifting-bits/cxx-common/vcpkg-builder-${{ matrix.image.name }}:${{ matrix.image.tag }}${{ matrix.host.arch_docker }}
@@ -194,7 +194,7 @@ jobs:
194194
- name: 'Remill build'
195195
shell: 'bash'
196196
working-directory: remill
197-
# if: contains(matrix.llvm, 'llvm-14')
197+
if: contains(matrix.llvm, 'llvm-15')
198198
run: |
199199
cmake -G Ninja \
200200
-DCMAKE_VERBOSE_MAKEFILE=ON \
@@ -209,14 +209,14 @@ jobs:
209209
- name: 'Remill test'
210210
shell: 'bash'
211211
working-directory: remill/build
212-
# if: contains(matrix.llvm, 'llvm-14')
212+
if: contains(matrix.llvm, 'llvm-15')
213213
run: |
214214
env CTEST_OUTPUT_ON_FAILURE=1 ctest .
215215
216216
- name: 'Anvill build'
217217
shell: 'bash'
218218
working-directory: anvill
219-
# if: contains(matrix.llvm, 'llvm-14')
219+
if: contains(matrix.llvm, 'llvm-15')
220220
run: |
221221
cmake -G Ninja \
222222
-DCMAKE_VERBOSE_MAKEFILE=ON \

.github/workflows/vcpkg_ci_mac.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
matrix:
3434
os:
3535
- { runner: 'macos-11', xcode: '13.0' }
36-
llvm: [ 'llvm-14', 'llvm-14[pasta]', 'llvm-15', 'llvm-15[pasta]' ]
36+
llvm: [ 'llvm-15', 'llvm-15[pasta]' ]
3737
target_arch: [ 'x64', 'arm64' ]
3838

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

.github/workflows/vcpkg_ci_windows.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ jobs:
3535
fail-fast: false
3636
matrix:
3737
llvm: [
38-
'llvm-14',
3938
'llvm-15'
4039
]
4140

@@ -133,7 +132,7 @@ jobs:
133132
path: ${{ env.VCPKG_ROOT }}/${{ env.ARTIFACT_NAME }}.7z
134133

135134
- name: 'Test rellic build'
136-
if: ${{ matrix.llvm == 'llvm-14' }}
135+
if: ${{ matrix.llvm == 'llvm-15' }}
137136
run: |
138137
cd rellic
139138
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue .\build
@@ -151,7 +150,7 @@ jobs:
151150
# python ../scripts/roundtrip.py ( Get-ChildItem tools | Where-Object {$_.name -match "rellic-decomp.exe"} ) ..\tests\tools\decomp "${env:VCPKG_ROOT}\installed\${env:TRIPLET}\tools\${{ matrix.llvm }}\clang.exe"
152151
153152
- name: 'Test remill build'
154-
# if: ${{ matrix.llvm == 'llvm-14' }}
153+
if: ${{ matrix.llvm == 'llvm-15' }}
155154
run: |
156155
cd remill
157156
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue .\build
@@ -174,7 +173,7 @@ jobs:
174173
# env CTEST_OUTPUT_ON_FAILURE=1 cmake --build . --target test || true
175174
176175
- name: 'Anvill build'
177-
# if: ${{ matrix.llvm == 'llvm-14' }}
176+
if: ${{ matrix.llvm == 'llvm-15' }}
178177
run: |
179178
cd anvill
180179
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue .\build

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ To use the dependencies, just download the compressed file and decompress it. Th
1313
For example:
1414

1515
```bash
16-
curl -LO https://github.com/lifting-bits/cxx-common/releases/latest/download/vcpkg_ubuntu-20.04_llvm-14_amd64.tar.xz
17-
tar -xJf vcpkg_ubuntu-20.04_llvm-14_amd64.tar.xz
16+
curl -LO https://github.com/lifting-bits/cxx-common/releases/latest/download/vcpkg_ubuntu-20.04_llvm-15_amd64.tar.xz
17+
tar -xJf vcpkg_ubuntu-20.04_llvm-15_amd64.tar.xz
1818
```
1919

2020
Will produce a directory, and then you'll have to set the following during your CMake configure command to use these dependencies!
2121

2222
```text
23-
-DCMAKE_TOOLCHAIN_FILE="<...>/vcpkg_ubuntu-20.04_llvm-14_amd64/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-linux-rel
23+
-DCMAKE_TOOLCHAIN_FILE="<...>/vcpkg_ubuntu-20.04_llvm-15_amd64/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-linux-rel
2424
```
2525

2626
Replace `x64-linux-rel` with `x64-osx-rel` if using the macOS pre-built download.
@@ -29,12 +29,12 @@ Replace `x64-linux-rel` with `x64-osx-rel` if using the macOS pre-built download
2929

3030
If you aren't running a supported operating system, or you want to have dependencies with a build type other than `Release`, you can build everything from source using the `./build_dependencies.sh` script (pass `--help` to see available options).
3131

32-
By default, the script will install the dependencies listed in [`dependencies.txt`](./dependencies.txt), which doesn't include an LLVM version, so passing an `llvm-14` string as an argument will actually be passed to [`vcpkg install`](https://github.com/microsoft/vcpkg/blob/master/docs/examples/installing-and-using-packages.md#install). Any other strings not matching the script's own options are also passed to the `vcpkg install` command. Furthermore, without specifying any other build script options, vcpkg determine determine the best triplet for your operating system, which means building _both_ `Debug` and `Release` build types (see the [vcpkg triplet docs](https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md) for more info).
32+
By default, the script will install the dependencies listed in [`dependencies.txt`](./dependencies.txt), which doesn't include an LLVM version, so passing an `llvm-15` string as an argument will actually be passed to [`vcpkg install`](https://github.com/microsoft/vcpkg/blob/master/docs/examples/installing-and-using-packages.md#install). Any other strings not matching the script's own options are also passed to the `vcpkg install` command. Furthermore, without specifying any other build script options, vcpkg determine determine the best triplet for your operating system, which means building _both_ `Debug` and `Release` build types (see the [vcpkg triplet docs](https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md) for more info).
3333

34-
You can customize the features that a particular package is built with by specifying the feature name between brackets, i.e. `llvm-14[target-all]` (build all target backends), to ensure non-default features are also installed along with all default features. The list of features can be found in the target port's `vcpkg.json` file. Please read the [vcpkg docs](https://github.com/microsoft/vcpkg/blob/master/docs/users/selecting-library-features.md#installing-additional-features) for more information about specifying additional features.
34+
You can customize the features that a particular package is built with by specifying the feature name between brackets, i.e. `llvm-15[target-all]` (build all target backends), to ensure non-default features are also installed along with all default features. The list of features can be found in the target port's `vcpkg.json` file. Please read the [vcpkg docs](https://github.com/microsoft/vcpkg/blob/master/docs/users/selecting-library-features.md#installing-additional-features) for more information about specifying additional features.
3535

3636
```bash
37-
./build_dependencies.sh llvm-14
37+
./build_dependencies.sh llvm-15
3838
```
3939

4040
Note that vcpkg will use binary caching to store built dependency packages (usually at `~/.cache/vcpkg` or manually set with environment variable `VCPKG_DEFAULT_BINARY_CACHE`) so that upon reinstallation/rebuilding (re-running the script) you likely won't have to rebuild everything from scratch, unless the package itself has been updated, you are using a different vcpkg triplet, your compiler has been changed/update, or any of the vcpkg scripts have changed (updated vcpkg repo). If you'd like to turn off [binary caching](https://github.com/microsoft/vcpkg/blob/master/docs/users/binarycaching.md) (not recommended), then you can either pass `--no-binarycaching` to the build script after the main options listed in or add `-binarycaching` to the `VCPKG_FEATURE_FLAGS` environment variable.
@@ -46,25 +46,25 @@ Note that vcpkg will use binary caching to store built dependency packages (usua
4646
Passing `--export-dir <DIR>` to the `./build_dependencies.sh` script, you can install the chosen dependencies in a separate directory. Otherwise, the built dependencies will be stored within the vcpkg repo directory itself (`vcpkg/installed` relative path if in the root of this repo). Separate export directories are required to keep track of different LLVM versions, since they cannot coexist within the same export (read: installation) directory.
4747

4848
```bash
49-
./build_dependencies.sh --export-dir vcpkg-llvm-14-install llvm-14
49+
./build_dependencies.sh --export-dir vcpkg-llvm-15-install llvm-15
5050
```
5151

52-
will build all of the dependencies listed in `dependencies.txt` _and_ LLVM 14 and install into a local directory named `vcpkg-llvm-14-install`.
52+
will build all of the dependencies listed in `dependencies.txt` _and_ LLVM 14 and install into a local directory named `vcpkg-llvm-15-install`.
5353

5454
Furthermore, you are able to install additional dependencies into an existing exported directory created by this script by setting the `--export-dir <path>` to the same path:
5555

5656
```bash
57-
./build_dependencies.sh --release --export-dir "<...>/vcpkg_ubuntu-20.04_llvm-14_amd64" spdlog
57+
./build_dependencies.sh --release --export-dir "<...>/vcpkg_ubuntu-20.04_llvm-15_amd64" spdlog
5858
```
5959

6060
When reusing the pre-built export directory downloaded from GitHub, you must specify `--release` (see the 'Debug and Release Builds' section below) to build only release binaries. You cannot use dependencies from different triplets.
6161

6262
### Debug and Release Builds
6363

64-
To build both debug and release versions with llvm-14, just run the following
64+
To build both debug and release versions with llvm-15, just run the following
6565

6666
```bash
67-
./build_dependencies.sh llvm-14
67+
./build_dependencies.sh llvm-15
6868
```
6969

7070
The script will be verbose about what it is doing and will clone the correct version of vcpkg (found in `vcpkg_info.txt`) and build everything in the `vcpkg` directory in the root of this repo.
@@ -83,7 +83,7 @@ $ ./build_dependencies.sh --export-dir example-export-dir
8383
If you don't want to compile a debug version of the tools, just pass `--release` to the script.
8484

8585
```bash
86-
$ ./build_dependencies.sh --release llvm-14
86+
$ ./build_dependencies.sh --release llvm-15
8787
...
8888
[+] Set the following in your CMake configure command to use these dependencies!
8989
[+] -DCMAKE_TOOLCHAIN_FILE="/Users/ekilmer/src/cxx-common/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-osx-rel -DVCPKG_HOST_TRIPLET=x64-osx-rel
@@ -98,7 +98,7 @@ There is experimental support for compiling dependencies with address sanitizer
9898
These dependencies can be built with the script by passing `--asan` to the script, and it should work whether building only Release or both Debug and Release:
9999

100100
```bash
101-
./build_dependencies.sh [--release] --asan llvm-14
101+
./build_dependencies.sh [--release] --asan llvm-15
102102
```
103103

104104
Just because your dependencies were built with a sanitizer, you'll still need to manually add support for sanitizer usage within your own project. A quick and dirty way involves specifying the extra compilation flags during CMake configure:

0 commit comments

Comments
 (0)