[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [patches] Make --disable-versioning work in EGLIBC
- To: "Joseph S. Myers" <joseph@xxxxxxxxxxxxxxxx>
- Subject: Re: [patches] Make --disable-versioning work in EGLIBC
- From: Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>
- Date: Mon, 22 Jun 2009 17:01:34 +0400
Maxim Kuvyrkov wrote:
...
The remaining differences in API are the following ('Missing' means that
the default configuration provides the symbol, but --disable-versioning
configuration does not):
I forgot to mention an issue which occured only on powerpc;
unfortunately, I didn't solve this problem completely:
7. Certain symbols, which are defined in sysdeps/ieee754/ with
default_symbol_version have different binding when EGLIBC is built
without symbol versioning. These symbols use global binding instead of
weak binding.
This problem is due to the fact that .symver copies weakness from
original symbol to versioned alias, but there is no way in GNU binutils
to otherwise create an alias to a symbol preserving weak binding. Lack
of such functionality does not allow to automatically set correct
binding on symbol aliases when not using symbol versioning.
Current patch somewhat fixes this by adding __attribute__((weak)) to
several identified occurrences of the problem. This workaround cannot
guarantee, though, that all instances are fixed.
A proper way would be to add necessary functionality to copy symbol
weakness to binutils GAS. E.g., .ifweak directive would be enough to
handle this issue.
--
Maxim