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

Update LLVM to latest (v16) #8125

Closed
3 of 11 tasks
Tractorou24 opened this issue Aug 21, 2023 · 9 comments
Closed
3 of 11 tasks

Update LLVM to latest (v16) #8125

Tractorou24 opened this issue Aug 21, 2023 · 9 comments
Assignees
Labels
awaiting-deployment Code complete; awaiting deployment and/or deployment in progress feature request OS: Windows

Comments

@Tractorou24
Copy link

Tractorou24 commented Aug 21, 2023

Tool name

LLVM

Tool license

Apache License v2.0 with LLVM Exceptions

Add or update?

  • Add
  • Update

Desired version

16.0.6 (latest release)

Approximate size

2.5GB (should not be bigger than previous 15.x versions)

Brief description of tool

No response

URL for tool's homepage

No response

Provide a basic test case to validate the tool's functionality.

No response

Platforms where you need the tool

  • Azure DevOps
  • GitHub Actions

Runner images where you need the tool

  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 11
  • macOS 12
  • macOS 13
  • Windows Server 2019
  • Windows Server 2022

Can this tool be installed during the build?

I think it's already done at build time, yes.

Tool installation time in runtime

No response

Are you willing to submit a PR?

Sure!

@Alexey-Ayupov
Copy link
Collaborator

Hi @Tractorou24, we will check the possibility.

@mikhailkoliada mikhailkoliada added the awaiting-deployment Code complete; awaiting deployment and/or deployment in progress label Aug 24, 2023
@mikhailkoliada
Copy link
Contributor

Added, will be deployed next week

@pdimov
Copy link

pdimov commented Aug 24, 2023

This is necessary because the 20230820.1.0 image has an updated Visual Studio 2022 whose STL requires Clang 16.

@ChrisThrasher
Copy link

#8134

Looks like the fix has been merged

@Tractorou24
Copy link
Author

Yes, thank you for the fix!

@Sainan
Copy link

Sainan commented Aug 25, 2023

> deploys faulty setup
> fixes issue
> "will be deployed next week"

love me some billion dollar companies with inefficient internal processes that apparently don't allow mistakes to be undone, nor fixed, so you just have stuff in a broken state until the cogs are done spinning... :|

lagru added a commit to lagru/scikit-image that referenced this issue Aug 26, 2023
This is a "manual" and temporary fix until version 16 is included in the
image "windows-latest" by default. For more see
scikit-image#7108 and
actions/runner-images#8125
ohodson added a commit to cloudflare/workerd that referenced this issue Aug 31, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
ohodson added a commit to cloudflare/workerd that referenced this issue Aug 31, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
ohodson added a commit to cloudflare/workerd that referenced this issue Aug 31, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
ohodson added a commit to cloudflare/workerd that referenced this issue Aug 31, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
ohodson added a commit to cloudflare/workerd that referenced this issue Aug 31, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
ohodson added a commit to cloudflare/workerd that referenced this issue Sep 1, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
ohodson added a commit to cloudflare/workerd that referenced this issue Sep 1, 2023
This is required due to actions/runner-images#8125

An assortment of changes to enable building with the LLVM16 toolchain on Windows:
- add Windows-2022 back to the test strategy matrix in test.yml.
- add an LLVM upgrade step to test.yml to install LLVM 16
- add command to test.yml to fix the include path for LLVM includes
  (Bazel issue bazelbuild/bazel#17863).
- add a macro definition to .bazelrc to prefer __builtin_offsetof
  (the offsetof macro without this is broken under LLVM16).
- add enforced include path override to files including emmintrin.h.
  clang-cl.exe in LLVM15 picks up the LLVM version of this file, but
  LLVM16 was picking up the MSFT version and preventing the compiler
  from replacing intrinsics. It looks like there is a change in
  precedence between LLVM15 and LLVM16 for the include path setup by
  Bazel in the INCLUDE environment variable.

Test: Install LLVM16, fix the LLVM include directory location for bazel, then
      run `bazel test //...`
@pdimov
Copy link

pdimov commented Sep 6, 2023

Any progress with that deployment? clang-cl jobs continue to fail for this reason.

@Sainan
Copy link

Sainan commented Sep 7, 2023

Just add a run: choco upgrade llvm step to your Windows workers, I guess.

@mikhailkoliada
Copy link
Contributor

Added to the image!

hzhangxyz added a commit to USTC-TNS/TNSP that referenced this issue Sep 8, 2023
The previous script updates llvm for windows platform since llvm
version in github action runner is 15, while msvc stl requires
clang16. The github action images updates the version now so remove
the updating step for llvm.

See actions/runner-images#8125
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting-deployment Code complete; awaiting deployment and/or deployment in progress feature request OS: Windows
Projects
None yet
Development

No branches or pull requests

7 participants
@pdimov @ChrisThrasher @Tractorou24 @Sainan @mikhailkoliada @Alexey-Ayupov and others