-
Notifications
You must be signed in to change notification settings - Fork 76
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'llvm-11.1.0-merge' into release_11.x
- Loading branch information
Showing
836 changed files
with
29,479 additions
and
7,336 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
name: Clang Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- '.github/workflows/clang-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- '.github/workflows/clang-tests.yml' | ||
|
||
jobs: | ||
build_clang: | ||
name: clang check-all | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Test clang | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release | ||
build_target: check-clang |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
name: libclang ABI Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- '.github/workflows/libclang-abi-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- '.github/workflows/libclang-abi-tests.yml' | ||
|
||
jobs: | ||
abi-dump-setup: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
BASELINE_REF: ${{ steps.vars.outputs.BASELINE_REF }} | ||
ABI_HEADERS: ${{ steps.vars.outputs.ABI_HEADERS }} | ||
ABI_LIBS: ${{ steps.vars.outputs.ABI_LIBS }} | ||
BASELINE_VERSION_MAJOR: ${{ steps.vars.outputs.BASELINE_VERSION_MAJOR }} | ||
LLVM_VERSION_MAJOR: ${{ steps.version.outputs.LLVM_VERSION_MAJOR }} | ||
LLVM_VERSION_MINOR: ${{ steps.version.outputs.LLVM_VERSION_MINOR }} | ||
LLVM_VERSION_PATCH: ${{ steps.version.outputs.LLVM_VERSION_PATCH }} | ||
steps: | ||
- name: Checkout source | ||
uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
|
||
- name: Get LLVM version | ||
id: version | ||
uses: llvm/actions/get-llvm-version@main | ||
|
||
- name: Setup Variables | ||
id: vars | ||
run: | | ||
if [ ${{ steps.version.outputs.LLVM_VERSION_MINOR }} -ne 0 -o ${{ steps.version.outputs.LLVM_VERSION_PATCH }} -eq 0 ]; then | ||
echo ::set-output name=BASELINE_VERSION_MAJOR::$(( ${{ steps.version.outputs.LLVM_VERSION_MAJOR }} - 1)) | ||
echo ::set-output name=ABI_HEADERS::clang-c | ||
echo ::set-output name=ABI_LIBS::libclang.so | ||
else | ||
echo ::set-output name=BASELINE_VERSION_MAJOR::${{ steps.version.outputs.LLVM_VERSION_MAJOR }} | ||
echo ::set-output name=ABI_HEADERS::. | ||
echo ::set-output name=ABI_LIBS::libclang.so libclang-cpp.so | ||
fi | ||
abi-dump: | ||
needs: abi-dump-setup | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
name: | ||
- build-baseline | ||
- build-latest | ||
include: | ||
- name: build-baseline | ||
llvm_version_major: ${{ needs.abi-dump-setup.outputs.BASELINE_VERSION_MAJOR }} | ||
ref: llvmorg-${{ needs.abi-dump-setup.outputs.BASELINE_VERSION_MAJOR }}.0.0 | ||
repo: llvm/llvm-project | ||
- name: build-latest | ||
llvm_version_major: ${{ needs.abi-dump-setup.outputs.LLVM_VERSION_MAJOR }} | ||
ref: ${{ github.sha }} | ||
repo: ${{ github.repository }} | ||
steps: | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- name: Install abi-compliance-checker | ||
run: | | ||
sudo apt-get install abi-dumper autoconf pkg-config | ||
- name: Install universal-ctags | ||
run: | | ||
git clone https://github.com/universal-ctags/ctags.git | ||
cd ctags | ||
./autogen.sh | ||
./configure | ||
sudo make install | ||
- name: Download source code | ||
uses: llvm/actions/get-llvm-project-src@main | ||
with: | ||
ref: ${{ matrix.ref }} | ||
repo: ${{ matrix.repo }} | ||
- name: Configure | ||
run: | | ||
mkdir install | ||
cmake -B build -S llvm -G Ninja -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="" -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_C_FLAGS_DEBUG="-g -Og" -DCMAKE_CXX_FLAGS_DEBUG="-g -Og" -DCMAKE_INSTALL_PREFIX=`pwd`/install llvm | ||
- name: Build | ||
run: ninja -C build/ ${{ needs.abi-dump-setup.outputs.ABI_LIBS }} install-clang-headers | ||
- name: Dump ABI | ||
run: | | ||
parallel abi-dumper -lver ${{ matrix.ref }} -skip-cxx -public-headers ./install/include/${{ needs.abi-dump-setup.outputs.ABI_HEADERS }} -o {}-${{ matrix.ref }}.abi ./build/lib/{} ::: ${{ needs.abi-dump-setup.outputs.ABI_LIBS }} | ||
for lib in ${{ needs.abi-dump-setup.outputs.ABI_LIBS }}; do | ||
# Remove symbol versioning from dumps, so we can compare across major versions. | ||
sed -i 's/LLVM_${{ matrix.llvm_version_major }}/LLVM_NOVERSION/' $lib-${{ matrix.ref }}.abi | ||
tar -czf $lib-${{ matrix.ref }}.abi.tar.gz $lib-${{ matrix.ref }}.abi | ||
done | ||
- name: Upload ABI file | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ matrix.name }} | ||
path: "*${{ matrix.ref }}.abi.tar.gz" | ||
|
||
abi-compare: | ||
runs-on: ubuntu-latest | ||
needs: | ||
- abi-dump-setup | ||
- abi-dump | ||
steps: | ||
- name: Download baseline | ||
uses: actions/download-artifact@v1 | ||
with: | ||
name: build-baseline | ||
- name: Download latest | ||
uses: actions/download-artifact@v1 | ||
with: | ||
name: build-latest | ||
|
||
- name: Install abi-compliance-checker | ||
run: sudo apt-get install abi-compliance-checker | ||
- name: Compare ABI | ||
run: | | ||
for lib in ${{ needs.abi-dump-setup.outputs.ABI_LIBS }}; do | ||
abi-compliance-checker -lib $lib -old build-baseline/$lib*.abi.tar.gz -new build-latest/$lib*.abi.tar.gz | ||
done | ||
- name: Upload ABI Comparison | ||
if: always() | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: compat-report-${{ github.sha }} | ||
path: compat_reports/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
name: libclc Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'libclc/**' | ||
- '.github/workflows/libclc-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'libclc/**' | ||
- '.github/workflows/libclc-tests.yml' | ||
|
||
jobs: | ||
build_libclc: | ||
name: libclc test | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
# Disable build on windows, because I can't figure out where llvm-config is. | ||
#- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Build clang | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release | ||
build_target: "" | ||
- name: Build and test libclc | ||
run: | | ||
mkdir libclc-build | ||
cd libclc-build | ||
cmake -G Ninja ../libclc -DLLVM_CONFIG=../build/bin/llvm-config | ||
ninja | ||
ninja test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
name: LLD Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'lld/**' | ||
- 'llvm/**' | ||
- '.github/workflows/lld-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'lld/**' | ||
- 'llvm/**' | ||
- '.github/workflows/lld-tests.yml' | ||
|
||
jobs: | ||
build_lld: | ||
name: lld check-all | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Test lld | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="lld" -DCMAKE_BUILD_TYPE=Release | ||
build_target: check-lld |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: lldb Tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'release/**' | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'lldb/**' | ||
- '.github/workflows/lldb-tests.yml' | ||
pull_request: | ||
paths: | ||
- 'clang/**' | ||
- 'llvm/**' | ||
- 'lldb/**' | ||
- '.github/workflows/lldb-tests.yml' | ||
|
||
jobs: | ||
build_lldb: | ||
name: lldb build | ||
runs-on: ${{ matrix.os }} | ||
# Workaround for build faliure on Mac OS X: llvm.org/PR46190, https://github.com/actions/virtual-environments/issues/2274 | ||
env: | ||
CPLUS_INCLUDE_PATH: /usr/local/opt/llvm/include/c++/v1:/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
- windows-latest | ||
- macOS-latest | ||
steps: | ||
- name: Setup Windows | ||
if: startsWith(matrix.os, 'windows') | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: Install Ninja | ||
uses: llvm/actions/install-ninja@main | ||
- uses: actions/checkout@v1 | ||
with: | ||
fetch-depth: 1 | ||
- name: Build lldb | ||
uses: llvm/actions/build-test-llvm-project@main | ||
with: | ||
# Mac OS requries that libcxx is enabled for lldb tests, so we need to disable them. | ||
cmake_args: -G Ninja -DLLVM_ENABLE_PROJECTS="clang;lldb" -DCMAKE_BUILD_TYPE=Release -DLLDB_INCLUDE_TESTS=OFF | ||
# check-lldb is not consistent, so we only build lldb. | ||
build_target: "" |
Oops, something went wrong.