-
Notifications
You must be signed in to change notification settings - Fork 81
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
Can't find solib dependencies imported from system #142
Comments
I investigated this. Initially I was quite confused by the fast that
...we still are looking for Further, I've confirmed that after linking is done, the symbolic link
It looks for So mangling does not do what we expected it to do. Names of .so libraries are still names of libraries after resolution of symbolic links. That's somewhat unexpected. And it means that cbits problem is not solved: by the same logic, every library with cbits will be looking for the same About avoiding mangling for system libs: I don't see a reliable way to tell if a .so library coming to us from a dependency is system-level library or some local library. Anyway this is not important because mangling in its current form doesn't appear to work. One solution is not resurrect my older PR that adds special attributes for cbits. If this doesn't look good still, then we could do mangling by doing actual copying I guess, but that's not nice at all. @mboes Your opinion? |
I suspect you're overstating the issue. Without mangling, we couldn't build aeson and its dependencies. With mangling, we now can. Also, the mangling we do is no invention of our own. It's what the No need to rehash the discussion about adding special support for building C code here. The problem mangling is meant to solve is present with or without that. |
Well, one is "imported" using |
But these rules ( |
There is
I'll try to use that and see what happens. |
Update. The name that is looked up when something that depends on dynamic library is run is determined:
We don't compile system libraries, so we cannot set
This means no matter what you do things that depend on it will search for |
Perhaps in https://github.com/bazelbuild/bazel/search?utf8=%E2%9C%93&q=mangle&type= But it finds nothing. |
The best compromise I can think of: during mangling, detect if |
OK, half of the fix is done, but it's more complicated than it seemed because sonames often include numeric suffixes like |
Minimal repro:
A mangled symlink exists in the folder. But for system imported libraries, the mangling is not useful, because the names of installed system libraries should be globally unique anyways.
I suspect, but haven't checked, that #117 was the cause of this regression.
The text was updated successfully, but these errors were encountered: