• Willy Tarreau's avatar
    selftests/nolibc: Always rebuild the sysroot when running a test · 4a95be7e
    Willy Tarreau authored
    Paul and I got trapped a few times by not seeing the effects of applying
    a patch to the nolibc source code until a "make clean" was issued in
    the nolibc directory. It's particularly annoying when trying to confirm
    that a proposed patch really solves a problem (or that reverting it
    reintroduces the problem).
    
    The reason for the sysroot not being rebuilt was that it can be quite
    slow. But in fact it's only slow after a "make clean" issued at the
    kernel's topdir, because it's the main "make headers" that can take a
    tens of seconds; as long as "usr/include" still contains headers, the
    "headers_install" phase is only a quick "rsync", and rebuilding the
    whole nolibc sysroot takes a bit less than one second, which is perfectly
    acceptable for a test, even more once the time lost caused by misleading
    results is factored in.
    
    This patch marks the sysroot target as phony and starts by clearing
    the previous sysroot for the current architecture before reinstalling
    it. Thanks to this, applying a patch to nolibc makes the effect
    immediately visible to "make nolibc-test":
    
      $ time make -j -C tools/testing/selftests/nolibc nolibc-test
      make: Entering directory '/k/tools/testing/selftests/nolibc'
        MKDIR   sysroot/x86/include
      make[1]: Entering directory '/k/tools/include/nolibc'
      make[2]: Entering directory '/k'
      make[2]: Leaving directory '/k'
      make[2]: Entering directory '/k'
        INSTALL /k/tools/testing/selftests/nolibc/sysroot/sysroot/include
      make[2]: Leaving directory '/k'
      make[1]: Leaving directory '/k/tools/include/nolibc'
        CC      nolibc-test
      make: Leaving directory '/k/tools/testing/selftests/nolibc'
    
      real    0m0.869s
      user    0m0.716s
      sys     0m0.149s
    
    Cc: "Paul E. McKenney" <paulmck@kernel.org>
    Link: https://lore.kernel.org/all/20221021155645.GK5600@paulmck-ThinkPad-P17-Gen-1/Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    4a95be7e
Makefile 5.07 KB