-
Notifications
You must be signed in to change notification settings - Fork 1.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
Standardize ILP64 SONAME and symbols suffix #646
Comments
I would be inclined to use |
@stevengj Interesting idea. I would be OK with that, as with almost any convention. I don't think Julia would need to wait for a Fedora update in any case. Since the library to use is passed manually to |
@nalimilan, one reason for the rename is that when we load some external libraries that also link to In any case, I think my proposal is probably cleaner in the long run anyway, since it supports different prefixes and suffixes. |
We could automate this recommendation by putting the |
…penMathLib#646: if you rename the symbols, it is best to rename the library
@stevengj , Thank you for the patch. @nalimilan , @tkelman , I am going to close this issue. If you have any questions, please reopen it. |
@nalimilan , I can set a suffix when |
@xianyi Do you mean you're not sure that the user wants |
@nalimilan , the latter. For example, Intel MKL uses same dgemm_ function name for LP64 and ILP64. The user need to link the different library at compiling time. |
Yes, it's unfortunate that no convention exists. The only solution I can see is for distributions to offer both APIs... Anyway, it would already be cool if we can agree on a convention to use when adding a suffix. The issue of whether to add it or not is another story. |
Looks like the suffix to "standardize" on is more clearly |
(Note that the |
Since #459, it is possible to add a suffix to all symbols during the build, so that the ILP64 version of OpenBLAS does not conflict with the LP64 one. This is necessary to avoid interferences between libraries that might be loaded in a given process.
But there's no standardization of the suffixes and of the SONAME. Julia chose
64_
andlibopenblas.so
(JuliaLang/julia#8734), while Fedora retained no suffix andlibopenblas64.so
. Other distributions do not ship a ILP64 version AFAIK, but other apps like NumPy have discussed the same issue (numpy/numpy#5906).Thus, I suggest to define a convention for the SONAME and the suffix before other projects adopt a different one. It could be as simple as writing it in the build instructions; or a bit more automated, like enabling these SONAME and suffix as soon as
INTERFACE=64
is set. The first option would already be great.I would be inclined to retain
libopenblas64.so
as the SONAME, and64_
as the suffix. This implies changes to both Julia and Fedora, but it sounds like the most robust solution, and treats both projects equally.CC: @tkelman @stevengj @susilehtola
The text was updated successfully, but these errors were encountered: