-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Run fixup-libgfortran
at the make
stage
#29522
Conversation
This as opposed to at the `make binary-dist` stage. This allows from-source Julia builds to have `libgfortran`, etc... sitting in `julia`'s `RPATH`, which is important for from-source builds using BinaryBuilder versions of e.g. Arpack.jl to be able to link everything together using `RPATH` magic.
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 we make this optional? This seems like something we definitely don't want to be doing for actual local builds.
Can you explain why this is required? Wouldn't opening openblas pull an appropriate libgfortran into the process that Arpack should be able to find? |
It would be enough if we opened libraries with RTLD_GLOBAL by default on
all platforms, but we don’t. If that solution is preferred, we should do
that instead.
It’s required because libraries that are linked against libgfortran when
libgfortran is hidden away in some gcc support directory can’t find it,
despite Julia being able to find it because of deliberate (r)paths embedded
within openblas.
-E
…On Fri, Oct 5, 2018 at 00:40 Keno Fischer ***@***.***> wrote:
Can you explain why this is required? Wouldn't opening openblas pull an
appropriate libgfortran into the process that Arpack should be able to find?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#29522 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAH_aFSLmFuOZsZkJIo-suWvW0VfMdOeks5uhjnhgaJpZM4XIeMZ>
.
|
Bump. If people don't like the solution here then please propose an alternative that will make |
I see three solutions here:
I think the first choice is the best. What do you guys think? |
OK. I think I understand better now. Per Keno's PR in 2016 (#17458 (comment)), this was not supposed to work ever (but accidentally was working in installed versions of Julia). But then we re-introduced that code-path in 2017 #21134 incidentally while thinking we were just doing code cleanup. |
Because the Regardless, I don't think it matters one way or another. We want this behavior, and we need a way to ensure that it works from within the build tree. |
I'm bumping this again, as we are still getting reports of things not working from users that build from source (hence merging this would help them) and that can't use Arpack.jl despite the effort we've put into GCC multiversioning and all that. |
Bump; people are still running into this. Please suggest an alternative solution. |
Please either let me merge this or suggest an alternative solution, I get a steady stream of complaints and bug reports about this. |
Is this a problem on OS X also? I think OS X chains rpaths so if it's within libjulia's rpath we should be able to find it. In any case, I'd be ok with this if instead of copying it, we'd symlink. Longterm, our plan for dealing with libraries spread over the filesystem should be able to deal with this using a virtual "libgfortran" package. |
Yes, this is a problem on OS X. You can verify by building a from-source version of Julia on OSX with That is not within
I don't see why copying is a problem. If you're worried about staleness in the face of a compiler upgrade, we have many other things that would be stale in that event, and so a
True, but that's still a little ways off, and I don't see any real downsides to this change. |
Triage defers to Elliot "The Linker" Saba on this one. |
That's present to work around a configuration issue with their gcc compiler. I think the idea is that once the real fix makes its way upstream, we can drop that hack? |
@staticfloat: please do go ahead with this. |
Thanks for the vote of confidence, Triage. We'll be able to remove this once JuliaLang/Pkg.jl#841 is brought to fruition. |
We now see
on every make. Can we avoid that? |
This as opposed to at the `make binary-dist` stage. This allows from-source Julia builds to have `libgfortran`, etc... sitting in `julia`'s `RPATH`, which is important for from-source builds using BinaryBuilder versions of e.g. Arpack.jl to be able to link everything together using `RPATH` magic.
Can this be backported? |
Sure, I just opened a PR. |
This as opposed to at the
make binary-dist
stage. This allows from-source Julia builds to havelibgfortran
, etc... sitting injulia
'sRPATH
, which is important for from-source builds using BinaryBuilder versions of e.g. Arpack.jl to be able to link everything together usingRPATH
magic.@andreasnoack this should fix your "this doesn't work if I just
make && ./julia
" problem.