-
-
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
Incorrect RPATH for libjulia #26830
Comments
I cannot reproduce this on Mac or Linux with the official binaries so please report this to the Arch package maintainer. |
Can you try the official linux binaries on Julialang.org? |
It works with the official binaries. I wrote in the archlinux issue tracker. It was working a few days ago, something something must have changed. Sorry for bothering you. |
Not sure how this is supposed to work, ever. It's prioritizing system libs over the ones installed to its private libdir.
|
I don’t know who maintains the arch Linux package but sounds like they are changing the RPATH of libjulia.so when they shouldn’t. |
You can see the buildscript here: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/julia I have no idea why @xyproto is modifying /usr/bin/julia to use an rpath of /usr/lib, but libjulia.so itself does not appear to be getting touched by us. |
@staticfloat the RPATH of libjulia.so was not modified. @eli-schwartz This issue still appears when not modifying the rpath of Antonio Rojas commented the following in the Arch bug tracker:
I'm currently testing this Suggestions are warmly welcome if this is the wrong way to make julia find the arpack library that comes with Julia (as configured with |
@staticfloat Shouldn't the order here be reversed Line 949 in ca7e837
libarpack into $libdir and the issue goes away if I reverse the order.
|
FYI With respect to the original arpack issue (not sure why this was changed to discuss a completely |
The issue here is that we end up linking the wrong version of a library. Why do you think the reason is that commit? It looks like it was merged fairly recently while version 3.5.0 of arpack-ng is from last year. I suspect that the reason for the error when linking to the system library is that it is built for 32-bit integers while Julia usually builds arpack for 64-bit integers. |
In the Arch issue, it is mentioned that the original bug comes from including that patch in the Arch ARPACK package. The rpath issue only appears when trying to use a bundled ARPACK to avoid that problem. |
Well, this is technically wrong. The initial problem was that Arch Linux used system arpack, and our julia build was intended to link the version it did in fact link. When the reporter of this issue reported it to us, we ended up switching to julia's vendored arpack, but because of some weird rpath we couldn't even work around this anyway. ... This does not change the fact that the initial issue is julia failing to work when the system arpack is used. This may not be a high priority, given Julia's preference for controlling vendored dependencies, but a system arpack update breaking everything will eventually be something which affects you anyway so it's better to at least be aware of the issue (and hopefully fix it to give redistributors the option of debundling)... |
Well, in all fairness we are using the unreleased git master due to https://bugs.archlinux.org/task/58123 So our package is pinned to opencollab/arpack-ng@edce634 |
We can't; the ARPACK we build is fundamentally incompatible with other packages, because we made the design decision to use ARPACK in ILP64 mode, which means that the datatype used as indices into matrices are 64-bit integers; many BLAS and LAPACK style libraries have an "ILP64" mode that you can put them into, and when you do so client applications that attempt to use them will not function correctly because their indices will be misinterpreted. Unfortunately for the scientific world, this has become the standard practice causing no end of problems for applications that wish to work with matrices larger than 4.5B elements along a single axis. We have come up with a few clever ways to get around these problems (such as renaming the ILP64 symbols with OpenBLAS to have |
Yes, I agree. |
Yes, even if users use our provided libraries - other packages on the system will bring in the same dependencies. So, at the very least, we should make sure that Julia uses our own bundled libraries correctly, picking the right one even when alternate versions are system installed. |
Yet that doesn't mean distributions cannot use system libraries: they just need to provide ILP64 variants with suffixed symbols. I have worked upstream (opencollab/arpack-ng#30) to ensure that it's possible to build such libraries, and it's now included in Fedora (though Julia doesn't use it yet because I experienced crashes). Also it's not the end of the world if distributions keep using 32-bit indices for some time. Julia is the only scientific app to use ILP64 in distributions currently, so obviously people don't need it very often. |
ARPACK is raising an exception when eigs is used. I checked out this issue reported to Archlinux. I don't know what else information I can provide you.
Example:
The text was updated successfully, but these errors were encountered: