• Arnaldo Carvalho de Melo's avatar
    perf beauty: Don't use 'find ... -printf' as it isn't available in busybox · 556bed5c
    Arnaldo Carvalho de Melo authored
    Namhyung reported:
    
      I'm seeing a build error on my Alpine linux image which uses busybox +
      musl libc:
    
        In file included from trace/beauty/arch_errno_names.c:1,
                         from builtin-trace.c:899:
        /build/trace/beauty/generated/arch_errno_name_array.c: In function 'arch_syscalls__strerrno':
        /build/trace/beauty/generated/arch_errno_name_array.c:142:49: error: unused parameter 'arch' [-Werror=unused-parameter]
          142 | const char *arch_syscalls__strerrno(const char *arch, int err)
    
      It looks like busybox find command doesn't have -printf option
    
        find: unrecognized: -printf
        , Yesterday 9:16 PM
        ,
        BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.
    
        Usage: find [-HL] [PATH]... [OPTIONS] [ACTIONS]
    
        Search for files and perform actions on them.
        First failed action stops processing of current file.
        Defaults: PATH is current directory, action is '-print'
    
    So just remove it and pipe find's entry to a basename loop to produce
    the same result.
    
    Then use an alternative loop that relies on the shell to avoid needless
    forks and execs.
    
    The discussion about it generated the impetus to stop doing strcmps to
    find the right table at each errno to string translation but instead do
    this just once and then use a function pointer to the right arch
    specific table.
    Suggested-by: default avatarDavid Laight <David.Laight@ACULAB.COM>
    Reported-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Thomas Richter <tmricht@linux.vnet.ibm.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    556bed5c
arch_errno_names.sh 1.94 KB