On Tue, Nov 17, 2020 at 08:49:45AM +0100, Thomas Monjalon wrote: > 17/11/2020 03:46, Honnappa Nagarahalli: > > <snip> > > > > > > > > 16/11/2020 17:16, Bruce Richardson: > > > > On Mon, Nov 16, 2020 at 03:50:31PM +0000, Juraj Linkeš wrote: > > > > > From: Thomas Monjalon <tho...@monjalon.net> > > > > > > 13/11/2020 15:31, Juraj Linkeš: > > > > > > > The current machine='default' build name is not descriptive. The > > > > > > > actual default build is machine='native'. Add an alternative > > > > > > > string which does the same build and better describes what we're > > > building: > > > > > > > machine='generic'. Leave machine='default' for backwards > > > compatibility. > > > > > > > > > > > > What? > > > > > > > > > > > > "generic" means... nothing. > > > > > > > > > > > > > > > > An absence of anything means nothing. Generic means "characteristic of > > > or relating to a class or group of things; not specific", which is pretty > > > much > > > what we're looking for. > > > > > > > > > > > "default" should be the most common set of options to make a build > > > > > > work everywhere. > > > > > > > > > > What we want is a value of machine that would "be the most common > > > set of options to make a build work everywhere" and using the above > > > definition of generic, it fits very well. > > > > > The reason I said the actual default build is machine='native' is > > > > > because > > > that's how the machine option is defined in meson_options.txt. It follows > > > from what default actually means - "a preselected option adopted by a > > > computer program or other mechanism when no alternative is specified by > > > the user or programmer". Default then means no user input, which means > > > machine='native', which means the default build is the default build. > > > > > > > > > > What ""default" should mean" looks like an attempt at redefining what > > > the word actually means and leads to confusion, in my experience. Hence an > > > attempt to remove the potential ambiguity. > > > > > > > > > > > > > I would tend to agree that "generic" is probably a better term than > > > > "default" for what we use it for here in the config. > > > > > > In the past, we had a different definition with make config. > > > I am just trying to be consistent. > > > Even with meson, default means "minimal CPU instructions". > > > > > > Example in devtools/test-meson-builds.sh: > > > "test compilation with minimal x86 instruction set" > > > is called build-x86-default. > > > > > > In config/meson.build: > > > " > > > machine type 'default' is special, it defaults to the per arch agreed > > > common > > > minimal baseline needed for DPDK. > > > That might not be the most optimized, but the most portable version while > > > still being able to support the CPU features required for DPDK. > > > This can be bumped up by the DPDK project, but it can never be an > > > invariant > > > like 'native' > > > " > > > > > > So, why this definition is called "generic" in meson Arm config? > > The explanation above is for a build type 'default'. Whereas meson by > > default builds for build type 'native'. Also when you look at the > > config/arm/meson.build the word 'default' was used where it was not related > > to the build type default. It created lot of confusion. > > > > From the dictionary 'default' - "a preselected option adopted by a computer > > program or other mechanism when no alternative is specified by the user or > > programmer." But, if one had to do build of type default, they have to > > mention -Dmachine=default. If nothing is mentioned, it is a build type > > 'native', which does not go along with the definition of 'default'. > > > > But for 'generic' - "characteristic of or relating to a class or group of > > things; not specific". IMO, it better suits the explanation you have > > provided above. So, separating this machine type to 'generic' to cover the > > same definition makes more sense. > > > > However, 'default' is still supported for backward compatibility. > > So? Are you going to change the DPDK definitions we had for years? >
I think we should, or at least support "generic" alongside it. Using the term "default" for something that is not the default is confusing. It's also not a good description of what the result is, since it's a generic binary for the architecture, rather than a "default" one for the architecture. /Bruce