DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
@ 2017-12-14 14:24 Olivier Matz
  2017-12-15 10:19 ` Thomas Monjalon
  0 siblings, 1 reply; 8+ messages in thread
From: Olivier Matz @ 2017-12-14 14:24 UTC (permalink / raw)
  To: dev, Thomas Monjalon; +Cc: Samuel Gauthier, stable

From: Samuel Gauthier <samuel.gauthier@6wind.com>

The 'install-sdk' target creates an invalid symlink in the install
directory:

  # make install-sdk DESTDIR=/tmp/toto V=1
  [...]
  ln -snf $(/root/dpdk.org/buildtools/relpath.sh /tmp/toto/usr/local/lib \
            /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc/) \
       /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc/lib
  [...]
  # ls -l /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc
  drwxr-xr-x 2 root root 4096 Dec 11 11:49 app
  lrwxrwxrwx 1 root root   21 Dec 11 11:49 include -> ../../../include/dpdk
  lrwxrwxrwx 1 root root   12 Dec 11 11:49 lib -> ../../../lib  # BAD LINK

This happens because the directory is not created. Moreover, it makes
sense for install-sdk to install the libs, which could be necessary to
build something against dpdk. After the patch, the link is correct and
the *.a libs are properly installed:

  # ls -l /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc
  drwxr-xr-x 2 root root 4096 Dec 11 11:53 app
  lrwxrwxrwx 1 root root   21 Dec 11 11:53 include -> ../../../include/dpdk
  lrwxrwxrwx 1 root root   12 Dec 11 11:53 lib -> ../../../lib
  # ls -l /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc/lib/
  -rw-r--r-- 1 root root   1378 Dec  8 14:08 libdpdk.a
  -rw-r--r-- 1 root root 123380 Dec  8 14:02 librte_acl.a
  -rw-r--r-- 1 root root   3406 Dec  8 14:02 librte_bitratestats.a
  [...]

Fixes: 6efca1e9f873 ("mk: split install rule")
Cc: stable@dpdk.org

Signed-off-by: Samuel Gauthier <samuel.gauthier@6wind.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
 mk/rte.sdkinstall.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
index 4e97feff9..338fb4971 100644
--- a/mk/rte.sdkinstall.mk
+++ b/mk/rte.sdkinstall.mk
@@ -157,6 +157,8 @@ install-sdk:
 	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
 	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
 	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
+	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
+	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
 	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
 
 install-doc:
-- 
2.11.0

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2017-12-14 14:24 [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk Olivier Matz
@ 2017-12-15 10:19 ` Thomas Monjalon
  2017-12-15 10:25   ` Olivier MATZ
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2017-12-15 10:19 UTC (permalink / raw)
  To: Olivier Matz; +Cc: dev, Samuel Gauthier

14/12/2017 15:24, Olivier Matz:
> @@ -157,6 +157,8 @@ install-sdk:
>  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
>  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
>  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
>  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)

The libs are already installed with "make install-runtime".
Either we add a dependency between install-sdk and install-runtime,
or we clearly document it.

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2017-12-15 10:19 ` Thomas Monjalon
@ 2017-12-15 10:25   ` Olivier MATZ
  2017-12-15 10:32     ` Thomas Monjalon
  0 siblings, 1 reply; 8+ messages in thread
From: Olivier MATZ @ 2017-12-15 10:25 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Samuel Gauthier

On Fri, Dec 15, 2017 at 11:19:57AM +0100, Thomas Monjalon wrote:
> 14/12/2017 15:24, Olivier Matz:
> > @@ -157,6 +157,8 @@ install-sdk:
> >  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
> >  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
> >  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> > +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> > +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
> >  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
> 
> The libs are already installed with "make install-runtime".
> Either we add a dependency between install-sdk and install-runtime,
> or we clearly document it.

To me, libs are needed when installing the sdk (to compile against them)
and when installing the runtime (to use them).

Is it a problem to have it in both targets?

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2017-12-15 10:25   ` Olivier MATZ
@ 2017-12-15 10:32     ` Thomas Monjalon
  2017-12-15 10:45       ` Olivier MATZ
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2017-12-15 10:32 UTC (permalink / raw)
  To: Olivier MATZ; +Cc: dev, Samuel Gauthier

15/12/2017 11:25, Olivier MATZ:
> On Fri, Dec 15, 2017 at 11:19:57AM +0100, Thomas Monjalon wrote:
> > 14/12/2017 15:24, Olivier Matz:
> > > @@ -157,6 +157,8 @@ install-sdk:
> > >  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
> > >  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
> > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> > > +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> > > +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
> > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
> > 
> > The libs are already installed with "make install-runtime".
> > Either we add a dependency between install-sdk and install-runtime,
> > or we clearly document it.
> 
> To me, libs are needed when installing the sdk (to compile against them)
> and when installing the runtime (to use them).
> 
> Is it a problem to have it in both targets?

Yes it is a problem because the general use is to call every targets,
so the libs will be installed twice. Look at the global "install" target.

Do you want to be able to install the SDK without the runtime?

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2017-12-15 10:32     ` Thomas Monjalon
@ 2017-12-15 10:45       ` Olivier MATZ
  2017-12-15 11:00         ` Thomas Monjalon
  0 siblings, 1 reply; 8+ messages in thread
From: Olivier MATZ @ 2017-12-15 10:45 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Samuel Gauthier

On Fri, Dec 15, 2017 at 11:32:12AM +0100, Thomas Monjalon wrote:
> 15/12/2017 11:25, Olivier MATZ:
> > On Fri, Dec 15, 2017 at 11:19:57AM +0100, Thomas Monjalon wrote:
> > > 14/12/2017 15:24, Olivier Matz:
> > > > @@ -157,6 +157,8 @@ install-sdk:
> > > >  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
> > > >  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
> > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> > > > +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> > > > +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
> > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
> > > 
> > > The libs are already installed with "make install-runtime".
> > > Either we add a dependency between install-sdk and install-runtime,
> > > or we clearly document it.
> > 
> > To me, libs are needed when installing the sdk (to compile against them)
> > and when installing the runtime (to use them).
> > 
> > Is it a problem to have it in both targets?
> 
> Yes it is a problem because the general use is to call every targets,
> so the libs will be installed twice. Look at the global "install" target.
> 
> Do you want to be able to install the SDK without the runtime?

Hmm, you're right, installing the runtime instead of the sdk may be a
solution in our case. We don't need the bin, man, ... but it's probably
not an issue to have them anyway.

So, to summarize:
  install-runtime is the equivalent of the binary package
  install-sdk is the equivalent of the -devel package

And install-sdk depends on install-runtime, right?

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2017-12-15 10:45       ` Olivier MATZ
@ 2017-12-15 11:00         ` Thomas Monjalon
  2018-01-23 16:30           ` Olivier Matz
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2017-12-15 11:00 UTC (permalink / raw)
  To: Olivier MATZ; +Cc: dev, Samuel Gauthier

15/12/2017 11:45, Olivier MATZ:
> On Fri, Dec 15, 2017 at 11:32:12AM +0100, Thomas Monjalon wrote:
> > 15/12/2017 11:25, Olivier MATZ:
> > > On Fri, Dec 15, 2017 at 11:19:57AM +0100, Thomas Monjalon wrote:
> > > > 14/12/2017 15:24, Olivier Matz:
> > > > > @@ -157,6 +157,8 @@ install-sdk:
> > > > >  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
> > > > >  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
> > > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> > > > > +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> > > > > +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
> > > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
> > > > 
> > > > The libs are already installed with "make install-runtime".
> > > > Either we add a dependency between install-sdk and install-runtime,
> > > > or we clearly document it.
> > > 
> > > To me, libs are needed when installing the sdk (to compile against them)
> > > and when installing the runtime (to use them).
> > > 
> > > Is it a problem to have it in both targets?
> > 
> > Yes it is a problem because the general use is to call every targets,
> > so the libs will be installed twice. Look at the global "install" target.
> > 
> > Do you want to be able to install the SDK without the runtime?
> 
> Hmm, you're right, installing the runtime instead of the sdk may be a
> solution in our case. We don't need the bin, man, ... but it's probably
> not an issue to have them anyway.
> 
> So, to summarize:
>   install-runtime is the equivalent of the binary package
>   install-sdk is the equivalent of the -devel package

Yes

> And install-sdk depends on install-runtime, right?

Depends logically, yes. But no dependence in the Makefile.

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2017-12-15 11:00         ` Thomas Monjalon
@ 2018-01-23 16:30           ` Olivier Matz
  2018-06-25 14:46             ` Olivier Matz
  0 siblings, 1 reply; 8+ messages in thread
From: Olivier Matz @ 2018-01-23 16:30 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Samuel Gauthier

Hi Thomas,

On Fri, Dec 15, 2017 at 12:00:01PM +0100, Thomas Monjalon wrote:
> 15/12/2017 11:45, Olivier MATZ:
> > On Fri, Dec 15, 2017 at 11:32:12AM +0100, Thomas Monjalon wrote:
> > > 15/12/2017 11:25, Olivier MATZ:
> > > > On Fri, Dec 15, 2017 at 11:19:57AM +0100, Thomas Monjalon wrote:
> > > > > 14/12/2017 15:24, Olivier Matz:
> > > > > > @@ -157,6 +157,8 @@ install-sdk:
> > > > > >  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
> > > > > >  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
> > > > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> > > > > > +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> > > > > > +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
> > > > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
> > > > > 
> > > > > The libs are already installed with "make install-runtime".
> > > > > Either we add a dependency between install-sdk and install-runtime,
> > > > > or we clearly document it.
> > > > 
> > > > To me, libs are needed when installing the sdk (to compile against them)
> > > > and when installing the runtime (to use them).
> > > > 
> > > > Is it a problem to have it in both targets?
> > > 
> > > Yes it is a problem because the general use is to call every targets,
> > > so the libs will be installed twice. Look at the global "install" target.
> > > 
> > > Do you want to be able to install the SDK without the runtime?
> > 
> > Hmm, you're right, installing the runtime instead of the sdk may be a
> > solution in our case. We don't need the bin, man, ... but it's probably
> > not an issue to have them anyway.
> > 
> > So, to summarize:
> >   install-runtime is the equivalent of the binary package
> >   install-sdk is the equivalent of the -devel package
> 
> Yes
> 
> > And install-sdk depends on install-runtime, right?
> 
> Depends logically, yes. But no dependence in the Makefile.

Coming back on this topic, actually I think an issue remains with "make
install-sdk" which generates a bad symlink.

  # ls -l /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc
  drwxr-xr-x 2 root root 4096 Dec 11 11:49 app
  lrwxrwxrwx 1 root root   21 Dec 11 11:49 include -> ../../../include/dpdk
  lrwxrwxrwx 1 root root   12 Dec 11 11:49 lib -> ../../../lib  # BAD LINK

Would it make sense to remove the creation of the symlink? Something
like this:

  --- a/mk/rte.sdkinstall.mk
  +++ b/mk/rte.sdkinstall.mk
  @@ -157,7 +157,6 @@ install-sdk:
          $(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
          $(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
          $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
  -       $(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
  
   install-doc:
   ifneq ($(wildcard $O/doc/html),)


Thanks,
Olivier

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

* Re: [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk
  2018-01-23 16:30           ` Olivier Matz
@ 2018-06-25 14:46             ` Olivier Matz
  0 siblings, 0 replies; 8+ messages in thread
From: Olivier Matz @ 2018-06-25 14:46 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

On Tue, Jan 23, 2018 at 05:30:57PM +0100, Olivier Matz wrote:
> Hi Thomas,
> 
> On Fri, Dec 15, 2017 at 12:00:01PM +0100, Thomas Monjalon wrote:
> > 15/12/2017 11:45, Olivier MATZ:
> > > On Fri, Dec 15, 2017 at 11:32:12AM +0100, Thomas Monjalon wrote:
> > > > 15/12/2017 11:25, Olivier MATZ:
> > > > > On Fri, Dec 15, 2017 at 11:19:57AM +0100, Thomas Monjalon wrote:
> > > > > > 14/12/2017 15:24, Olivier Matz:
> > > > > > > @@ -157,6 +157,8 @@ install-sdk:
> > > > > > >  	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
> > > > > > >  	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
> > > > > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
> > > > > > > +	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(libdir))
> > > > > > > +	$(Q)cp -a               $O/lib/*                 $(DESTDIR)$(libdir)
> > > > > > >  	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
> > > > > > 
> > > > > > The libs are already installed with "make install-runtime".
> > > > > > Either we add a dependency between install-sdk and install-runtime,
> > > > > > or we clearly document it.
> > > > > 
> > > > > To me, libs are needed when installing the sdk (to compile against them)
> > > > > and when installing the runtime (to use them).
> > > > > 
> > > > > Is it a problem to have it in both targets?
> > > > 
> > > > Yes it is a problem because the general use is to call every targets,
> > > > so the libs will be installed twice. Look at the global "install" target.
> > > > 
> > > > Do you want to be able to install the SDK without the runtime?
> > > 
> > > Hmm, you're right, installing the runtime instead of the sdk may be a
> > > solution in our case. We don't need the bin, man, ... but it's probably
> > > not an issue to have them anyway.
> > > 
> > > So, to summarize:
> > >   install-runtime is the equivalent of the binary package
> > >   install-sdk is the equivalent of the -devel package
> > 
> > Yes
> > 
> > > And install-sdk depends on install-runtime, right?
> > 
> > Depends logically, yes. But no dependence in the Makefile.
> 
> Coming back on this topic, actually I think an issue remains with "make
> install-sdk" which generates a bad symlink.
> 
>   # ls -l /tmp/toto/usr/local/share/dpdk/x86_64-native-linuxapp-gcc
>   drwxr-xr-x 2 root root 4096 Dec 11 11:49 app
>   lrwxrwxrwx 1 root root   21 Dec 11 11:49 include -> ../../../include/dpdk
>   lrwxrwxrwx 1 root root   12 Dec 11 11:49 lib -> ../../../lib  # BAD LINK
> 
> Would it make sense to remove the creation of the symlink? Something
> like this:
> 
>   --- a/mk/rte.sdkinstall.mk
>   +++ b/mk/rte.sdkinstall.mk
>   @@ -157,7 +157,6 @@ install-sdk:
>           $(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
>           $(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
>           $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
>   -       $(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
>   
>    install-doc:
>    ifneq ($(wildcard $O/doc/html),)

It looks we forgot this thread for a long time. Any opinon about it?

Thanks
Olivier

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

end of thread, other threads:[~2018-06-25 14:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-14 14:24 [dpdk-dev] [PATCH] mk: fix libs installation when installing sdk Olivier Matz
2017-12-15 10:19 ` Thomas Monjalon
2017-12-15 10:25   ` Olivier MATZ
2017-12-15 10:32     ` Thomas Monjalon
2017-12-15 10:45       ` Olivier MATZ
2017-12-15 11:00         ` Thomas Monjalon
2018-01-23 16:30           ` Olivier Matz
2018-06-25 14:46             ` Olivier Matz

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