Skip to content
  • Bin Meng's avatar
    Add .gitattributes for line endings · 3091ca6a
    Bin Meng authored
    
    
    When building U-Boot host tools for Windows from Microsoft Azure
    Pipelines, we see tons of weird warnings and errors emitted from
    every Kconfig files:
    
      Kconfig:6:warning: ignoring unsupported character ''
      Kconfig:6:warning: ignoring unsupported character ''
      Kconfig:8:warning: ignoring unsupported character ''
      Kconfig:9:warning: ignoring unsupported character ''
      Kconfig:10:warning: ignoring unsupported character ''
      Kconfig:10:warning: ignoring unsupported character ''
      Kconfig:13:warning: ignoring unsupported character ''
      arch/Kconfig:1:warning: ignoring unsupported character ''
      arch/Kconfig:2:warning: ignoring unsupported character ''
      arch/Kconfig:2:warning: ignoring unsupported character ''
      arch/Kconfig:4:warning: ignoring unsupported character ''
      ...
    
    After several rounds of experiments, it turns out this is caused
    by line endings. Historically, Linux and macOS used linefeed (LF)
    characters while Windows used a carriage return plus a linefeed
    (CRLF). When Azure Pipelines checks out the U-Boot repo, Git tries
    to compensate for the difference by automatically making lines end
    in CRLF in the working directory on Windows, which confuses the
    Kconfig file parsing logic.
    
    Fortunately Git provides a way for repos to tell Git not to do such
    automatical line endings conversion via .gitattributes file below:
    
    * text eol=lf
    
    Signed-off-by: Bin Meng's avatarBin Meng <bmeng.cn@gmail.com>
    
    Series-changes: 2
    - new patch: Add .gitattributes for line endings
    3091ca6a