Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp4112571pxk; Tue, 29 Sep 2020 14:56:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRBY2RD9DM87YbVnEzxVb/3jwE1hVPY7LZi3T89SP9LxFw5PHbHVsBlN8pmZIE/knF5G86 X-Received: by 2002:aa7:dd11:: with SMTP id i17mr5426044edv.170.1601416577778; Tue, 29 Sep 2020 14:56:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601416577; cv=none; d=google.com; s=arc-20160816; b=i3fZyI/SDOZxi4FcY+pkd5AEK3D8/miIwey4lnTG40tGE+ZT52mI0cBFDNwhi0I5QO tuzS62Iau72au/kVrNdhZMiPmTMS6MT7xnH5T7aobR6wcusjNBMDBkuXsJQN8SLQuMWC Oc3rb8oTjQ73LzArqd/JGberGMNRSdDiXZb8MZYvHjqXGEdJ5PnrpvRiWJ4jyUqtdI2n V+/JNBL2uOLN64Sh2qotsfNOiEdO+i7CFxcKMSShpWJGltHb88mVme6woni2+Sli0LXM 2EsEJ0x+IkQns/9KeSIYnCJjUwZvIYRFA4jf/7f0TTYVHLbx/h1kp9jxJSqsxL+Uc7b3 hpRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=t2jBOwo5sEDhXI6sp9RzWxuwmvMHiP6RaX4eX1gc5ek=; b=bSt187332CNsA1qpg45JcSFyGMiVA6XIvdPnHjQBHUylD0MoK7JLMsxmvhNrBt/jZn Of6SHXEc15kXVwFXfBMFZTaDTMTaO4IyDXz+1QvWOXid2ZrBuxxwOmLkZDMYA+X1VWf3 9rvb+e4GUuo7JcFALwPrzHQjqwIQo5twb2IhpVeJ1zTliqgC/d70PaYdN1jJ9xXQdexj ZesLdlKCLSKlFJf55SLMdpOXM+nANCHBinRSS65E6H+Ugtf7SuxGq3q0B2VC0eqNMBqC 7fhFX4tzoNX3aUAfo7DhiQ1V4m9YgOdERcFdAIT1bEWGbOuNg8fbeTViF9vgGYkRS9kb 73Cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxtx.org header.s=google header.b=E7hfDS+s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d22si4201851edz.234.2020.09.29.14.55.54; Tue, 29 Sep 2020 14:56:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxtx.org header.s=google header.b=E7hfDS+s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728169AbgI2VyW (ORCPT + 99 others); Tue, 29 Sep 2020 17:54:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727740AbgI2VyW (ORCPT ); Tue, 29 Sep 2020 17:54:22 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4121FC061755 for ; Tue, 29 Sep 2020 14:54:22 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id z4so7117683wrr.4 for ; Tue, 29 Sep 2020 14:54:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxtx.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=t2jBOwo5sEDhXI6sp9RzWxuwmvMHiP6RaX4eX1gc5ek=; b=E7hfDS+sXf0kdHhKgC5UazbtiRypEKIfbxuk4uAJRGUY4Lb1SNerVz6Cr/62JW/JVV +3VKzcUZV/WP70E0ZpOD67V3WItA05mKKwDTr0iuIgqQoPRRShaPr0nq8pOzbt5kVw8M irMZi5zjHKotA+EbHKFqaqFOx8tLkd4auMvSU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=t2jBOwo5sEDhXI6sp9RzWxuwmvMHiP6RaX4eX1gc5ek=; b=Twdn76UJbX6wJZqJ27/qhcqotLUSuGejKWNfEctJbhw4HQvdDqbRvJv0dgo049py5R ThsIrhVUXnq/pyj+bJ/j84EdD/b9fNmXmYp/0LfoTjGddaGBer3zJVCDSloXKpwQw+gP gK10BD1Ga1zZt45GZpqntcrR6hmmMC0hwKp2e9ugag3+lhiR1rfbbozjc2JEsf3TsFL5 gY0sHBj62HAimmhETCrxsN7BNmGd3ty1lxXlGxBuWW1F5tXtNBSZU4MP/dhfdkAjedtM jTOM9mqKC6PL8yQrZwbqspqFjCLIeudRNO4tlDqtTpz6EFgNMl9IfcgKmxWvUC6IN3Hg S80w== X-Gm-Message-State: AOAM532LUo0PuGm+p7yeb28Cf9M+6eQOeRBquY2ObvqBX8LqOZTPNOhZ asj9QVcjBRs8l19zyxm/2mqU0DtJvr4uV1tM90gbHw== X-Received: by 2002:adf:93e5:: with SMTP id 92mr6354832wrp.31.1601416460800; Tue, 29 Sep 2020 14:54:20 -0700 (PDT) MIME-Version: 1.0 References: <20200929105929.719230296@linuxfoundation.org> <20200929105931.461063397@linuxfoundation.org> In-Reply-To: <20200929105931.461063397@linuxfoundation.org> From: Justin Forbes Date: Tue, 29 Sep 2020 16:54:10 -0500 Message-ID: Subject: Re: [PATCH 5.8 35/99] tools/libbpf: Avoid counting local symbols in ABI check To: Greg Kroah-Hartman Cc: LKML , stable@vger.kernel.org, Tony Ambardar , Alexei Starovoitov , Andrii Nakryiko , Sasha Levin Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 29, 2020 at 6:53 AM Greg Kroah-Hartman wrote: > > From: Tony Ambardar > > [ Upstream commit 746f534a4809e07f427f7d13d10f3a6a9641e5c3 ] > > Encountered the following failure building libbpf from kernel 5.8.5 sources > with GCC 8.4.0 and binutils 2.34: (long paths shortened) > > Warning: Num of global symbols in sharedobjs/libbpf-in.o (234) does NOT > match with num of versioned symbols in libbpf.so (236). Please make sure > all LIBBPF_API symbols are versioned in libbpf.map. > # --- libbpf_global_syms.tmp 2020-09-02 07:30:58.920084380 +0000 > # +++ libbpf_versioned_syms.tmp 2020-09-02 07:30:58.924084388 +0000 > @@ -1,3 +1,5 @@ > +_fini > +_init > bpf_btf_get_fd_by_id > bpf_btf_get_next_id > bpf_create_map > make[4]: *** [Makefile:210: check_abi] Error 1 > > Investigation shows _fini and _init are actually local symbols counted > amongst global ones: > > $ readelf --dyn-syms --wide libbpf.so|head -10 > > Symbol table '.dynsym' contains 343 entries: > Num: Value Size Type Bind Vis Ndx Name > 0: 00000000 0 NOTYPE LOCAL DEFAULT UND > 1: 00004098 0 SECTION LOCAL DEFAULT 11 > 2: 00004098 8 FUNC LOCAL DEFAULT 11 _init@@LIBBPF_0.0.1 > 3: 00023040 8 FUNC LOCAL DEFAULT 14 _fini@@LIBBPF_0.0.1 > 4: 00000000 0 OBJECT GLOBAL DEFAULT ABS LIBBPF_0.0.4 > 5: 00000000 0 OBJECT GLOBAL DEFAULT ABS LIBBPF_0.0.1 > 6: 0000ffa4 8 FUNC GLOBAL DEFAULT 12 bpf_object__find_map_by_offset@@LIBBPF_0.0.1 > > A previous commit filtered global symbols in sharedobjs/libbpf-in.o. Do the > same with the libbpf.so DSO for consistent comparison. > > Fixes: 306b267cb3c4 ("libbpf: Verify versioned symbols") > Signed-off-by: Tony Ambardar > Signed-off-by: Alexei Starovoitov > Acked-by: Andrii Nakryiko > Link: https://lore.kernel.org/bpf/20200905214831.1565465-1-Tony.Ambardar@gmail.com > Signed-off-by: Sasha Levin This seems to work everywhere else, but breaks PPC64LE. Justin > --- > tools/lib/bpf/Makefile | 2 ++ > 1 file changed, 2 insertions(+) > > --- a/tools/lib/bpf/Makefile > +++ b/tools/lib/bpf/Makefile > @@ -152,6 +152,7 @@ GLOBAL_SYM_COUNT = $(shell readelf -s -- > awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}' | \ > sort -u | wc -l) > VERSIONED_SYM_COUNT = $(shell readelf --dyn-syms --wide $(OUTPUT)libbpf.so | \ > + awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}' | \ > grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | sort -u | wc -l) > > CMD_TARGETS = $(LIB_TARGET) $(PC_FILE) > @@ -219,6 +220,7 @@ check_abi: $(OUTPUT)libbpf.so > awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}'| \ > sort -u > $(OUTPUT)libbpf_global_syms.tmp; \ > readelf --dyn-syms --wide $(OUTPUT)libbpf.so | \ > + awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}'| \ > grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | \ > sort -u > $(OUTPUT)libbpf_versioned_syms.tmp; \ > diff -u $(OUTPUT)libbpf_global_syms.tmp \ > >