[ELDK] ERROR: The function perf_feature_enabled defined in perf-features.inc was already declared in perf.inc.

Larry Baker baker at usgs.gov
Tue Aug 20 05:39:13 CEST 2013


Lothar,

On Aug 19, 2013, at 6:44 AM, <lothar at denx.de> <lothar at denx.de> wrote:

> Am 2013-08-19 08:25, schrieb Larry Baker:
> Hi Larry!
> 
>> I'm getting an error about 40% of the way through the initial bitbake
>> "Parsing recipes" step:
>>> ERROR: The function perf_feature_enabled defined in perf-features.inc was already declared in perf.inc. BitBake has a global python function namespace so shared functions should be declared in a common include file rather than being duplicated, or if the functions are different, please use different function names.
>> I have attached a screen capture of the first few steps of
>> "MACHINE=generic-armv5te bitbake -k core-image-basic".
>> I am concerned because there is a difference in the
>> perf_feature_enabled function in the two files cited:
>>> [baker at lenovo eldk]$ diff /opt/git/eldk/meta-eldk/recipes-kernel/perf/perf.inc /opt/git/eldk/meta/recipes-kernel/perf/perf-features.inc
>>> 1c1
>>> < PERF_FEATURES_ENABLE ?= ""
>>> ---
>>> > PERF_FEATURES_ENABLE ?= "perf-scripting perf-tui"
>> I do not know what difference this can make.
>> The perf.inc file under meta-eldk is not visible until after a "git
>> checkout eldk-5.4".
>> I don't recall this error message appearing when I first cloned the
>> ELDK git.  I wiped out my previous git clone and made this git clone
>> Aug 18 22:59 UTC.
>> Larry Baker
>> US Geological Survey
>> 650-329-5608
>> baker at usgs.gov
>> _______________________________________________
>> eldk mailing list
>> eldk at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/eldk
> 
> 
> Thank you very much for sharing your precious observations!
> 
> As I already mentioned, me too saw something similar:
> $ MACHINE=generic-armv5te bitbake -n core-image-minimal
> (...)
> 
> WARNING: Unable to get checksum for linux-xenomai SRC_URI entry defconfig: file could not be found                                                     | ETA:  00:00:18
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry install.patch: file could not be found                                             | ETA:  00:00:16
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry crypt-lib.patch: file could not be found
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry need: file could not be found
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry provide: file could not be found
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry rcS-default: file could not be found
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry rc: file could not be found
> WARNING: Unable to get checksum for sysvinit-enbw-cmc SRC_URI entry rcS: file could not be found
> WARNING: Unable to get checksum for gst-omapfb SRC_URI entry gst-omapfb-cross-gcc-fix.patch: file could not be found                                   | ETA:  00:00:11
> WARNING: Unable to get checksum for gst-omapfb SRC_URI entry 0001-modify-to-use-on-AM3517-with-Qt-Embedded-OMAPFB-over.patch: file could not be found
> WARNING: Unable to get checksum for gst-omapfb SRC_URI entry 0002-gst-omapfb-modify-to-use-with-Qt-Mobility-extensions.patch: file could not be found
> ERROR: The function perf_feature_enabled defined in perf-features.inc was already declared in perf.inc. BitBake has a global python function namespace so shared functions should be declared in a common include file rather than being duplicated, or if the functions are different, please use different function names.
> Parsing recipes: 100% |################################################################################################################################| Time: 00:00:14
> Parsing of 847 .bb files complete (0 cached, 847 parsed). 1164 targets, 55 skipped, 0 masked, 0 errors.
> 
> In the attachment you'll find my personal solution. It's not an official fix, it just fixed the situation for me, I assumed just a simple mistake in the filename, not perf.inc but perf-feature.inc in the meta-eldk.
> 
> Again, I have to underline that it is not an official fix! It's my own solution, just what I did to get the error out of my way, and I didn't see any further problems. I'll address the issue when we have more resources to take a look at it.
> 
> Any further feedback on that I appreciate!!
> 
> BR,
> Lothar Rubusch
> 
> PS: if I arrange some time, I'll try to have a look in this tremendous amount of warnings, too!
> 
> 
> QUICKFIX:
> From 160f6eb3260db26bc52ef5c6b030b25eff2ca5ef Mon Sep 17 00:00:00 2001
> From: Lothar Rubusch <l.rubusch at gmx.ch>
> Date: Mon, 19 Aug 2013 15:13:02 +0200
> Subject: [PATCH] perf.inc quickfix
> 
> ---
> meta-eldk/recipes-kernel/perf/perf-features.inc |   22 ++++++++++++++++++++++
> meta-eldk/recipes-kernel/perf/perf.inc          |   22 ----------------------
> meta-eldk/recipes-kernel/perf/perf_3.6.bb       |    2 +-
> 3 files changed, 23 insertions(+), 23 deletions(-)
> create mode 100644 meta-eldk/recipes-kernel/perf/perf-features.inc
> delete mode 100644 meta-eldk/recipes-kernel/perf/perf.inc
> 
> diff --git a/meta-eldk/recipes-kernel/perf/perf-features.inc b/meta-eldk/recipes-kernel/perf/perf-features.inc
> new file mode 100644
> index 0000000..e1a7492
> --- /dev/null
> +++ b/meta-eldk/recipes-kernel/perf/perf-features.inc
> @@ -0,0 +1,22 @@
> +PERF_FEATURES_ENABLE ?= ""
> +
> +def perf_feature_enabled(feature, trueval, falseval, d):
> +    """
> +    Check which perf features are enabled.
> +
> +    The PERF_FEATURES_ENABLE variable lists the perf features to
> +    enable.  Override it if you want something different from what's
> +    listed above, which is the default.  If empty, the build won't
> +    enable any features (which may be exactly what you want, just a
> +    barebones perf without any extra baggage, what you get if you
> +    specify an empty feature list).
> +
> +    Available perf features:
> +      perf-scripting: enable support for Perl and Python bindings
> +      perf-tui: enable support for the perf TUI (via libnewt)
> +
> +    """
> +    enabled_features = d.getVar("PERF_FEATURES_ENABLE", True) or ""
> +    if feature in enabled_features:
> +        return trueval
> +    return falseval
> diff --git a/meta-eldk/recipes-kernel/perf/perf.inc b/meta-eldk/recipes-kernel/perf/perf.inc
> deleted file mode 100644
> index e1a7492..0000000
> --- a/meta-eldk/recipes-kernel/perf/perf.inc
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -PERF_FEATURES_ENABLE ?= ""
> -
> -def perf_feature_enabled(feature, trueval, falseval, d):
> -    """
> -    Check which perf features are enabled.
> -
> -    The PERF_FEATURES_ENABLE variable lists the perf features to
> -    enable.  Override it if you want something different from what's
> -    listed above, which is the default.  If empty, the build won't
> -    enable any features (which may be exactly what you want, just a
> -    barebones perf without any extra baggage, what you get if you
> -    specify an empty feature list).
> -
> -    Available perf features:
> -      perf-scripting: enable support for Perl and Python bindings
> -      perf-tui: enable support for the perf TUI (via libnewt)
> -
> -    """
> -    enabled_features = d.getVar("PERF_FEATURES_ENABLE", True) or ""
> -    if feature in enabled_features:
> -        return trueval
> -    return falseval
> diff --git a/meta-eldk/recipes-kernel/perf/perf_3.6.bb b/meta-eldk/recipes-kernel/perf/perf_3.6.bb
> index b3a8792..045b1f3 100644
> --- a/meta-eldk/recipes-kernel/perf/perf_3.6.bb
> +++ b/meta-eldk/recipes-kernel/perf/perf_3.6.bb
> @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
> 
> PR = "r0"
> 
> -require perf.inc
> +require perf-features.inc
> 
> BUILDPERF_libc-uclibc = "no"
> 
> -- 
> 1.7.10.4
> 
> _______________________________________________
> eldk mailing list
> eldk at lists.denx.de
> http://lists.denx.de/mailman/listinfo/eldk


From the structure of your patch, I take it that files in meta-eldk overload files in meta with the same name (a simple path search of some kind)?

Thank you,

Larry Baker
US Geological Survey
650-329-5608
baker at usgs.gov



More information about the eldk mailing list