From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E313DA00C5; Tue, 15 Feb 2022 16:34:28 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 692A7410F7; Tue, 15 Feb 2022 16:34:28 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 4E98C410F3 for ; Tue, 15 Feb 2022 16:34:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644939267; x=1676475267; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=zuqFbvsT8Bljryx9tSUrXfBsf6OhOMVm9lfDkHMu7fw=; b=SKU/M3JbtK78MQS4ML2YK4WhvTiGBYFo1D1LmKevHRyH2OQfRGWv9Otr hFjp+9n1FSTQw6LW18EkHUIfFhgbz/NmVtdvHL2s9IeyJHoOoA01QccMk vpXQ0PUMj7dAKoog8xMtfOjRV3GnZsy2/Nm1xf5FzpO/YWpTCSRJ0Ep2Q QkvvyQRWOidw+sJI3gbtykywrSYBwo+yvk9RLQzd3WQ2SXKcc5oPvox1r aZrfReX189B0Hf57Jyt3nB4SPc1Cioh2EOq2pewMGim7wzILwuycLHQcW Wr9YoYu0KQT3uUP0x4uR7Mv/+8lbeWL0r75HBp3bm0v1zeJO3R1ZFMD4P Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10258"; a="237780351" X-IronPort-AV: E=Sophos;i="5.88,371,1635231600"; d="scan'208";a="237780351" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2022 07:34:26 -0800 X-IronPort-AV: E=Sophos;i="5.88,371,1635231600"; d="scan'208";a="544347445" Received: from bricha3-mobl.ger.corp.intel.com ([10.252.21.146]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 15 Feb 2022 07:34:25 -0800 Date: Tue, 15 Feb 2022 15:34:22 +0000 From: Bruce Richardson To: Karl Bonde Torp Cc: dev@dpdk.org, Karl Bonde Torp Subject: Re: [PATCH] build: fix build on FreeBSD with Meson 0.61.1 Message-ID: References: <20220214114313.21258-1-k.torp@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Tue, Feb 15, 2022 at 02:50:48PM +0100, Karl Bonde Torp wrote: > On Tue, 15 Feb 2022 at 12:27, Bruce Richardson > wrote: > > > > On Tue, Feb 15, 2022 at 12:07:55PM +0100, Karl Bonde Torp wrote: > > > On Mon, 14 Feb 2022 at 14:48, Bruce Richardson > > > wrote: > > > > > > > > On Mon, Feb 14, 2022 at 12:43:13PM +0100, Karl Bonde Torp wrote: > > > > > When building with Meson 0.61.1 on FreeBSD some archives become > > > > > corrupted. This can be avoided by using 'llvm-ar' instead of 'ar'. > > > > > > > > > > Signed-off-by: Karl Bonde Torp > > > > > --- > > > > > > > > Can you perhaps provide some instructions or more details as to > > > > how/when you see this issue? > > > > > > Some background info: > > > I'm working on xNVMe and that depends on SPDK which in turn depends > > > on DPDK. These are includes as subprojects on github which is why the > > > FreeBSD port of DPDK is not an option for me. > > > > > > The steps I took to reproduce the issue are listed below, this assumes > > > a clean img of FreeBSD 13: > > > (I know some of them may be obvious, but I tried to avoid ambiguity) > > > > > > * install git and the pkg manager: > > > pkg install git > > > * get kernel source: > > > git clone https://git.freebsd.org/src.git /usr/src > > > * get ports: > > > git clone https://git.freebsd.org/ports.git /usr/ports > > > * install dependencies (except meson) with pkg: > > > pkg install py38-pyelftools ninja pkgconf binutils > > > * build meson 0.61.1 from port: > > > cd /usr/ports/devel/meson/ && make install clean > > > * clone dpdk repo: > > > git clone https://github.com/DPDK/dpdk.git > > > * inside dpdk folder run: > > > meson builddir && meson compile -C builddir > > > * encounter error: > > > [466/1915] Generating drivers/rte_common_cpt.pmd.c with a custom > > > command > > > FAILED: drivers/rte_common_cpt.pmd.c > > > /usr/local/bin/python3.8 ../buildtools/gen-pmdinfo-cfile.py > > > /root/dpdk/builddir/buildtools ar > > > /root/dpdk/builddir/drivers/libtmp_rte_common_cpt.a > > > drivers/rte_common_cpt.pmd.c /usr/local/bin/python3.8 > > > ../buildtools/pmdinfogen.py elf > > > ar: fatal: Unrecognized archive format: Inappropriate file type or > > > format > > > Traceback (most recent call last): > > > File "../buildtools/gen-pmdinfo-cfile.py", line 13, in > > > for name in subprocess.run([ar, "t", archive], > > > stdout=subprocess.PIPE, > > > File "/usr/local/lib/python3.8/subprocess.py", line 516, in run > > > raise CalledProcessError(retcode, process.args, > > > subprocess.CalledProcessError: Command '['ar', 't', > > > '/root/dpdk/builddir/drivers/libtmp_rte_common_cpt.a']' returned > > > non-zero exit status 70. > > > > > > > A clean build of mine on FreeBSD with meson 0.61.1 didn't seem to > > > > flag up any problems and I'd like to reproduce the issue to verify the fix. > > > I'm guessing you're refering to the port of DPDK here. > > > If not I am very interested to hear how you go about this. > > > > > > > I tested with latest DPDK on a FreeBSD machine also, not using the BSD > > ports version. Unfortunately it wasn't a clean install, but still a fairly > > new one. I updated the BSD pkg config to use "latest" rather than > > "quarterly" snapshot and then ran an "pkg upgrade". This gave me meson > > 0.61.1, and updated other packages too. Build of DPDK then ran cleanly. > > > > I wonder if the version of binutils or some other package might be the > > difference. The version I have is "GNU ar (GNU Binutils) 2.37". What > > version of binutils is installed on your system? > My version of binutils is 2.37_2,1, so that is the same. > However, I think you're onto something here. When I run "ar --version" I > get "BSD ar 1.1.0 - libarchive 3.5.1". > The problem my patch aimed to solve was 'BSD ar' behaving differently > than 'GNU ar'. So if you somehow got the 'ar' command to invoke 'GNU > ar' on your system, maybe I just need to do the same. Good point, I had missed that. BSD ar is in /usr/bin and GNU ar is installed by binutils in /usr/local/bin/ar.