Skip to content
  • This contributor prefers not to receive mails's avatar
    tools: termios_linux.h: Fix compilation on non-glibc systems · 634aa8e5
    This contributor prefers not to receive mails authored and Stefan Roese's avatar Stefan Roese committed
    TCGETS2 is defined in header file asm/ioctls.h provided by linux kernel.
    On glib systems it is automatically included by some other glibc include
    header file and therefore TCGETS2 is present in termios_linux.h when
    linux kernel provides it.
    
    On non-glibc systems (e.g. musl) asm/ioctls.h is not automatically included
    which results in the strange error that BOTHER is supported, TCGETS2 not
    defined and struct termios does not provide c_ispeed member.
    
        tools/kwboot.c: In function 'kwboot_tty_change_baudrate':
        tools/kwboot.c:662:6: error: 'struct termios' has no member named 'c_ospeed'
          662 |   tio.c_ospeed = tio.c_ispeed = baudrate;
              |      ^
    
    Fix this issue by explicitly including asm/ioctls.h file which provides
    TCGETS2 macro (if supported on selected architecture) to not depending on
    glibc auto-include behavior and because termios_linux.h requires it.
    
    With this change it is possible compile kwboot with musl libc.
    
    Reported-...
    634aa8e5