Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp3369090rdg; Tue, 17 Oct 2023 12:27:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH3uO3wjs8cJE6zOOM0I1hLwdRRCIiHXxz0/IFoXrmHcLySqO8w4Jew5RpDYkU5QH4LpjHE X-Received: by 2002:a17:902:d0d2:b0:1ca:92a:df0 with SMTP id n18-20020a170902d0d200b001ca092a0df0mr2704593pln.59.1697570820326; Tue, 17 Oct 2023 12:27:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697570820; cv=none; d=google.com; s=arc-20160816; b=SReOniO+uqpMvzRWJH0uSaexiAr+Mrw7vVut6qmceA7d2rRYawnRK7PNQTnOOoEKmM wIal4pHuuLQwMYen6720R+NtxwQMRsjALkvfA+bDJ3BI+WWolxiPk7CjGYt5VMhACrLH d0kYbjNwKN4klpIkErvg5Rv0YqBcF77wz1aXumzWpfQzBOZEqvSwIAIDbxmvwbTGYCqd eRdR49l/hmogEKvZkPVkabu+kEZiPYny+POXtHpcSVUXEkZwqtzOaDHde7YKI8KxLA91 fmQ7o54YK3OebtM5P0hoAa0M2fQGIX3YiOsHoPkfZl+hpcY4gYkhFZE/vHGAPTPHMhh9 e9Rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=KDot9iblcIn0w6AF1G0uxUEwZFMHjB3wMQ8TKedvYfs=; fh=5XHGfgLIDR3jWFYZ0fssuB98vcIyWrzPkATM1pglzo8=; b=waP8yMC4ETnTeUekV5sAeXuMFEhHYPLIFZSnbtKyN40gF+nIc/8HJKB0Wia0KU2WV0 rVRmXjOL5j69cp75ntMy1GT3ZWxMcewzA/Ue7aF6p23zsg8Y+zWbf7S9IA5frDl1+8lQ cd8NNbmzkEj6Z+N46LByWopNVmL4WvNx/AobwwHk/aO6Otjxdr1Sk7rRC0MdFTpcK9CA N8wyJraN1BnzN8FiF/opfeYA21kcpcJ5mJX7BI+Yzk6eU2hHDQfqf+sLESSKPDunduUY eSdjsbGcSNgpxgma3wtmXFMWfOHUMUNVZlfEZTBi1qsHxBM35QFaLMyhICACo7H2GqKB a3ZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@daynix-com.20230601.gappssmtp.com header.s=20230601 header.b=MIuRQW1w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id o14-20020a170902d4ce00b001c7380aca09si2604276plg.512.2023.10.17.12.26.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Oct 2023 12:27:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@daynix-com.20230601.gappssmtp.com header.s=20230601 header.b=MIuRQW1w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id C7465801C94F; Tue, 17 Oct 2023 12:26:57 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343990AbjJQT0t (ORCPT + 99 others); Tue, 17 Oct 2023 15:26:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58776 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235010AbjJQT0s (ORCPT ); Tue, 17 Oct 2023 15:26:48 -0400 Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 248E1C4 for ; Tue, 17 Oct 2023 12:26:47 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-6ba54c3ed97so3163358b3a.2 for ; Tue, 17 Oct 2023 12:26:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1697570806; x=1698175606; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=KDot9iblcIn0w6AF1G0uxUEwZFMHjB3wMQ8TKedvYfs=; b=MIuRQW1wOl26JrDTgt4y1nTWFo9t47fiF7ZbavL3tg75bDQ9HXAf6W5pYBQuO8k4M3 Ktu/pSXluTmzvJmOtYnikCKpww7c2m+cvBZ/U+PLVrpHT9L9HeAFF3HXxUrHErw6PoSv 2a737RbILsV5fUCsgwJIGeEJEuzEPWsXj45ItYba0ZNmp3xKxqKQiOWuiW/EsXedeIJ3 uSwa3iJbvnSusjkuEYZo1t1klQ+m9daZzi6lDX7HuYuMXT2vCQG4q6lDPrjTOhRQc0yt EGfWhT10fnWV06vnzorQabl//5Tncgmd1CrQEHovdjDbNrk0fb3O2oM48rDKlkeRHZVS l4ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697570806; x=1698175606; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KDot9iblcIn0w6AF1G0uxUEwZFMHjB3wMQ8TKedvYfs=; b=RqPqPn72AEALG7uF9+F7OCPVuGQZuyQ/t28Ch4Z/lw93jaO44VGQKSPFY7wvwEnzYJ QF61FRnPNZezeXzODonbQ5DuODAgWBrWGkWAI94A1+ICu78HnnaPJyYoL7DiZ3+7O8Ol iIwYi4S4vsZMfOybUONRUA6txA65TswAN9egoT/71vAl975rjd6RS5+AfX644cfmCPjl JMWWo7m1jpoMsiCmRvu8yu5TjQyLSY7ptcs1NLnCnAvhR5uUjQnmXquntvimOTX89RGZ Up8xehrhmgTYcaNnPamNYob+q/P4OhUFwaFqDvRfEWXFlRGNU0IL047MYaiLnrTmW3PV WeWA== X-Gm-Message-State: AOJu0Yx61e7N0xtYx/e32OOH0kfy6QO5R7qB/IDjP32Ijb0Y2zENGAuz vBRLPAYL/DreI2SbqRSSl+IEDQ== X-Received: by 2002:a05:6a00:23d3:b0:6bd:2c0a:e7d with SMTP id g19-20020a056a0023d300b006bd2c0a0e7dmr3052248pfc.19.1697570806604; Tue, 17 Oct 2023 12:26:46 -0700 (PDT) Received: from ?IPV6:2400:4050:a840:1e00:78d2:b862:10a7:d486? ([2400:4050:a840:1e00:78d2:b862:10a7:d486]) by smtp.gmail.com with ESMTPSA id o3-20020aa79783000000b006be22fde07dsm1825381pfp.106.2023.10.17.12.26.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Oct 2023 12:26:46 -0700 (PDT) Message-ID: <512a8ed7-4321-4ffe-a569-da1bee288986@daynix.com> Date: Wed, 18 Oct 2023 04:26:41 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH bpf-next v4] selftests/bpf: Use pkg-config to determine ld flags Content-Language: en-US To: Daniel Borkmann Cc: Andrii Nakryiko , Mykola Lysenko , Alexei Starovoitov , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Shuah Khan , Nick Terrell , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, bjorn@kernel.org References: <20231016130307.35104-1-akihiko.odaki@daynix.com> <4037a83a-c6b6-6eab-1cb1-93339686c4e5@iogearbox.net> From: Akihiko Odaki In-Reply-To: <4037a83a-c6b6-6eab-1cb1-93339686c4e5@iogearbox.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 17 Oct 2023 12:26:58 -0700 (PDT) On 2023/10/17 23:15, Daniel Borkmann wrote: > On 10/16/23 3:03 PM, Akihiko Odaki wrote: >> When linking statically, libraries may require other dependencies to be >> included to ld flags. In particular, libelf may require libzstd. Use >> pkg-config to determine such dependencies. >> >> Signed-off-by: Akihiko Odaki >> --- >> V3 -> V4: Added "2> /dev/null". >> V2 -> V3: Added missing "echo". >> V1 -> V2: Implemented fallback, referring to HOSTPKG_CONFIG. >> >>   tools/testing/selftests/bpf/Makefile   | 4 +++- >>   tools/testing/selftests/bpf/README.rst | 2 +- >>   2 files changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/tools/testing/selftests/bpf/Makefile >> b/tools/testing/selftests/bpf/Makefile >> index caede9b574cb..009e907a8abe 100644 >> --- a/tools/testing/selftests/bpf/Makefile >> +++ b/tools/testing/selftests/bpf/Makefile >> @@ -4,6 +4,7 @@ include ../../../scripts/Makefile.arch >>   include ../../../scripts/Makefile.include >>   CXX ?= $(CROSS_COMPILE)g++ >> +PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config >>   CURDIR := $(abspath .) >>   TOOLSDIR := $(abspath ../../..) >> @@ -31,7 +32,8 @@ CFLAGS += -g -O0 -rdynamic -Wall -Werror $(GENFLAGS) >> $(SAN_CFLAGS)    \ >>         -I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR)        \ >>         -I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT) >>   LDFLAGS += $(SAN_LDFLAGS) >> -LDLIBS += -lelf -lz -lrt -lpthread >> +LDLIBS += $(shell $(PKG_CONFIG) --libs libelf zlib 2> /dev/null || >> echo -lelf -lz)    \ >> +      -lrt -lpthread >>   ifneq ($(LLVM),) >>   # Silence some warnings when compiled with clang > > Staring at tools/bpf/resolve_btfids/Makefile, I'm trying to understand > why we > cannot replicate something similar for BPF selftests? > > For example, with your patch, why is it necessary to now have PKG_CONFIG > and > another HOSTPKG_CONFIG var? It's because at least Debian does have wrappers of pkg-config for cross compile targets. You can find them below: https://packages.debian.org/search?searchon=contents&keywords=pkg-config&mode=path&suite=stable&arch=any > > What about the below? > > diff --git a/tools/testing/selftests/bpf/Makefile > b/tools/testing/selftests/bpf/Makefile > index 4225f975fce3..62166d2f937d 100644 > --- a/tools/testing/selftests/bpf/Makefile > +++ b/tools/testing/selftests/bpf/Makefile > @@ -29,13 +29,17 @@ SAN_CFLAGS  ?= >  SAN_LDFLAGS    ?= $(SAN_CFLAGS) >  RELEASE                ?= >  OPT_FLAGS      ?= $(if $(RELEASE),-O2,-O0) > + > +LIBELF_FLAGS   := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) > +LIBELF_LIBS    := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null > || echo -lelf) Having dedicated variables and checking --cflags are a good idea.