DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1
@ 2020-10-19 13:17 Ivan Serdyuk
  2020-10-19 13:34 ` Bruce Richardson
  0 siblings, 1 reply; 5+ messages in thread
From: Ivan Serdyuk @ 2020-10-19 13:17 UTC (permalink / raw)
  To: dev

Hi there.
I tried the following:

export CPPFLAGS=' -stdlib=libc++ ' CXXFLAGS=' -stdlib=libc++ '
> meson build-clang
> cd build-clang
> ninja -j 4
>

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?

Ivan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1
  2020-10-19 13:17 [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1 Ivan Serdyuk
@ 2020-10-19 13:34 ` Bruce Richardson
  2020-10-20 14:44   ` Ivan Serdyuk
  0 siblings, 1 reply; 5+ messages in thread
From: Bruce Richardson @ 2020-10-19 13:34 UTC (permalink / raw)
  To: Ivan Serdyuk; +Cc: dev

On Mon, Oct 19, 2020 at 04:17:36PM +0300, Ivan Serdyuk wrote:
> Hi there.
> I tried the following:
> 
> export CPPFLAGS=' -stdlib=libc++ ' CXXFLAGS=' -stdlib=libc++ '
> > meson build-clang
> > cd build-clang
> > ninja -j 4
> >
> 
Hi Ivan

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.

> 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.

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.

/Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1
  2020-10-19 13:34 ` Bruce Richardson
@ 2020-10-20 14:44   ` Ivan Serdyuk
  2020-10-20 15:49     ` Ivan Serdyuk
  0 siblings, 1 reply; 5+ messages in thread
From: Ivan Serdyuk @ 2020-10-20 14:44 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1
  2020-10-20 14:44   ` Ivan Serdyuk
@ 2020-10-20 15:49     ` Ivan Serdyuk
  2020-10-20 15:59       ` Bruce Richardson
  0 siblings, 1 reply; 5+ messages in thread
From: Ivan Serdyuk @ 2020-10-20 15:49 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

It was compiled - but I can't make it run:

~/dpdk-20.08/build-clang/app$ ./dpdk-pdump
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-proc-info
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-acl
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-bbdev
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-cmdline
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-compress-perf
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-crypto-perf
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-eventdev
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-fib
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-flow-perf
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-pipeline
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-regex
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-test-sad
> Illegal instruction (core dumped)
> ~/dpdk-20.08/build-clang/app$ ./dpdk-testpmd
> Illegal instruction (core dumped)


Ivan


On Tue, Oct 20, 2020 at 5:44 PM Ivan Serdyuk <local.tourist.kiev@gmail.com>
wrote:

>
>
> 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
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1
  2020-10-20 15:49     ` Ivan Serdyuk
@ 2020-10-20 15:59       ` Bruce Richardson
  0 siblings, 0 replies; 5+ messages in thread
From: Bruce Richardson @ 2020-10-20 15:59 UTC (permalink / raw)
  To: Ivan Serdyuk; +Cc: dev

On Tue, Oct 20, 2020 at 06:49:10PM +0300, Ivan Serdyuk wrote:
>    It was compiled - but I can't make it run:
> 
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-pdump
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-proc-info
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-acl
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-bbdev
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-cmdline
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-compress-perf
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-crypto-perf
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-eventdev
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-fib
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-flow-perf
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-pipeline
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-regex
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-test-sad
>      Illegal instruction (core dumped)
>      ~/dpdk-20.08/build-clang/app$ ./dpdk-testpmd
>      Illegal instruction (core dumped)
> 
>    Ivan
> 
>    On Tue, Oct 20, 2020 at 5:44 PM Ivan Serdyuk
>    <[1]local.tourist.kiev@gmail.com> wrote:
> 
>    On Mon, Oct 19, 2020 at 4:34 PM Bruce Richardson
>    <[2]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:(.[3]data.rel.ro+0x1
>      8):
>      > > 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
>      ([4]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

This processor is missing SSE4.2 and so can't run DPDK, since SSE 4.2 is
part of the minimum requirements. [Core 2 Quad is, what, 12 years old now?]

/Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-10-20 15:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-19 13:17 [dpdk-dev] Building without AVX2 support, with Clang 11, on Ubuntu 20.04.1 Ivan Serdyuk
2020-10-19 13:34 ` Bruce Richardson
2020-10-20 14:44   ` Ivan Serdyuk
2020-10-20 15:49     ` Ivan Serdyuk
2020-10-20 15:59       ` Bruce Richardson

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git