This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Symbol versioning in C++ (two ld bugs)


Phil Edwards <phil@jaj.com> writes:

> fnmatch() matches shell filename patterns, i.e., globbing, not regexps.
> 
> Oops.
> 
> So:  which kind of patterns are supposed to be accepted?

globbing.  regex is too slow and in other package, well glibc, we use
'*' as a pattern.  This is also what Sun does.

> Bug #2
> ======
> The ldlex.l lexer only specifies
> 
>         [*?.$_a-zA-Z]([*?.$_a-zA-Z0-9]|::)*
> 
> for a version symbol pattern (see V_IDENTIFIER).  No brackets, no ranges,
> no braces -- that is, we can't even use the globbing patterns that fnmatch()
> would allow!

This is more or less encoding the current practice.  No special reason
to have it like this except that there might be problems with the
grammar.  Somebody will have to check it.

> For the record, std::* is not the only problem; there are other namespaces
> and other patterns which also need to be exposed (the __cxa_* stuff for
> example).

This already works.  __cxa_* is a valid pattern.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]