On 06/22/17 15:31, Matthias Kaehlcke wrote: > (removed some non-x86 lists and folks from recipients) > > El Thu, Mar 16, 2017 at 05:15:17PM -0700 Michael Davidson ha dit: > >> undef memcpy and friends in boot/string.c so that the functions >> defined here will have the correct names, otherwise we end up >> up trying to redefine __builtin_memcpy etc. >> Surprisingly, gcc allows this (and, helpfully, discards the >> __builtin_ prefix from the function name when compiling it), >> but clang does not. >> >> Adding these #undef's appears to preserve what I assume was >> the original intent of the code. > > Any comments on this patch? > >> Signed-off-by: Michael Davidson <m...@google.com> >> --- >> arch/x86/boot/string.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c >> index 5457b02fc050..b40266850869 100644 >> --- a/arch/x86/boot/string.c >> +++ b/arch/x86/boot/string.c >> @@ -16,6 +16,15 @@ >> #include "ctype.h" >> #include "string.h" >> >> +/* >> + * Undef these macros so that the functions that we provide >> + * here will have the correct names regardless of how string.h >> + * may have chosen to #define them. >> + */ >> +#undef memcpy >> +#undef memset >> +#undef memcmp >> + >> int memcmp(const void *s1, const void *s2, size_t len) >> { >> bool diff;
Acked-by: H. Peter Anvin <h...@zytor.com> -hpa