Patchwork [0/3] Suppress Texinfo utilities invoked at build time for -cross & native recipes (revised)

login
register
mail settings
Submitter Max Eliaser
Date June 10, 2014, 8:24 p.m.
Message ID <cover.1402431641.git.max.eliaser@intel.com>
Download mbox
Permalink /patch/73585/
State New
Headers show

Pull-request

git://git.yoctoproject.org/poky-contrib meliaser/texinfo-build-2

Comments

Max Eliaser - June 10, 2014, 8:24 p.m.
Hello list,

As per discussion with Richard Purdie and others, I'm submitting a patch to 
suppress some unnecessary invocations of utilities from the Texinfo suite during
Yocto builds. Specifically, it targets -native and -cross recipes that inherit
texinfo.bbclass. This series is revised to fix issues that came up on the 
autobuilder when I first tried submitting it.

The Texinfo utilities are suppressed by supplying doppelgänger executables which
understand the same command-line options as the genuine Texinfo utilites, and
which can create blank output files where expected, but which do no actual
processing, formatting, or markup. To see how this is done, look in the 
texinfo-dummy-native recipe (under meta/recipes-extended,) added in this patch
series, as well as the modifications to texinfo.bbclass, also in this patch 
series.

Suppressing the Texinfo utilities for -native and -cross recipes does provide a
noticable performance gain, as documented in bug 2421. [1] You could make the 
case that this patch series still does not completely address bug 2421, as there
are other utilities not from the Texinfo suite (groff, pod2man, etc) which are
not suppressed by these changes.

Target-architecture recipes continue to use the host system's Texinfo utilities
as before, so that dependency is not eliminated by this patch series. 

Regards,
-Max Eliaser

[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=2421
The following changes since commit e7114046be6e71fb326477dc882adb814ef6a751:

  busybox: fix meta-yocto's bbappend's FILESEXTRAPATH (2014-06-03 17:53:13 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib meliaser/texinfo-build-2
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=meliaser/texinfo-build-2

Max Eliaser (3):
  texinfo: Use texinfo-replacement-native as an alias for
    texinfo-native.
  texinfo-dummy-native: Create recipe w/ scripts to stand in for Texinfo
    utils.
  texinfo.bbclass: native/cross uses dummy texinfo; target uses host's
    Texinfo.

 meta/classes/texinfo.bbclass                       |  15 ++-
 meta/conf/bitbake.conf                             |   1 +
 .../texinfo-dummy-native/texinfo-dummy-native.bb   |  30 +++++
 .../texinfo-dummy-native/texinfo-dummy/COPYING     |  19 ++++
 .../texinfo-dummy-native/texinfo-dummy/template.py | 122 +++++++++++++++++++++
 meta/recipes-extended/texinfo/texinfo_5.2.bb       |   4 +-
 6 files changed, 189 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
 create mode 100644 meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/COPYING
 create mode 100644 meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py
Mark Hatle - June 10, 2014, 9:06 p.m.
On 6/10/14, 3:24 PM, Max Eliaser wrote:
> Hello list,
>
> As per discussion with Richard Purdie and others, I'm submitting a patch to
> suppress some unnecessary invocations of utilities from the Texinfo suite during
> Yocto builds. Specifically, it targets -native and -cross recipes that inherit
> texinfo.bbclass. This series is revised to fix issues that came up on the
> autobuilder when I first tried submitting it.
>
> The Texinfo utilities are suppressed by supplying doppelgänger executables which
> understand the same command-line options as the genuine Texinfo utilites, and
> which can create blank output files where expected, but which do no actual
> processing, formatting, or markup. To see how this is done, look in the
> texinfo-dummy-native recipe (under meta/recipes-extended,) added in this patch
> series, as well as the modifications to texinfo.bbclass, also in this patch
> series.
>
> Suppressing the Texinfo utilities for -native and -cross recipes does provide a
> noticable performance gain, as documented in bug 2421. [1] You could make the
> case that this patch series still does not completely address bug 2421, as there
> are other utilities not from the Texinfo suite (groff, pod2man, etc) which are
> not suppressed by these changes.

There are a few cases, where I've wanted texinfo processed files to be shipped 
as part of an SDK.  Specifically nativesdk and the SDK cross compiler packages. 
  Will this affect either of those cases?

(Looking at the code, I don't think it will, but I wanted to check.)

> Target-architecture recipes continue to use the host system's Texinfo utilities
> as before, so that dependency is not eliminated by this patch series.

--Mark

> Regards,
> -Max Eliaser
>
> [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=2421
> The following changes since commit e7114046be6e71fb326477dc882adb814ef6a751:
>
>    busybox: fix meta-yocto's bbappend's FILESEXTRAPATH (2014-06-03 17:53:13 +0100)
>
> are available in the git repository at:
>
>    git://git.yoctoproject.org/poky-contrib meliaser/texinfo-build-2
>    http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=meliaser/texinfo-build-2
>
> Max Eliaser (3):
>    texinfo: Use texinfo-replacement-native as an alias for
>      texinfo-native.
>    texinfo-dummy-native: Create recipe w/ scripts to stand in for Texinfo
>      utils.
>    texinfo.bbclass: native/cross uses dummy texinfo; target uses host's
>      Texinfo.
>
>   meta/classes/texinfo.bbclass                       |  15 ++-
>   meta/conf/bitbake.conf                             |   1 +
>   .../texinfo-dummy-native/texinfo-dummy-native.bb   |  30 +++++
>   .../texinfo-dummy-native/texinfo-dummy/COPYING     |  19 ++++
>   .../texinfo-dummy-native/texinfo-dummy/template.py | 122 +++++++++++++++++++++
>   meta/recipes-extended/texinfo/texinfo_5.2.bb       |   4 +-
>   6 files changed, 189 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb
>   create mode 100644 meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/COPYING
>   create mode 100644 meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py
>
Max Eliaser - June 10, 2014, 9:52 p.m.
Shouldn't be a problem. It's only if the class is "native" or "cross" that the impostor texinfo utils get used. I believe "nativesdk" and "crosssdk" are separate from "native" and "cross". 

-Max