libbpf: Fix build with latest gcc/binutils with LTO
authorAndrii Nakryiko <andrii@kernel.org>
Tue, 7 Sep 2021 22:10:23 +0000 (15:10 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 8 Sep 2021 02:32:04 +0000 (19:32 -0700)
commit006a5099fc18a43792b01d002e1e45c5541ea666
tree1340a5ef235ddf7b7bccce0e65ff0cbbcf84034a
parentd6be5947efddb7e760cf1c1554f5a1049d7ca118
libbpf: Fix build with latest gcc/binutils with LTO

After updating to binutils 2.35, the build began to fail with an
assembler error. A bug was opened on the Red Hat Bugzilla a few days
later for the same issue.

Work around the problem by using the new `symver` attribute (introduced
in GCC 10) as needed instead of assembler directives.

This addresses Red Hat ([0]) and OpenSUSE ([1]) bug reports, as well as libbpf
issue ([2]).

  [0]: https://bugzilla.redhat.com/show_bug.cgi?id=1863059
  [1]: https://bugzilla.opensuse.org/show_bug.cgi?id=1188749
  [2]: Closes: https://github.com/libbpf/libbpf/issues/338

Co-developed-by: Patrick McCarty <patrick.mccarty@intel.com>
Co-developed-by: Michal Suchanek <msuchanek@suse.de>
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210907221023.2660953-1-andrii@kernel.org
tools/lib/bpf/libbpf_internal.h
tools/lib/bpf/xsk.c