My initial thoughts are:

1. add an escape character of some kind to insert a literal ':'
2. please make all pathnames use a consistent syntax
3. don't implement any special work arounds unless you know there are
    users of the feature
4. dlopen("foo:bar", RTLD_LAZY | RTLD_FULLPATH)
    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?

So I see two different kinds of strings we are dealing with:

1. a colon-separated list of directories (can be a list of one)
2. a colon-separated list of libraries (can be a list of one)

Is that true?

$ISALIST could be implemented by using direct iteration right?
It doesn't actually have to expand to a colon-separated
list of libraries, does it?  Does anyone use that feature otherwise?
Can we pretend it was a bug, and remove that feature?  ;-)

--chris





Rod Evans wrote:
> Presently, no.  But it seems like a mechanism to allow ':' within
> a path is now desirable.
> 
> I've a couple of thoughts.   First, if you wish to allow ':' within
> a dlopen() path, would you also want to allow this character in
> a RUNPATH, LD_LIBRARY_PATH, or some other ld.so.1 processed path?
> We could invent an escape character that can be embedded in a path.
> This provides generic flexibility, but in the case of dlopen()
> might require the user to translate a string (read from some config
> file?) to include the escape character.
> 
> Or, we could allow dlopen() path processing to differ/be-more-flexible
> than other path processing.  We could force a dlopen() string to be
> used as-is.  This changes todays behavior, and would break the example
> I had cited below.  But, would anyone care?   Or we could be explicit
> in regards our new requirement:
> 
>     dlopen("foo:bar", RTLD_LAZY | RTLD_FULLPATH)
> 
> and use a new token to define a path should be used as is.
> 
> Thoughts?




Reply via email to