[PATCH] i386: Replace internal_function attribute for __mcount_internal
Florian Weimer
fweimer@redhat.com
Mon Aug 14 18:39:00 GMT 2017
On 08/14/2017 07:09 PM, H.J. Lu wrote:
> On Mon, Aug 14, 2017 at 9:34 AM, Florian Weimer <fweimer@redhat.com> wrote:
>> I compiled glibc on i386 with internal_function restored, with a special
>> GCC which encodes the regparm attribute value in the symbol name
>> (similar to what Windows does). This means that mismatches between
>> definition and use result in linker errors.
>>
>> This rediscovered the NSS mismatch already fixed, and another internal
>> mismatch related to mcount. This one is harmless; it's merely an
>> internal inconsistency introduced by the internal_function removal.
>>
>> After adjusting the Versions files to export the mangled names for
>> GLIBC_PRIVATE functions, all libraries link again and the public ABI
>> checks out, so I'm reasonably confident that we now have a consistent
>> build again.
> Is it possible to add a run-time test?
I don't know. I expect a basic _mcount/profiling/gprof test to catch
this. I don't think the calling convention is accidentally compatible.
Some care is needed to avoid linking with system profiling libraries
instead of the freshly build glibc. I don't know how to do that. I
doubt that simply building and linking a test with -pg is sufficient.
Thanks,
Florian
More information about the Libc-alpha
mailing list