• Thomas Richter's avatar
    perf build: Build error in libbpf missing initialization · b611da43
    Thomas Richter authored
    In linux-next tree compiling the perf tool with additional make flags
    EXTRA_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -O2" causes a compiler error.
    It is the warning 'variable may be used uninitialized' which is treated
    as error: I compile it using a FEDORA 28 installation, my gcc compiler
    version: gcc (GCC) 8.0.1 20180324 (Red Hat 8.0.1-0.20). The file that
    causes the error is tools/lib/bpf/libbpf.c.
    
      [root@p23lp27] # make V=1 EXTRA_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -O2"
      [...]
      Makefile.config:849: No openjdk development package found, please
         install JDK package, e.g. openjdk-8-jdk, java-1.8.0-openjdk-devel
      Warning: Kernel ABI header at 'tools/include/uapi/linux/if_link.h'
              differs from latest version at 'include/uapi/linux/if_link.h'
        CC       libbpf.o
      libbpf.c: In function ‘bpf_perf_event_read_simple’:
      libbpf.c:2342:6: error: ‘ret’ may be used uninitialized in this
      			function [-Werror=maybe-uninitialized]
        int ret;
            ^
      cc1: all warnings being treated as errors
      mv: cannot stat './.libbpf.o.tmp': No such file or directory
      /home6/tmricht/linux-next/tools/build/Makefile.build:96: recipe for target 'libbpf.o' failed
    Suggested-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    b611da43
libbpf.c 53.5 KB