Skip to content
  • Peter Maydell's avatar
    152d1967
    kernel-doc: Use c:struct for Sphinx 3.0 and later · 152d1967
    Peter Maydell authored
    
    
    The kernel-doc Sphinx plugin and associated script currently emit
    'c:type' directives for "struct foo" documentation.
    
    Sphinx 3.0 warns about this:
      /home/petmay01/linaro/qemu-from-laptop/qemu/docs/../include/exec/memory.h:3: WARNING: Type must be either just a name or a typedef-like declaration.
      If just a name:
        Error in declarator or parameters
        Invalid C declaration: Expected identifier in nested name, got keyword: struct [error at 6]
          struct MemoryListener
          ------^
      If typedef-like declaration:
        Error in declarator or parameters
        Invalid C declaration: Expected identifier in nested name. [error at 21]
          struct MemoryListener
          ---------------------^
    
    because it wants us to use the new-in-3.0 'c:struct' instead.
    
    Plumb the Sphinx version through to the kernel-doc script
    and use it to select 'c:struct' for newer versions than 3.0.
    
    Fixes: LP:1872113
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    152d1967
    kernel-doc: Use c:struct for Sphinx 3.0 and later
    Peter Maydell authored
    
    
    The kernel-doc Sphinx plugin and associated script currently emit
    'c:type' directives for "struct foo" documentation.
    
    Sphinx 3.0 warns about this:
      /home/petmay01/linaro/qemu-from-laptop/qemu/docs/../include/exec/memory.h:3: WARNING: Type must be either just a name or a typedef-like declaration.
      If just a name:
        Error in declarator or parameters
        Invalid C declaration: Expected identifier in nested name, got keyword: struct [error at 6]
          struct MemoryListener
          ------^
      If typedef-like declaration:
        Error in declarator or parameters
        Invalid C declaration: Expected identifier in nested name. [error at 21]
          struct MemoryListener
          ---------------------^
    
    because it wants us to use the new-in-3.0 'c:struct' instead.
    
    Plumb the Sphinx version through to the kernel-doc script
    and use it to select 'c:struct' for newer versions than 3.0.
    
    Fixes: LP:1872113
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
Loading