Skip to content
  • Bin Meng's avatar
    tools: Avoid creating symbolic links for tools/version.h · 4d90f6cd
    Bin Meng authored
    
    
    When building U-Boot host tools for Windows from Microsoft Azure
    Pipelines, the following errors were seen:
    
      HOSTCC  tools/mkenvimage.o
      In file included from tools/mkenvimage.c:25:
      ./tools/version.h:1:1: error: expected identifier or ‘(’ before ‘.’ token
         1 | ../include/version.h
           | ^
      tools/mkenvimage.c: In function ‘main’:
      tools/mkenvimage.c:117:4: warning: implicit declaration of function ‘usage’ [-Wimplicit-function-declaration]
       117 |    usage(prg);
           |    ^~~~~
      tools/mkenvimage.c:120:35: error: ‘PLAIN_VERSION’ undeclared (first use in this function)
       120 |    printf("%s version %s\n", prg, PLAIN_VERSION);
           |                                   ^~~~~~~~~~~~~
      tools/mkenvimage.c:120:35: note: each undeclared identifier is reported only once for each function it appears in
      make[2]: *** [scripts/Makefile.host:114: tools/mkenvimage.o] Error 1
    
    It turns out tools/version.h is a symbolic link and with Windows
    default settings it is unsupported hence the actual content of
    tools/version.h is not what file include/version.h has, but the
    the linked file path, which breaks the build.
    
    To fix this, remove the symbolic links for tools/version.h. Instead
    we perform a copy from include/version.h during the build.
    
    Signed-off-by: default avatarBin Meng <bmeng.cn@gmail.com>
    4d90f6cd