Chris Quenelle wrote:
>
>>> 4. dlopen("foo:bar", RTLD_LAZY | RTLD_FULLPATH)
>
>
> I didn't see RTLD_FULLPATH documented in the linker manual.
> Can I read about it someplace? Is it involved in
> enabling any of the functionality we're talking about
> (apologies if it was mentioned earlier and I missed it)
RTLD_FULLPATH doesn't exist (yet). It is one idea I had
for explicitly defining a pathname to be taken "as is".
>>> This is really gross! I always thought I was just passing
>>> a library, not a list! Is this true for all rtld
>>> functions that take a library name?
>
>
> Sorry, I got over-excited.
> I'll note that the special meaning of ":" is not mentioned in
> the man page for dlopen.
Nope, there's not. Part of any cleanup we take in regard to this
issue will be to clarify practice within man pages and the L&LG.
>> I'll have to admit, I don't see what's so gross. ":" has been
>> a rather universal pathname separator within Unix for some time.
>
>
> I don't know of any routines which take an optional colon-separated
> list of FILES. Every parameter and every string I know of
> (other than this one) is *either* a list of directories, *or*
> it is a single file. I don't think any other tools have mixed them
> in this way before.
We used to use them for one of our filters:
on28-patch 108. elfdump -d /usr/lib/libxnet.so.1
Dynamic Section: .dynamic
index tag value
[0] SONAME 0x4a9 libxnet.so.1
[1] FILTER 0x4b6
libsocket.so.1:libnsl.so.1:libc.so.1
This library has now been reimplemented to use per-symbol filters
which happen to be more-precise. We even mentioned libxnet in the
Linker and Libraries Guide.
> I apologize for coming on so strong in my previous email.
No worries.
> What's the original problem again? A user is trying to put
> "X:/usr/lib/foo.so"
> into the dynamic dependencies of an object? I notice that the 'X' part
> doesn't
> start with a slash character. Can we add another layer of hacks,
> and trigger of that in some way?
See the community discussion where I captured the original request in
regards Wine using softlinks named x:.
--
Rod