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

[WIP][DO NOT MERGE] preparation work for llvm 7.0.0 #28809

Closed
wants to merge 3 commits into from
Closed

Conversation

vchuravy
Copy link
Member

  • filter patch list
  • bump magic number

@ararslan ararslan added the external dependencies Involves LLVM, OpenBLAS, or other linked libraries label Aug 22, 2018
@vchuravy
Copy link
Member Author

vchuravy commented Aug 22, 2018

Tested with:

LLVM_VER = 7.0.0rc1
override LLVM_SRC_URL := http://prereleases.llvm.org/7.0.0/rc1

Patches that need update

  • D44650
  • D50010
  • D50167
  • symver-jlprefix

@Keno do you have bandwidth to update D50010/D50167? Since that also means that they probably don't apply to master anymore.

@Keno
Copy link
Member

Keno commented Aug 22, 2018

Yeah, I can take a look at that.

@non-Jedi
Copy link
Contributor

non-Jedi commented Sep 21, 2018

I'm trying to package Julia 1.0 for void-linux over at void-linux/void-packages#2290. Simultaneously, void was hoping to upgrade their shipped llvm to 7 and no longer include 6 (I realize that shipping Julia 1.0.0 with the system-provided llvm 7 would be a highly unsupported configuration; that's not what this is about). Could you comment on why the patches that were carried over from llvm 6 didn't make it upstream in 7?

EDIT: Link to webpages with info about why each Julia llvm patch not in upstream llvm 7 because it's somewhat silly to ask others to answer questions I haven't even attempted to look at myself.

As an overview for anyone else interested, the upstreaming efforts seem to have mostly stalled either because nobody from llvm seems to have looked at the patch or they requested additional tests be added with the patch. Other than that, there were a couple that I couldn't really track down the whole story on, and two new patches for LLVM 7 that I think just haven't had enough time to make it upstream yet.

@vchuravy
Copy link
Member Author

vchuravy commented Sep 21, 2018

Yeah that seems pretty accurate. llvm-6.0-DISABLE_ABI_CHECKS.patch has fallen through the cracks and I didn't submit it to upstream yet.

#23611 I suspect the larger discussion that Keno wanted to have is how frontends are supposed to handle custom address spaces. One alternative is #22414

Note that even shipping Julia with a system provided LLVM 6 is discouraged, some of our patches were not backported to 6.0.1 since they were either feature changes or interacted badly with other parts. We test our LLVM configuration for our use-cases exhaustively, but I would caution against using our configuration as a system LLVM, since that needs to support a much wider variety of use-cases.

@robsmith11
Copy link
Contributor

Is there any work remaining for LLVM 7 or should it "just work" if I try building from source with these patches?

@chriselrod
Copy link
Contributor

Whether I try LLVM_VER=7.0.0rc1, 7.0.0, or 7.0.1, I get:

patching file tools/llvm-cfi-verify/CMakeLists.txt
Hunk #1 FAILED at 11.
1 out of 1 hunk FAILED -- saving rejects to file tools/llvm-cfi-verify/CMakeLists.txt.rej
make[1]: *** [/home/chriselrod/Documents/languages/julia-latest/deps/llvm.mk:435: /home/chriselrod/Documents/languages/julia-latest/deps/srccache/llvm-7.0.0rc1/llvm-6.0-D44650.patch-applied] Error 1
make: *** [Makefile:57: julia-deps] Error 2

I merged this PR into master, because this PR would give me OpenBLAS build errors.

@vchuravy
Copy link
Member Author

vchuravy commented Feb 13, 2019 via email

@eli-schwartz
Copy link
Contributor

Is there any work remaining for LLVM 7 or should it "just work" if I try building from source with these patches?

This PR is not about updating the julia code to compile against llvm 7 -- it is about revendoring the set of custom patches used when building with a vendored llvm.

If you want to compile against llvm 7, you'll need to start with e.g. the last two commits on https://github.com/eli-schwartz/julia/commits/llvm7 and then continue to adapt to other llvm changes, which requires a lot more work than just updating the llvm source tarball.

You can test it by configuring julia to build with an existing system version of llvm and noting the various compiler errors -- I fixed the first two, then gave up when it traveled into C++ template hell.

@vtjnash
Copy link
Member

vtjnash commented Apr 27, 2019

replaced by #31849

@vtjnash vtjnash closed this Apr 27, 2019
@vchuravy vchuravy deleted the vc/7prep branch May 3, 2019 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external dependencies Involves LLVM, OpenBLAS, or other linked libraries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants