• Arnaldo Carvalho de Melo's avatar
    perf python: Fix splitting CC into compiler and options · 09e6f9f9
    Arnaldo Carvalho de Melo authored
    Noticed this build failure on archlinux:base when building with clang:
    
      clang-14: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
    
    In tools/perf/util/setup.py we check if clang supports that option, but
    since commit 3cad53a6 ("perf python: Account for multiple words
    in CC") this got broken as in the common case where CC="clang":
    
      >>> cc="clang"
      >>> print(cc.split()[0])
      clang
      >>> option="-ffat-lto-objects"
      >>> print(str(cc.split()[1:]) + option)
      []-ffat-lto-objects
      >>>
    
    And then the Popen will call clang with that bogus option name that in
    turn will not produce the b"unknown argument" or b"is not supported"
    that this function uses to detect if the option is not available and
    thus later on clang will be called with an unknown/unsupported option.
    
    Fix it by looking if really there are options in the provided CC
    variable, and if so override 'cc' with the first token and append the
    options to the 'option' variable.
    
    Fixes: 3cad53a6 ("perf python: Account for multiple words in CC")
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Fangrui Song <maskray@google.com>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Keeping <john@metanate.com>
    Cc: Khem Raj <raj.khem@gmail.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Sedat Dilek <sedat.dilek@gmail.com>
    Link: http://lore.kernel.org/lkml/Y6Rq5F5NI0v1QQHM@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    09e6f9f9
setup.py 3.82 KB