• Jiri Olsa's avatar
    perf build: Stop using __weak btf__raw_data() to handle older libbpf versions · 982be477
    Jiri Olsa authored
    By adding a feature test for btf__raw_data() and providing a fallback if
    it isn't present in older versions of libbpf.
    
    Committer testing:
    
      $ rpm -q libbpf-devel
      libbpf-devel-0.4.0-2.fc35.x86_64
      $ make -C tools/perf LIBBPF_DYNAMIC=1 O=/tmp/build/perf install-bin
      $ cat /tmp/build/perf/feature/test-libbpf-btf__raw_data.make.output
      test-libbpf-btf__raw_data.c: In function ‘main’:
      test-libbpf-btf__raw_data.c:6:9: error: implicit declaration of function ‘btf__raw_data’; did you mean ‘btf__get_raw_data’? [-Werror=implicit-function-declaration]
          6 |         btf__raw_data(NULL /* btf_ro */, NULL /* size */);
            |         ^~~~~~~~~~~~~
            |         btf__get_raw_data
      cc1: all warnings being treated as errors
      $ objdump -dS /tmp/build/perf/perf | grep '<btf__raw_data>:' -A20
      00000000005b3050 <btf__raw_data>:
      {
        5b3050:	55                   	push   %rbp
        5b3051:	48 89 e5             	mov    %rsp,%rbp
        5b3054:	48 83 ec 10          	sub    $0x10,%rsp
        5b3058:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
        5b305f:	00 00
        5b3061:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
        5b3065:	31 c0                	xor    %eax,%eax
    	  return btf__get_raw_data(btf_ro, size);
        5b3067:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
        5b306b:	64 48 2b 04 25 28 00 	sub    %fs:0x28,%rax
        5b3072:	00 00
        5b3074:	75 06                	jne    5b307c <btf__raw_data+0x2c>
      }
        5b3076:	c9                   	leave
    	  return btf__get_raw_data(btf_ro, size);
        5b3077:	e9 14 99 e5 ff       	jmp    40c990 <btf__get_raw_data@plt>
        5b307c:	e8 af a7 e5 ff       	call   40d830 <__stack_chk_fail@plt>
        5b3081:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
        5b3088:	00 00 00 00
        $
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ilya Leoshkevich <iii@linux.ibm.com>
    Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
    Cc: Sven Schnelle <svens@linux.ibm.com>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Link: http://lore.kernel.org/linux-perf-users/YozLKby7ITEtchC9@kravaSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    982be477
test-libbpf-btf__raw_data.c 140 Bytes