DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Karl Bonde Torp <karlowich@gmail.com>
Cc: dev@dpdk.org, Karl Bonde Torp <k.torp@samsung.com>
Subject: Re: [PATCH] build: fix build on FreeBSD with Meson 0.61.1
Date: Tue, 15 Feb 2022 15:34:22 +0000	[thread overview]
Message-ID: <YgvH/vLnCCuWhvje@bricha3-MOBL.ger.corp.intel.com> (raw)
In-Reply-To: <CAJ5eYd6yZwoL3mBy_WRgPED5btEFhKxp37oRW-9w+0idxLifKg@mail.gmail.com>

On Tue, Feb 15, 2022 at 02:50:48PM +0100, Karl Bonde Torp wrote:
> On Tue, 15 Feb 2022 at 12:27, Bruce Richardson
> <bruce.richardson@intel.com> 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
> > > <bruce.richardson@intel.com> 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 <k.torp@samsung.com>
> > > > > ---
> > > >
> > > > 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 <module>
> > >     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.

  reply	other threads:[~2022-02-15 15:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-14 11:43 Karl Bonde Torp
2022-02-14 13:48 ` Bruce Richardson
2022-02-15 11:07   ` Karl Bonde Torp
2022-02-15 11:27     ` Bruce Richardson
2022-02-15 13:50       ` Karl Bonde Torp
2022-02-15 15:34         ` Bruce Richardson [this message]
2022-03-07 16:43           ` Thomas Monjalon
2022-03-07 16:52             ` Bruce Richardson
2022-02-15 15:31 ` Bruce Richardson
2022-03-08 14:39   ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YgvH/vLnCCuWhvje@bricha3-MOBL.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=k.torp@samsung.com \
    --cc=karlowich@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).