diff mbox series

x86/boot/string: Add missing function declarations

Message ID 20211119175325.3668419-1-keescook@chromium.org (mailing list archive)
State Mainlined
Commit bc7aaf52f963674690510e6c1f3710cd0394b25e
Headers show
Series x86/boot/string: Add missing function declarations | expand

Commit Message

Kees Cook Nov. 19, 2021, 5:53 p.m. UTC
Silence "missing function declaration" warnings from string.h when
building under W=1.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 arch/x86/boot/string.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

Kees Cook Dec. 9, 2021, 11:37 p.m. UTC | #1
On Fri, Nov 19, 2021 at 09:53:25AM -0800, Kees Cook wrote:
> Silence "missing function declaration" warnings from string.h when
> building under W=1.
> 
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---

Hi, just a quick ping on this little fix.

Thanks!

-Kees

>  arch/x86/boot/string.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/x86/boot/string.h b/arch/x86/boot/string.h
> index a232da487cd2..e5d2c6b8c2f1 100644
> --- a/arch/x86/boot/string.h
> +++ b/arch/x86/boot/string.h
> @@ -8,8 +8,10 @@
>  #undef memcmp
>  
>  void *memcpy(void *dst, const void *src, size_t len);
> +void *memmove(void *dst, const void *src, size_t len);
>  void *memset(void *dst, int c, size_t len);
>  int memcmp(const void *s1, const void *s2, size_t len);
> +int bcmp(const void *s1, const void *s2, size_t len);
>  
>  /* Access builtin version by default. */
>  #define memcpy(d,s,l) __builtin_memcpy(d,s,l)
> @@ -25,6 +27,7 @@ extern size_t strnlen(const char *s, size_t maxlen);
>  extern unsigned int atou(const char *s);
>  extern unsigned long long simple_strtoull(const char *cp, char **endp,
>  					  unsigned int base);
> +long simple_strtol(const char *cp, char **endp, unsigned int base);
>  
>  int kstrtoull(const char *s, unsigned int base, unsigned long long *res);
>  int boot_kstrtoul(const char *s, unsigned int base, unsigned long *res);
> -- 
> 2.30.2
>
Joe Perches Dec. 9, 2021, 11:47 p.m. UTC | #2
On Thu, 2021-12-09 at 15:37 -0800, Kees Cook wrote:
> On Fri, Nov 19, 2021 at 09:53:25AM -0800, Kees Cook wrote:
> > Silence "missing function declaration" warnings from string.h when
> > building under W=1.
> > 
> > Signed-off-by: Kees Cook <keescook@chromium.org>
> > ---
> 
> Hi, just a quick ping on this little fix.
[]
> > diff --git a/arch/x86/boot/string.h b/arch/x86/boot/string.h
[]
> > @@ -8,8 +8,10 @@
> >  #undef memcmp
> >  
> >  void *memcpy(void *dst, const void *src, size_t len);
> > +void *memmove(void *dst, const void *src, size_t len);
> >  void *memset(void *dst, int c, size_t len);
> >  int memcmp(const void *s1, const void *s2, size_t len);
> > +int bcmp(const void *s1, const void *s2, size_t len);

Unrelated trivia:

Is bcmp still used anywhere in the kernel?

confdata.c is a user-mode program right?

$ git grep -w bcmp
arch/x86/boot/string.c: * Clang may lower `memcmp == 0` to `bcmp == 0`.
arch/x86/boot/string.c:int bcmp(const void *s1, const void *s2, size_t len)
include/linux/string.h:extern int bcmp(const void *,const void *,__kernel_size_t);
lib/Makefile:# Prevent the compiler from calling builtins like memcmp() or bcmp() from this
lib/string.c: * bcmp - returns 0 if and only if the buffers have identical contents.
lib/string.c: * meaning, and architectures may implement their own more efficient bcmp(). So
lib/string.c:int bcmp(const void *a, const void *b, size_t len)
lib/string.c:EXPORT_SYMBOL(bcmp);
scripts/kconfig/confdata.c:     if (bcmp(map1, map2, st1.st_size))
diff mbox series

Patch

diff --git a/arch/x86/boot/string.h b/arch/x86/boot/string.h
index a232da487cd2..e5d2c6b8c2f1 100644
--- a/arch/x86/boot/string.h
+++ b/arch/x86/boot/string.h
@@ -8,8 +8,10 @@ 
 #undef memcmp
 
 void *memcpy(void *dst, const void *src, size_t len);
+void *memmove(void *dst, const void *src, size_t len);
 void *memset(void *dst, int c, size_t len);
 int memcmp(const void *s1, const void *s2, size_t len);
+int bcmp(const void *s1, const void *s2, size_t len);
 
 /* Access builtin version by default. */
 #define memcpy(d,s,l) __builtin_memcpy(d,s,l)
@@ -25,6 +27,7 @@  extern size_t strnlen(const char *s, size_t maxlen);
 extern unsigned int atou(const char *s);
 extern unsigned long long simple_strtoull(const char *cp, char **endp,
 					  unsigned int base);
+long simple_strtol(const char *cp, char **endp, unsigned int base);
 
 int kstrtoull(const char *s, unsigned int base, unsigned long long *res);
 int boot_kstrtoul(const char *s, unsigned int base, unsigned long *res);