This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 08/09/2015 02:41 AM, Andreas Schwab wrote: > Zack Weinberg <zackw@panix.com> writes: > >> __memset_chk does a bounds check (which the C compiler will optimize >> just fine) and then calls memset. That call will itself go through >> IFUNC dispatch, > > Does it? On further investigation it appears not to -- specifically, internal calls using __GI_foo appear to go straight to the default implementation of 'foo'. If so, I am inclined to think that that is a bug -- there are a *lot* of internal calls to memset and memcpy in libc, they should not miss out on architectural tuning. I don't particularly understand how IFUNC works, but wouldn't it be sufficient to send internal calls to anything with an IFUNC through the PLT? (I suppose there would then be a question of whether the architectural optimizations made up for the PLT overhead.) I am also inclined to think that there is no good reason to gunk up the fortify implementation with IFUNCed _chk functions, regardless. If losing out on architecturally tuned memory block functions is acceptable for normal calls inside libc, it should also be acceptable for fortified applications (which one *expects* to incur a cost). Regardless, I don't want to block the other thing I'm working on on this, and I can see that this patch needs to be more complicated than it first appeared (in addition to all the above, there's even more memset_chk goo in sysdeps/ I didn't delete, and several more _chk functions with the same treatment) so I'll withdraw it for now and figure out another way to solve the problem I had with the other thing. cc:ing HJ who seems to have implemented this stuff in the first place. zw
Attachment:
signature.asc
Description: OpenPGP digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |