# Building with newer LLVM

**URL:** <https://discourse.julialang.org/t/building-with-newer-llvm/96854>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [March 30, 2023, 6:25pm UTC](https://discourse.julialang.org/t/building-with-newer-llvm/96854 "2023-03-30T18:25:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![smartalecH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/smartalech/32/32379_2.png) [@smartalecH](https://discourse.julialang.org/u/smartalecH)\
**Post date:** [March 30, 2023, 6:25pm UTC](https://discourse.julialang.org/t/building-with-newer-llvm/96854/1 "2023-03-30T18:25:25Z")

</div>

What’s the canonical way to build julia with a newer LLVM version (I realize this is “experimental”)?

Can I just download the tarball of the version I care about, and swap it out for the default (v13 for julia\_1.8.5) inside of the `deps` folder of the julia “full” release tarball? Are there “version” flags I can pass to `Make.user` that will automatically fetch the version I’m interested in (version 16)?

Thanks!

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [March 30, 2023, 7:40pm UTC](https://discourse.julialang.org/t/building-with-newer-llvm/96854/2 "2023-03-30T19:40:38Z")

</div>

You can do that, but it won’t work. For reference, this is the amount that needs to be changed to update a LLVM version [https://github.com/JuliaLang/julia/pull/48700](https://github.com/JuliaLang/julia/pull/48700) (this is taking Julia from 14 to 15). Julia uses a lot of LLVM so breaking LLVM changes (which there are in every major version bump) will definitely need to be accounted for.

If you want to try Julia with LLVM 16, you’re best bet is to start from the PR I linked since that will mean you only have to deal with 1 set of breaking changes.

---

<div class="post-metadata">

**Author:** ![smartalecH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/smartalech/32/32379_2.png) [@smartalecH](https://discourse.julialang.org/u/smartalecH)\
**Post date:** [March 30, 2023, 10:20pm UTC](https://discourse.julialang.org/t/building-with-newer-llvm/96854/3 "2023-03-30T22:20:33Z")

</div>

Thanks @Oscar_Smith!

---

<div class="post-metadata">

**Author:** ![gbaraldi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gbaraldi/32/22101_2.png) [@gbaraldi](https://discourse.julialang.org/u/gbaraldi)\
**Post date:** [March 31, 2023, 3:16am UTC](https://discourse.julialang.org/t/building-with-newer-llvm/96854/4 "2023-03-31T03:16:27Z")

</div>

This PR is probably larger than what LLVM 16 will need because LLVM15 brings opaque pointers which are kind of a bigger change
