]> code.ossystems Code Review - openembedded-core.git/commitdiff
perf: workaround the error cased by maybe-uninitialized warning
authorDengke Du <dengke.du@windriver.com>
Thu, 4 Apr 2019 09:02:33 +0000 (17:02 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 11 Apr 2019 20:19:27 +0000 (21:19 +0100)
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 <dengke.du@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-kernel/perf/perf.bb

index 5acdcfb9f0407febb45544aab6a3b3a342faeb15..546076f84bd1a5711fbdee105b7bc288b82c1d92 100644 (file)
@@ -271,3 +271,4 @@ FILES_${PN}-perl = "${libexecdir}/perf-core/scripts/perl"
 
 
 INHIBIT_PACKAGE_DEBUG_SPLIT="1"
+DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized"