On Fri, Apr 23, 2010 at 8:11 AM, Nicolas Williams
<nicolas.willi...@oracle.com> wrote:
> On Thu, Apr 22, 2010 at 11:33:34PM -0400, Glenn Fowler wrote:
>> the _ast_ prefixes were added to libc names early on at the request
>> of the solaris side
>>
>> I believe this was for compatibility between objects compiled with
>> and without ast headers
>>
>> on other architectures the _ast_ prefix is only used on functions that
>> defy interposing (some compiiation systems have a large set of intrinsic
>> functions that infringe on libc)
>>
>> "eventually this will bite someone" -- well there would be problems
>> with and without the _ast_ prefix approach -- building without most
>> of the _ast_ prefixes is done by one macro
>
> There's a fair number of libc symbols that are safe to interpose on,

No, they are only safe if the ABI matches exactly.

> as
> long as the interposers provide the same semantics.  The allocator is
> the main example (and, in fact, we often do interpose on the default
> allocator, using LD_PRELOAD as well just by linking apps with libumem,
> libwatchmalloc, etcetera), but not the only one.
>
> Explicit interposition is safer than the _ast_ prefix alternative

The explicit interposition works only for executables reliably but not
if the another shared library is accessing your shared library API. If
lazyload and other flags are used the ordering of symbols is quite
random if you only look them up by symbol name.

Irek
_______________________________________________
ksh93-integration-discuss mailing list
ksh93-integration-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss

Reply via email to