• Roberto Sassu's avatar
    tools build: Display logical OR of a feature flavors · 74ef1cc9
    Roberto Sassu authored
    Sometimes, features are simply different flavors of another feature, to
    properly detect the exact dependencies needed by different Linux
    distributions.
    
    For example, libbfd has three flavors: libbfd if the distro does not
    require any additional dependency; libbfd-liberty if it requires libiberty;
    libbfd-liberty-z if it requires libiberty and libz.
    
    It might not be clear to the user whether a feature has been successfully
    detected or not, given that some of its flavors will be set to OFF, others
    to ON.
    
    Instead, display only the feature main flavor if not in verbose mode
    (VF != 1), and set it to ON if at least one of its flavors has been
    successfully detected (logical OR), OFF otherwise. Omit the other flavors.
    
    Accomplish that by declaring a FEATURE_GROUP_MEMBERS-<feature main flavor>
    variable, with the list of the other flavors as variable value. For now, do
    it just for libbfd.
    
    In verbose mode, of if no group is defined for a feature, show the feature
    detection result as before.
    
    Committer testing:
    
    Collecting the output from:
    
      $ make -C tools/bpf/bpftool/ clean
      $ make -C tools/bpf/bpftool/ |& grep "Auto-detecting system features" -A10
    
      $ diff -u before after
      --- before	2022-08-18 10:06:40.422086966 -0300
      +++ after	2022-08-18 10:07:59.202138282 -0300
      @@ -1,6 +1,4 @@
       Auto-detecting system features:
       ...                                  libbfd: [ on  ]
      -...                          libbfd-liberty: [ on  ]
      -...                        libbfd-liberty-z: [ on  ]
       ...                                  libcap: [ on  ]
       ...                         clang-bpf-co-re: [ on  ]
      $
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Quentin Monnet <quentin@isovalent.com>
    Cc: bpf@vger.kernel.org
    Link: https://lore.kernel.org/r/20220818120957.319995-3-roberto.sassu@huaweicloud.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    74ef1cc9
Makefile.feature 9.28 KB