This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] malloc: Remove malloc hooks (Bug 23328)
On 07/23/2018 02:54 PM, Florian Weimer wrote:
> On 07/23/2018 08:52 PM, Carlos O'Donell wrote:
>> On 07/23/2018 02:45 PM, Florian Weimer wrote:
>>> On 07/23/2018 08:27 PM, Carlos O'Donell wrote:
>>>> On 07/23/2018 11:59 AM, Joseph Myers wrote:
>>>>> On Mon, 23 Jul 2018, Florian Weimer wrote:
>>>>>
>>>>>> Should we install libmalloc-extras.so under that name?
>>>>>>
>>>>>> Or should it be libmalloc-extras.so.0 (soname) without a
>>>>>> libmalloc-extras.so symbolic link, to discourage new
>>>>>> applications from linking against it, so making it more
>>>>>> obvious that this is intended for backwards compatibility
>>>>>> with old applications?
>>>>>
>>>>> I don't think it's something to discourage applications from
>>>>> linking against. Among other things, it's for any use of
>>>>> mtrace, which is useful for both new and old applications as
>>>>> a light-weight memory checker for uses similar to those in
>>>>> glibc's own testsuite.
>>>>
>>>> I'm slightly in agreement with Joseph here, the use of
>>>> libmalloc-extras.so might turn out to be useful mechanism for
>>>> deploying this kind of code for now and into the future.
>>>
>>> This wasn't obvious from the patch.
>>>
>>> If there is a promise of ABI stability for the library (rather
>>> than just interposing bits in libc.so.6), we need ABI checking
>>> for it, and we should add a soname version. That's currently
>>> missing from the patch.
>>
>> I'm not sure what you mean by this.
>>
>> I envision this will always be an interposer.
>>
>> The core ABI stability will be provided by libc.so.6.
>>
>> The interposer will provide the functional implementation, such
>> that the default libc.so.6 implementation is a stub that does
>> nothing.
>>
>> Does that make sense?
>
> If we support linking against the interposer, it has an ABI, which
> needs to be checked independently. Merely verifying against
> libc.so.6 is not enough because if you remove a symbol from the
> interposer, it will break existing binaries due to the dynamic linker
> currently performing soname matching for versioned symbols which are
> not interposed.
That is a very good point.
I don't want to commit to this, and I don't think we should until we've
discussed this in more detail.
We can always support Joseph's position at a later date with more knowledge
gained from supporting the implementation of libmalloc-extras.so.0, adding
a stable ABI is easier than removing one :}
Cheers,
Carlos.