On Thu, Apr 4, 2019 at 2:03 AM Dengke Du <[email protected]> wrote:
>
> When enable DEBUG_BUILD, the perf build failed by the following error:
>     libbpf.c:727:36: error: 'data' may be used uninitialized in this function 
> [-Werror=maybe-uninitialized]
> This is ok until Khem commit a patch in oe-core:
>     16643b03227466e2c80a24c2d079fe36e89553c1
> This commit import "-Og" option to "DEBUG_OPTIMIZATION", result in this error.
>
> Actually, the warning was misinformation. We explore the code in libbpf.c:
>     
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/lib/bpf/libbpf.c#n640
> --------------------------------------------------------------------------
>         if (scn)
>                 data = elf_getdata(scn, NULL);
>         if (!scn || !data) {
>                 pr_warning("failed to get Elf_Data from map section %d\n",
>                            obj->efile.maps_shndx);
>                 return -EINVAL;
>         }
>         ......
>         using data...
>         ......
> --------------------------------------------------------------------------
> If the 'scn' was not null, the data will be initialized. if the data was null,
> the function will return -EINVAL, so the data must be not null, but compiler
> can't see it in 'if' code block, so treat it as 'maybe-uninitialized'.
>
> Signed-off-by: Dengke Du <[email protected]>
> ---
>  meta/recipes-kernel/perf/perf.bb | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/meta/recipes-kernel/perf/perf.bb 
> b/meta/recipes-kernel/perf/perf.bb
> index 5acdcfb..546076f 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -271,3 +271,4 @@ FILES_${PN}-perl = "${libexecdir}/perf-core/scripts/perl"
>
>
>  INHIBIT_PACKAGE_DEBUG_SPLIT="1"
> +DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized"

I was thinking that this would be applied globally, but I think doing
it on need bases is
a better approach so this looks ok to me.
-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to