-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
ARROW-3972: [C++] Migrate to LLVM 7. Add option to disable using ld.gold #3499
Conversation
@pravindra I wasn't sure whether this would be controversial but we need to move to LLVM 7 to be able to package Gandiva with the Python wheels in the next major release (0.13.0) |
Updating the |
@wesm |
I'll try building again later and post the errors here |
I'm pleasantly surprised that there are no gandiva issues :-). Once the CI build stabilises, I will try your change with the crossbow task used by dremio. Can you please hold off on merging this change till then ? |
Yes, of course |
@@ -25,7 +25,7 @@ if [ ! -e $CPP_TOOLCHAIN ]; then | |||
CONDA_PACKAGES="" | |||
|
|||
if [ $ARROW_TRAVIS_GANDIVA == "1" ] && [ $TRAVIS_OS_NAME == "osx" ]; then | |||
CONDA_PACKAGES="$CONDA_PACKAGES llvmdev=6.0.1" | |||
CONDA_PACKAGES="$CONDA_PACKAGES llvmdev=$CONDA_LLVM_VERSION" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can use the syntax llvmdev="7.0.*"
instead of hardcoding the bugfix level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Here's what the ld.gold errors look like: https://gist.github.com/wesm/c11c4ebd90be74f9e536f86d11f540c5 This was on Ubuntu Cosmic / 18.10 I'm going to try this on Ubuntu 14.04 also to see if the issue is somehow related to LLVM or whether it is particular to Ubuntu 18.10 |
The build worked on Ubuntu 14.04 using both ld and gold. Not sure where to go for here, this is not my expertise I think the prudent thing is to disable ld.gold by default -- if there is a build configuration where it works well and reduces build times, then we can definitely turn it on |
@xhochy do you want to take care of the LLVM 7 upgrade in this patch or in a different one? Anything else you all want to take care of in this patch? |
You mean in the manylinux1 container? Or in total? I would only do the former. |
@wesm I tried the crossbow builds used by dremio with your patch. I found two issues
My changes are here : pravindra@3da660b |
@pravindra The |
thanks @pravindra! I rebased and cherry picked your changes. I'll merge this once the build is once the build is passing |
@pravindra @kou @xhochy I need your assistance to complete this work I tried upgrading LLVM to 7 in manylinux1 build but
Some initial Googling didn't produce an obvious answer I also have a build failure in normal Xenial with
I added the missing link library |
@wesm, I can work on fixing the xenial build. |
Linking to all the static libraries didn't make that error go away... |
Thanks |
The error here is not in LLVM but in clang (separate build step). My PR to your repo fixes that. |
That's great, thank you. |
Change-Id: Ieaf5302599a83f35ceaf3c4c8ffbe63c03619d98
Change-Id: If6b93a6ef467a9afb62fe91783b0bff8a1e78438
Change-Id: I73985c52be2837496590443f7c990466712ec037
Change-Id: I7e6d154d21b673e6c070bed8c046ca4dab0559f2
Change-Id: I6d13457a689406ed9a98840463a157bc2be7430d
Change-Id: I07da2e2e663150cbc9c4fa51a48e4e0aa4bd93cc
Change-Id: I54d32ad72a87713ce82e17769a589dde00965102
Travis CI looking OK now. I just rebased to make sure we get a clean build. I'll then merge this and notify the mailing list about upgrading clang toolchains This is good also because Visual Studio 2017 requires at least clang 7 -- I hit that when doing Windows testing |
Appveyor build https://ci.appveyor.com/project/wesm/arrow/builds/22177695 |
All in all this wasn't too painful, and Gandiva seems to run fine (I wouldn't have expected otherwise). I tested this locally on Ubuntu 18.10, and found that the LLVM libraries from apt fail to link with ld.gold (binutils 1.16), so I added an option to toggle ld.gold ON and OFF (it's now OFF by default; using `ld` by default should yield strictly fewer bugs / build failures). Not sure why that is I will need some help testing and debugging the Crossbow and packaging tasks to make sure this doesn't break anything else before we merge it Author: Wes McKinney <[email protected]> Author: Pindikura Ravindra <[email protected]> Author: Korn, Uwe <[email protected]> Author: Uwe L. Korn <[email protected]> Closes #3499 from wesm/llvm-7 and squashes the following commits: 5c48eed <Korn, Uwe> Switch to docker image on branch 93aadd7 <Uwe L. Korn> Update clang e155fad <Pindikura Ravindra> Use the llvm from apt-get (instead of travis) 987fc5f <Wes McKinney> Enable all LLVM libraries ea1f013 <Wes McKinney> Link libLLVMSupport.a later 034b17d <Wes McKinney> Add missing libLLVMSupport.a dependency 4448243 <Wes McKinney> Install clang before calling travis_install_linux.sh 59d170a <Wes McKinney> Fix more usages of LLVM version ce831e2 <Wes McKinney> Fix clang executable name in .travis.yml 69fd486 <Pindikura Ravindra> ARROW-3972: misc fixes for LLVM7 c858441 <Wes McKinney> Some CI fixes 87434da <Wes McKinney> Code comments d198eb8 <Wes McKinney> Decruft. Turn off ld.gold by default 2fc3a26 <Wes McKinney> Build project with LLVM 7. Add option to disable using ld.gold
All in all this wasn't too painful, and Gandiva seems to run fine (I wouldn't have expected otherwise).
I tested this locally on Ubuntu 18.10, and found that the LLVM libraries from apt fail to link with ld.gold (binutils 1.16), so I added an option to toggle ld.gold ON and OFF (it's now OFF by default; using
ld
by default should yield strictly fewer bugs / build failures). Not sure why that isI will need some help testing and debugging the Crossbow and packaging tasks to make sure this doesn't break anything else before we merge it