• Jakub Kicinski's avatar
    tools: ynl-gen: don't touch the output file if content is the same · 2b7ac0c8
    Jakub Kicinski authored
    
    
    I often regenerate all YNL files in the tree to make sure they
    are in sync with the codegen and specs. Generator rewrites
    the files unconditionally, so since make looks at file modification
    time to decide what to rebuild - my next build takes longer.
    
    We already generate the code to a tempfile most of the time,
    only overwrite the target when we have to.
    
    Before:
    
      $ stat include/uapi/linux/netdev.h
        File: include/uapi/linux/netdev.h
        Size: 2307      	Blocks: 8          IO Block: 4096   regular file
      Access: 2023-10-27 15:19:56.347071940 -0700
      Modify: 2023-10-27 15:19:45.089000900 -0700
      Change: 2023-10-27 15:19:45.089000900 -0700
       Birth: 2023-10-27 15:19:45.088000894 -0700
    
      $ ./tools/net/ynl/ynl-regen.sh -f
      [...]
    
      $ stat include/uapi/linux/netdev.h
        File: include/uapi/linux/netdev.h
        Size: 2307      	Blocks: 8          IO Block: 4096   regular file
      Access: 2023-10-27 15:19:56.347071940 -0700
      Modify: 2023-10-27 15:22:18.417968446 -0700
      Change: 2023-10-27 15:22:18.417968446 -0700
       Birth: 2023-10-27 15:19:45.088000894 -0700
    
    After:
    
      $ stat include/uapi/linux/netdev.h
        File: include/uapi/linux/netdev.h
        Size: 2307      	Blocks: 8          IO Block: 4096   regular file
      Access: 2023-10-27 15:22:41.520114221 -0700
      Modify: 2023-10-27 15:22:18.417968446 -0700
      Change: 2023-10-27 15:22:18.417968446 -0700
       Birth: 2023-10-27 15:19:45.088000894 -0700
    
      $ ./tools/net/ynl/ynl-regen.sh -f
      [...]
    
      $ stat include/uapi/linux/netdev.h
        File: include/uapi/linux/netdev.h
        Size: 2307      	Blocks: 8          IO Block: 4096   regular file
      Access: 2023-10-27 15:22:41.520114221 -0700
      Modify: 2023-10-27 15:22:18.417968446 -0700
      Change: 2023-10-27 15:22:18.417968446 -0700
       Birth: 2023-10-27 15:19:45.088000894 -0700
    Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
    Link: https://lore.kernel.org/r/20231027223408.1865704-1-kuba@kernel.org
    
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    2b7ac0c8
ynl-gen-c.py 93 KB