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]

Re: [PATCH RFC] explicit_bzero, again


On Wed, Aug 26, 2015 at 5:06 PM, Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
> On 20-08-2015 23:49, Zack Weinberg wrote:
>> This is a much more aggressive optimization barrier than is necessary.
...
> Right, but this way you are proposing limits this API to only C programs
> and only for GNU compilers.  Using kernel way to use the whole-memory
> clobber avoids the '__memblk' (and thus compiles for C++ as well) and also
> guarantees it works on other C compilers (clang).

The *optimization* (replacing `explicit_bzero` with `memset` + vacuous
use) is limited to C programs and GCC.  The *API* works just fine
regardless of compiler.  I believe this is sufficient as a starting
point.  As and when appropriate ways to express a vacuous use become
available in other compilers, we can add them.

>>> Also I see that OpenBSD added a patch to try disable this option for LTO [1].
>>> Do you think could it be worth to add as well in your version?
>>
>> I could be wrong about this, but I am fairly sure that neither GCC nor
>> LLVM is capable of LTO-optimizing through a call to a shared library,
>> therefore this additional complication should not be necessary.
>
> I agree, I was only curious if you know the background about this change.

It might be necessary for a C library intended to be linked
statically, and compiled with -flto or equivalent.  That's the only
thing I can think of.  If that means glibc should have something like
this in the !SHARED case I'm willing to add it.

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]