dpdk-22.07
Hi All, My name is Michaele and I work in Radware Ltd . Currently we use 17.11.3 version of dpdk in our product. Now we want to evaluate 22.07 version of dpdk. We want to build statically linkage dpdk-test application and run it on our device. We use 7.5 version of gcc. By default, dpdk-test uses shared library, and we don't find how to configure meson for build these test application static. We will be very applicate for any help with issue. [ulp-ng]# ldd dpdk-test ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.16' not found (required by ./dpdk-test) ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by ./dpdk-test) ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found (required by ./dpdk-test) ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by ./dpdk-test) linux-vdso.so.1 => (0x77ffd000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x77cfd000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x77af9000) libnuma.so.1 => /usr/lib/libnuma.so.1 (0x778ed000) libpcap.so.1 => /usr/lib/libpcap.so.1 (0x776ac000) libatomic.so.1 => /usr/lib/libatomic.so.1 (0x774a4000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x77286000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x76ec9000) /lib64/ld-linux-x86-64.so.2 (0x4000) [ulp-ng]# Regards, Michael
RE: dpdk-22.07
Thanks a lot for your answer. We need fully statically application, because we want to run it on device with older kernel, than building one. Regards, Michael -Original Message- From: Bruce Richardson Sent: Wednesday, August 24, 2022 11:07 AM To: Michael Lekar Cc: dev@dpdk.org Subject: Re: dpdk-22.07 On Mon, Aug 22, 2022 at 03:02:38PM +, Michael Lekar wrote: >Hi All, > > >My name is Michaele and I work in Radware Ltd . Currently we use >17.11.3 version of dpdk in our product. Now we want to evaluate 22.07 >version of dpdk. We want to build statically linkage dpdk-test >application and run it on our device. We use 7.5 version of gcc. By >default, dpdk-test uses shared library, and we don’t find how to >configure meson for build these test application static. We will be >very applicate for any help with issue. > > > >[ulp-ng]# ldd dpdk-test > >./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.16' not >found (required by ./dpdk-test) > >./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not >found (required by ./dpdk-test) > >./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.27' not >found (required by ./dpdk-test) > >./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not >found (required by ./dpdk-test) > >linux-vdso.so.1 => (0x77ffd000) > >libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 >(0x77cfd000) > >libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 >(0x77af9000) > >libnuma.so.1 => /usr/lib/libnuma.so.1 (0x778ed000) > >libpcap.so.1 => /usr/lib/libpcap.so.1 (0x776ac000) > >libatomic.so.1 => /usr/lib/libatomic.so.1 > (0x774a4000) > >libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 >(0x77286000) > >libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 >(0x76ec9000) > >/lib64/ld-linux-x86-64.so.2 (0x4000) > >[ulp-ng]# > This is not something we have ever looked to do with DPDK builds. Normally, we consider static builds to be builds where we link in all the DPDK libraries statically, but don't consider OS-libs for static linking. Is there a particular reason why you need a fully-static version of the code - can you compile and run on the same system, or build on a system with the same OS version as you intend running the code on? /Bruce
RE: dpdk-22.07
I tried to change the meson configuration, by adding c_args=-fno-builtin and changing default_ldflags to "-static" instead of "--export-dynamic " in app/meson.build. But in the case I got LD error about missed lgcc_s library. Really I have only shared libgcc_s on my build machine. I am not familiar witch meson and it's configuration, so I suppose that I do something wrong. Regards, Michael -Original Message- From: Bruce Richardson Sent: Wednesday, August 24, 2022 11:45 AM To: Michael Lekar Cc: dev@dpdk.org Subject: Re: dpdk-22.07 On Wed, Aug 24, 2022 at 08:32:34AM +, Michael Lekar wrote: > Thanks a lot for your answer. We need fully statically application, because > we want to run it on device with older kernel, than building one. > It's probably more the libc version that would be an issue rather than the kernel itself. This should be possible to do, but may need some changes to our build system. Some suggestions (all untested): * You can use the meson "c_link_args" option to set additional linking flags, so perhaps try that to get static versions of some libraries linked in * If that doesn't work, if you remove the .so version of the libs (other than libc) that DPDK is linking against and only have the .a file available, I would expect DPDK build to use those .a files instead, which should give a binary only requiring a dynamic libc version. * the c_link_args may then allow you to statically link in your libc too, if you can find the right parameters. /Bruce
RE: dpdk-22.07
Hello Stephen, We see the same issue with stable 21.11 version of dpdk. Regards, Michael From: Stephen Hemminger Sent: Wednesday, August 24, 2022 5:28 PM To: Michael Lekar Cc: dev Subject: Re: dpdk-22.07 Please choose a stable version 22.11 soon, or 21.11. bugs in 22.07 will not be fixed On Tue, Aug 23, 2022, 11:38 PM Michael Lekar mailto:michae...@radware.com>> wrote: Hi All, My name is Michaele and I work in Radware Ltd . Currently we use 17.11.3 version of dpdk in our product. Now we want to evaluate 22.07 version of dpdk. We want to build statically linkage dpdk-test application and run it on our device. We use 7.5 version of gcc. By default, dpdk-test uses shared library, and we don’t find how to configure meson for build these test application static. We will be very applicate for any help with issue. [ulp-ng]# ldd dpdk-test ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.16' not found (required by ./dpdk-test) ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by ./dpdk-test) ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found (required by ./dpdk-test) ./dpdk-test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by ./dpdk-test) linux-vdso.so.1 => (0x77ffd000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x77cfd000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x77af9000) libnuma.so.1 => /usr/lib/libnuma.so.1 (0x778ed000) libpcap.so.1 => /usr/lib/libpcap.so.1 (0x776ac000) libatomic.so.1 => /usr/lib/libatomic.so.1 (0x774a4000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x77286000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x76ec9000) /lib64/ld-linux-x86-64.so.2 (0x4000) [ulp-ng]# Regards, Michael