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

add build recipe for LLVM9 #296

Merged
merged 3 commits into from
Jan 14, 2020
Merged

add build recipe for LLVM9 #296

merged 3 commits into from
Jan 14, 2020

Conversation

vchuravy
Copy link
Member

@vchuravy vchuravy commented Dec 16, 2019

Based on https://github.com/staticfloat/LLVMBuilder

Questions:

  • Do we want a recipe for LLVM6? It's part of LTS so maybe
  • This removes the assert build configuration

@giordano
Copy link
Member

giordano commented Dec 16, 2019

Should we update the pipeline to skip this? The @ wasn't initially expected.

@vchuravy
Copy link
Member Author

@staticfloat would an assert build be something like LLVM@8.asserts? Is there a way for them to share the same script?

@vchuravy
Copy link
Member Author

Okay reverted back to splitting the native and cross-compile stage:

For future reference I almost got Native to work on windows, but got stuck on include errors.

vchuravy@antarctic:/data/vchuravy/Yggdrasil/L/LLVM@8$ cat bundled/patches/7003-llvm-cmake-mingw.patch
---
 llvm/cmake/modules/AddLLVM.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
index 1a417447278..57ab2576574 100644
--- a/cmake/modules/AddLLVM.cmake
+++ b/cmake/modules/AddLLVM.cmake
@@ -648,7 +648,7 @@ macro(add_llvm_library name)
         (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
       set(install_dir lib${LLVM_LIBDIR_SUFFIX})
       if(ARG_MODULE OR ARG_SHARED OR BUILD_SHARED_LIBS)
-        if(WIN32 OR CYGWIN OR MINGW)
+        if((WIN32 OR CYGWIN OR MINGW) AND NOT LLVM_TARGET_IS_CROSSCOMPILE_HOST)
           set(install_type RUNTIME)
           set(install_dir bin)
         else()
--
2.24.1

@vchuravy
Copy link
Member Author

Ah is Yggdrasil doing some sneaky parsing and having multiple platforms statements is confusing?

@vchuravy vchuravy closed this Dec 17, 2019
@vchuravy vchuravy reopened this Dec 17, 2019
@tshort
Copy link
Contributor

tshort commented Dec 18, 2019

Any chance we could include the WebAssembly target with this?

@staticfloat
Copy link
Member

I am so confused by this error.

@vchuravy
Copy link
Member Author

Any chance we could include the WebAssembly target with this?

Actually yes, that is needed since Base Julia know has this flag on by default.

@Gnimuc
Copy link
Contributor

Gnimuc commented Dec 18, 2019

Any chance we could include the WebAssembly target with this?

Actually yes, that is needed since Base Julia now has this flag on by default.

Any plan on maintaining a Julia-release-compatible LLVM recipe? Julia 1.3.0 is built with WASM disabled.

@vchuravy
Copy link
Member Author

Any chance we could include the WebAssembly target with this?

Actually yes, that is needed since Base Julia now has this flag on by default.

Any plan on maintaining a Julia-release-compatible LLVM recipe? Julia 1.3.0 is built with WASM disabled.

Actually yes! We only build WASM for LLVM 8 which is Julia 1.4 only. See https://github.com/JuliaPackaging/Yggdrasil/pull/296/files#diff-08724ed72679c754126058e3bfd19c92R111-R113

L/llvm_common.jl Outdated Show resolved Hide resolved
@vchuravy vchuravy changed the title add simplified build recipe for LLVM@8 add build recipes for LLVM@8 and patches for LLVM@6, LLVM@9 Dec 19, 2019
@vchuravy vchuravy changed the title add build recipes for LLVM@8 and patches for LLVM@6, LLVM@9 add build recipe for LLVM@8 and patches for LLVM@6, LLVM@9 Dec 19, 2019
@giordano giordano added LLVM 🐉 long shot 🏹 This is going to be fun labels Dec 21, 2019
L/llvm_common.jl Outdated Show resolved Hide resolved
@staticfloat
Copy link
Member

Valentin, just so you know, I needed to multiversion OpenBLAS as well, and I decided that I liked putting the common stuff into an OpenBLAS directory, with OpenBLAS@0.3.5 and OpenBLAS@0.3.7 doing include("../OpenBLAS/common.jl"), see #356

azure-pipelines.yml Outdated Show resolved Hide resolved
@vchuravy
Copy link
Member Author

I think there are two patches that still need forward porting got LLVM 9, but otherwise I am rather pleased to have builds for all platforms. LLVM8 and co. can follow later

@staticfloat
Copy link
Member

This is pretty incredible. Shall we merge this, then we can open separate PRs for v6 and v8?

Copy link
Member

@giordano giordano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job 🙂

@giordano
Copy link
Member

Update the title? Or at least the commit message when merging

vchuravy and others added 3 commits January 14, 2020 03:01
based of https://github.com/staticfloat/LLVMBuilder

also add Julia patches for:
- LLVM6 used by Julia 1.0-1.3
- LLVM8 used by Julia 1.4

Co-authored-by: Elliot Saba <staticfloat@gmail.com>
@vchuravy vchuravy changed the title add build recipe for LLVM@8 and patches for LLVM@6, LLVM@9 add build recipe for LLVM9 Jan 14, 2020
@vchuravy vchuravy closed this Jan 14, 2020
@vchuravy vchuravy reopened this Jan 14, 2020
@vchuravy
Copy link
Member Author

Ready to land from my side.

@staticfloat staticfloat merged commit 72c48d3 into JuliaPackaging:master Jan 14, 2020
@staticfloat
Copy link
Member

valentine party time whoooo

@aminya
Copy link

aminya commented Jan 14, 2020

Yay! 🚀

@vchuravy vchuravy deleted the vc/llvm8 branch January 15, 2020 02:17
@giordano giordano added the julia 💜 ❤️ 💚 Builders and issues related to Julia and its dependencies label Sep 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
julia 💜 ❤️ 💚 Builders and issues related to Julia and its dependencies LLVM 🐉 long shot 🏹 This is going to be fun
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants