* David Ahern <dsahern@xxxxxxxxx> wrote:
I also noticed that the dwarf test is still run even with the NO_DWARF
option passed in:
[daahern@nxos-vdc-dev1 perf]$ make O=/tmp/junk LDFLAGS=-static
NO_DWARF=1 -j 4
BUILD: Doing 'make -j16' parallel build
Auto-detecting system features:
... backtrace: [ on ]
... dwarf: [ on ]
... fortify-source: [ on ]
Note the dwarf test shows 'on'.
Hm, yes.
This is just the print-out though - the actual feature logic should still
follow the NO_DWARF=1 setting (modulo bugs).
So I'm wondering, should we solve this by adding extra logic linking the
feature flags with their legacy names. It would get unwieldy rather
quickly I think.
Another solution would be to introduce a new method to disable features,
via something like:
make FEATURE_dwarf=0
Where the pattern would follow the auto-detected naming. This would
simplify the printout logic and would simplify the feature support / flags
decision tree as well.
Furthermore, it would unify the various flags we have today, which is
rather mixed: for example there's NO_DWARF which is a name that shows
negated logic, but there's also HAVE_CPLUS_DEMANGLE_SUPPORT is is a name
with positive logic. We'd have one uniform naming scheme permeating the
whole build system.
And that brings in your [K]config patches: which would make sense in that
context as well, as they'd allow the permanent configuration of features
with 3 states for each feature flag:
off
auto-detect
on
Your scheme I think makes a lot of sense on top of my bits. Packagers
would likely want to use a .config to build perf, most users would likely
be fine with a default of everything on auto-detect. Specialized users
would want to use their own .config's.