On Wed, Mar 13, 2019 at 6:27 PM 'Nick Desaulniers' via Clang Built Linux <clang-built-linux@xxxxxxxxxxxxxxxx> wrote: > > diff --git a/lib/string.c b/lib/string.c > > index 38e4ca08e757..e6c1954f2716 100644 > > --- a/lib/string.c > > +++ b/lib/string.c > > @@ -845,7 +845,13 @@ void *memmove(void *dest, const void *src, size_t count) > > EXPORT_SYMBOL(memmove); > > #endif > > > > -#ifndef __HAVE_ARCH_MEMCMP > > +#ifdef __HAVE_ARCH_MEMCMP > > +int bcmp(const void *cs, const void *ct, size_t n) > > +{ > > + return memcmp(cs, ct, n); > > +} > > +EXPORT_SYMBOL(bcmp); > > +#else > > /** > > * memcmp - Compare two areas of memory > > * @cs: One area of memory > > @@ -864,6 +870,8 @@ __visible int memcmp(const void *cs, const void > > *ct, size_t count) > > return res; > > } > > EXPORT_SYMBOL(memcmp); > > +__weak __alias(memcmp) typeof(memcmp) bcmp; > > +EXPORT_SYMBOL(bcmp); > > #endif > > > > #ifndef __HAVE_ARCH_MEMSCAN > > Alternatively, just not worrying about __alias makes this simpler and > seems to work (need to add comments, thoughts?): Either way seems fine to me. If we don't plan to provide an optimized version, I'd go with the simpler definition rather than the alias. Arnd