Summary: | ld incorectly sets versions of symbols for ALSA | ||
---|---|---|---|
Product: | binutils | Reporter: | Denis Silakov <silakov> |
Component: | ld | Assignee: | Alan Modra <amodra> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | bug-binutils |
Priority: | P2 | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Host: | Target: | ||
Build: | Last reconfirmed: | 2008-11-25 23:54:18 |
Description
Denis Silakov
2008-11-24 20:24:53 UTC
This isn't a bug. You asked for all the symbols mentioned in various version nodes to match the default version with the pattern snd_* in the default version node! Yes, it would be nice if a non-wildcard pattern would override a wildcard, but ld doesn't do that except in the special case of "*". Oh, so our interpretation of how version assignment works was simply wrong? Thanks for explanations. Indeed, it would be nice to add possibility to override a pattern with a specific symbol name. However, I'm a little confused about single "*" pattern. In case of the following script: ALSA_0.9 { global: *; }; ... ALSA_0.9.5 { global: alsa_lisp; } ALSA_0.9.3; alsa_lisp symbol obtains ALSA_0.9 version. I'd expect it to have ALSA_0.9.5 one... Hmm, yes it appears that "*" only works for local. I guess that's a bug since we say in ld.info that it ought to work for global too. Not that there is much reason to use "*" in global, since symbols are global by default. Please note the warning I added to ld.texinfo. http://sourceware.org/ml/binutils-cvs/2008-11/msg00131.html http://sourceware.org/ml/binutils/2008-11/msg00299.html |