[dpdk-dev] [PATCH v12 01/14] build: alias default build as generic

Thomas Monjalon thomas at monjalon.net
Tue Nov 17 10:58:25 CET 2020


17/11/2020 10:15, Bruce Richardson:
> 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 <thomas at 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.

OK in this case, please do the patch which changes it everywhere,
not only for Arm. We can change our names as long as it is explained
and have some consistency.





More information about the dev mailing list