From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753875AbdFVWoN (ORCPT ); Thu, 22 Jun 2017 18:44:13 -0400 Received: from terminus.zytor.com ([65.50.211.136]:44353 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752741AbdFVWoM (ORCPT ); Thu, 22 Jun 2017 18:44:12 -0400 Subject: Re: [PATCH 4/7] x86, boot, LLVM: #undef memcpy etc in string.c To: Matthias Kaehlcke , Michael Davidson Cc: Thomas Gleixner , Ingo Molnar , Alexander Potapenko , Dmitry Vyukov , x86@kernel.org, linux-kernel@vger.kernel.org, Arnd Bergmann References: <20170317001520.85223-1-md@google.com> <20170317001520.85223-5-md@google.com> <20170622223113.GD52338@google.com> From: "H. Peter Anvin" Message-ID: <76723246-ebb4-9bc3-ecc6-e649deb3280f@zytor.com> Date: Thu, 22 Jun 2017 15:37:23 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170622223113.GD52338@google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 >> --- >> 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 -hpa