DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ivan Serdyuk <local.tourist.kiev@gmail.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1
Date: Tue, 20 Oct 2020 17:44:32 +0300	[thread overview]
Message-ID: <CANFCsz8NQ3fUUB=52Eg=WGs8BrKL7JJxhh4+QtijKrKQCR0hrA@mail.gmail.com> (raw)
In-Reply-To: <20201019133426.GB663@bricha3-MOBL.ger.corp.intel.com>

On Mon, Oct 19, 2020 at 4:34 PM Bruce Richardson <bruce.richardson@intel.com>
wrote:

> On Mon, Oct 19, 2020 at 04:17:36PM +0300, Ivan Serdyuk wrote:
> Hi Ivan
>

Hello, Bruce.


> Why are you exporting these CPP and CXX flags? The CXX flags will have no
> effect on the DPDK build as it does not use c++ code.
>

Probably my mistake.

>
> > and got such issues:
> >
> >
> > > [213/2379] Compiling C object 'lib/76b5a35@@rte_bitratestats@sta
> > > /librte_bitratestats_rte_bitrate.c.o'.
> > > clang-11: warning: argument unused during compilation: '-stdlib=libc++'
> > > [-Wunused-command-line-argument]
> > > [219/2379] Compiling C object 'lib/76b5a35@@rte_cfgfile@sta
> > > /librte_cfgfile_rte_cfgfile.c.o'.
> > > clang-11: warning: argument unused during compilation: '-stdlib=libc++'
> > > [-Wunused-command-line-argument]
> > > [222/2379] Linking target lib/librte_acl.so.20.0.3.
> > > FAILED: lib/librte_acl.so.20.0.3
> > > clang  -o lib/librte_acl.so.20.0.3 'lib/76b5a35@@rte_acl@sta
> /librte_acl_acl_bld.c.o'
> > > 'lib/76b5a35@@rte_acl@sta/librte_acl_acl_gen.c.o' 'lib/76b5a35@
> > > @rte_acl@sta/librte_acl_acl_run_scalar.c.o' 'lib/76b5a35@@rte_acl@sta
> /librte_acl_rte_acl.c.o'
> > > 'lib/76b5a35@@rte_acl@sta/librte_acl_tb_mem.c.o' 'lib/76b5a35@
> @rte_acl@sta/librte_acl_acl_run_sse.c.o'
> > > -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC
> -Wl,--start-group
> > > -Wl,-soname,librte_acl.so.20.0 -Wl,--no-as-needed -pthread -lm -ldl
> > > lib/librte_eal.so.20.0.3 lib/librte_kvargs.so.20.0.3
> > > lib/librte_telemetry.so.20.0.3 -Wl,--end-group
> > >
> -Wl,--version-script=/home/oceanfish81/dpdk-20.08/lib/librte_acl/rte_acl_version.map
> > > '-Wl,-rpath,$ORIGIN/'
> > > -Wl,-rpath-link,/home/oceanfish81/dpdk-20.08/build-clang/lib
> > > /usr/bin/ld: lib/76b5a35@@rte_acl@sta/librte_acl_rte_acl.c.o:(.
> data.rel.ro+0x18):
> > > undefined reference to `rte_acl_classify_avx2'
> > > clang-11: error: linker command failed with exit code 1 (use -v to see
> > > invocation)
> > > [225/2379] Generating bbdev.sym_chk with a meson_exe.py custom command.
> > > ninja: build stopped: subcommand failed.
> >
> >
> > I am using
> >
> > > $ clang --version
> > > clang version 11.0.0 (https://github.com/llvm/llvm-project.git
> > > 0160ad802e899c2922bc9b29564080c22eb0908c)
> > > Target: x86_64-unknown-linux-gnu
> >
> >
> > I am working under Virtualbox, currently. My host CPU doesn't have any
> AVX
> > support - and there is no guest emulation support for them. Could I
> bypass
> > this somehow, while building librte, as a dependency?
> >
>
> I'm not sure exactly what the problem is here, because DPDK should build
> fine on any system that has SSE4.2 support - no AVX2 support is required.
> To test, I've done a build of DPDK on an old Core i7 machine with AVX, but
> not AVX2, and it built fine with clang 8 (this was using FreeBSD 12),
> including the ACL library.
>

Here is what I have here:

$ cat /proc/cpuinfo
> processor : 0
> vendor_id : GenuineIntel
> cpu family : 6
> model : 23
> model name : Intel(R) Core(TM)2 Quad CPU    Q9400  @ 2.66GHz
> stepping : 10
> microcode : 0x60b
> cpu MHz : 2666.620
> cache size : 3072 KB
> physical id : 0
> siblings : 2
> core id : 0
> cpu cores : 2
> apicid : 0
> initial apicid : 0
> fpu : yes
> fpu_exception : yes
> cpuid level : 13
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
> pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl
> cpuid tsc_known_freq pni ssse3 sse4_1 x2apic hypervisor lahf_lm pti
> bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
> swapgs itlb_multihit
> bogomips : 5333.24
> clflush size : 64
> cache_alignment : 64
> address sizes : 36 bits physical, 48 bits virtual
> power management:
> processor : 1
> vendor_id : GenuineIntel
> cpu family : 6
> model : 23
> model name : Intel(R) Core(TM)2 Quad CPU    Q9400  @ 2.66GHz
> stepping : 10
> microcode : 0x60b
> cpu MHz : 2666.620
> cache size : 3072 KB
> physical id : 0
> siblings : 2
> core id : 1
> cpu cores : 2
> apicid : 1
> initial apicid : 1
> fpu : yes
> fpu_exception : yes
> cpuid level : 13
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
> pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl
> cpuid tsc_known_freq pni ssse3 sse4_1 x2apic hypervisor lahf_lm pti
> bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
> swapgs itlb_multihit
> bogomips : 5333.24
> clflush size : 64
> cache_alignment : 64
> address sizes : 36 bits physical, 48 bits virtual
> power management:





>
> Can you try deleting your build folder and configure it again without
> overriding the environmental vars? If it still fails, please paste the
> errors here, and also try configuring the build with "-Dmachine=default" to
> turn off detecting the present instruction sets and assume an SSE4
> baseline.
>

I just did as you prosed.
Here is
<https://gist.github.com/advancedwebdeveloper/437c2d81316f830f37e3381933f95ab6>
my output.
Something is missing, btw.

I am curious why you haven't tried to use http://compiler-rt.llvm.org/, if
there is a reason, instead of GCC's libraries.
I would ask the similar question against
https://llvm.org/docs/Proposals/LLVMLibC.html
Hence https://llvm.org/docs/Proposals/LLVMLibC.html
.

I am compiling with Ninja, currently - so I shall report whether everything
was compiled.
Ivan

  reply	other threads:[~2020-10-20 14:44 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-19 13:17 Ivan Serdyuk
2020-10-19 13:34 ` Bruce Richardson
2020-10-20 14:44   ` Ivan Serdyuk [this message]
2020-10-20 15:49     ` Ivan Serdyuk
2020-10-20 15:59       ` Bruce Richardson

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='CANFCsz8NQ3fUUB=52Eg=WGs8BrKL7JJxhh4+QtijKrKQCR0hrA@mail.gmail.com' \
    --to=local.tourist.kiev@gmail.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /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).