[PATCH v5 02/11] tools: mkeficapsule: add firmwware image signing

Mark Kettenis mark.kettenis at xs4all.nl
Tue Nov 2 16:13:12 CET 2021


> From: Simon Glass <sjg at chromium.org>
> Date: Tue, 2 Nov 2021 08:56:50 -0600
> 
> Hi Takahiro,
> 
> > > - can we just build the tool always?
> >
> > This is one of my questions.
> > Why do you want to do so while there are bunch of tools that are
> > not always built.
> 
> Because I think all tools should be built always. It is fine if that
> happens due to CONFIG options but we should try to avoid making it
> complicated.

Well, unless this patchset fixes things, we can't, because
mkeficapsule doesn't build on OpenBSD.  I tried looking into it, but I
can't figure out how this is even supposed to compile as a host tool:


In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:15:24: error: conflicting types for 'strspn'
extern __kernel_size_t strspn(const char *,const char *);
                       ^
/usr/include/string.h:88:9: note: previous declaration is here
size_t   strspn(const char *, const char *);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
In file included from include/linux/string.h:21:
./arch/arm/include/asm/string.h:20:15: error: conflicting types for 'memcpy'
extern void * memcpy(void *, const void *, __kernel_size_t);
              ^
/usr/include/string.h:65:7: note: previous declaration is here
void    *memcpy(void *__restrict, const void *__restrict, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
In file included from include/linux/string.h:21:
./arch/arm/include/asm/string.h:27:15: error: conflicting types for 'memmove'
extern void * memmove(void *, const void *, __kernel_size_t);
              ^
/usr/include/string.h:68:7: note: previous declaration is here
void    *memmove(void *, const void *, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
In file included from include/linux/string.h:21:
./arch/arm/include/asm/string.h:30:15: error: conflicting types for 'memchr'
extern void * memchr(const void *, int, __kernel_size_t);
              ^
/usr/include/string.h:63:7: note: previous declaration is here
void    *memchr(const void *, int, size_t);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
In file included from include/linux/string.h:21:
./arch/arm/include/asm/string.h:36:15: error: conflicting types for 'memset'
extern void * memset(void *, int, __kernel_size_t);
              ^
/usr/include/string.h:71:7: note: previous declaration is here
void    *memset(void *, int, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:27:15: error: conflicting types for 'strncpy'
extern char * strncpy(char *,const char *, __kernel_size_t);
              ^
/usr/include/string.h:84:7: note: previous declaration is here
char    *strncpy(char *__restrict, const char *__restrict, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:36:15: error: conflicting types for 'strncat'
extern char * strncat(char *, const char *, __kernel_size_t);
              ^
/usr/include/string.h:81:7: note: previous declaration is here
char    *strncat(char *__restrict, const char *__restrict, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:45:12: error: conflicting types for 'strncmp'
extern int strncmp(const char *,const char *,__kernel_size_t);
           ^
/usr/include/string.h:83:6: note: previous declaration is here
int      strncmp(const char *, const char *, size_t);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:51:12: error: conflicting types for 'strncasecmp'
extern int strncasecmp(const char *s1, const char *s2, __kernel_size_t len);
           ^
/usr/include/strings.h:75:6: note: previous declaration is here
int      strncasecmp(const char *, const char *, size_t);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:77:24: error: conflicting types for 'strlen'
extern __kernel_size_t strlen(const char *);
                       ^
/usr/include/string.h:80:9: note: previous declaration is here
size_t   strlen(const char *);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:80:24: error: conflicting types for 'strnlen'
extern __kernel_size_t strnlen(const char *,__kernel_size_t);
                       ^
/usr/include/string.h:115:9: note: previous declaration is here
size_t   strnlen(const char *, size_t);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:111:15: error: conflicting types for 'memset'
extern void * memset(void *,int,__kernel_size_t);
              ^
/usr/include/string.h:71:7: note: previous declaration is here
void    *memset(void *, int, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:114:15: error: conflicting types for 'memcpy'
extern void * memcpy(void *,const void *,__kernel_size_t);
              ^
/usr/include/string.h:65:7: note: previous declaration is here
void    *memcpy(void *__restrict, const void *__restrict, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:117:15: error: conflicting types for 'memmove'
extern void * memmove(void *,const void *,__kernel_size_t);
              ^
/usr/include/string.h:68:7: note: previous declaration is here
void    *memmove(void *, const void *, size_t)
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:123:12: error: conflicting types for 'memcmp'
extern int memcmp(const void *,const void *,__kernel_size_t);
           ^
/usr/include/string.h:64:6: note: previous declaration is here
int      memcmp(const void *, const void *, size_t);
         ^
In file included from tools/mkeficapsule.c:8:
In file included from include/malloc.h:369:
include/linux/string.h:126:15: error: conflicting types for 'memchr'
extern void * memchr(const void *,int,__kernel_size_t);
              ^
/usr/include/string.h:63:7: note: previous declaration is here
void    *memchr(const void *, int, size_t);
         ^
tools/mkeficapsule.c:25:9: warning: 'aligned_u64' macro redefined [-Wmacro-redefined]
#define aligned_u64 __aligned_u64
        ^
include/linux/types.h:118:9: note: previous definition is here
#define aligned_u64 __u64 __aligned(8)
        ^
In file included from tools/mkeficapsule.c:32:
In file included from include/efi_api.h:20:
In file included from include/charset.h:11:
In file included from include/linux/kernel.h:5:
In file included from include/linux/printk.h:4:
include/log.h:382:24: error: expression is not an integer constant expression
        LOGRECF_FORCE_DEBUG     = BIT(0),
                                  ^~~~~~
include/log.h:384:18: error: expression is not an integer constant expression
        LOGRECF_CONT            = BIT(1),
                                  ^~~~~~
include/log.h:421:18: error: expression is not an integer constant expression
        LOGDF_ENABLE            = BIT(0),       /* Device is enabled */
                                  ^~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.


More information about the U-Boot mailing list