12/12/2019 12:59, Bruce Richardson: > On Thu, Dec 12, 2019 at 11:44:51AM +0000, Bruce Richardson wrote: > > On Thu, Dec 12, 2019 at 08:57:50AM +0000, Ferruh Yigit wrote: > > > On 12/12/2019 8:27 AM, David Marchand wrote: > > > > Hello Bruce, > > > > > > > > On Wed, Dec 11, 2019 at 4:16 PM Bruce Richardson > > > > <bruce.richard...@intel.com> wrote: > > > >> > > > >> The soname for each stable ABI version should be just the ABI version > > > >> major > > > >> number without the minor number. Unfortunately both major and minor > > > >> were > > > >> used causing version 20.1 to be incompatible with 20.0. > > > >> > > > >> This patch fixes the issue by switching from 2-part to 3-part ABI > > > >> version > > > >> numbers so that we can keep 20.0 as soname and using the final digits > > > >> to > > > >> identify the 20.x releases which are ABI compatible. This requires > > > >> changes > > > >> to both make and meson builds to handle the three-digit version and > > > >> shrink > > > >> it to 2-digit for soname. > > > >> > > > >> Fixes: cba806e07d6f ("build: change ABI versioning to global") > > > >> > > > >> Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> > > > >> Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > > > > > > > > There is an issue with the ethtool example. > > > > > > > > INSTALL-APP server > > > > INSTALL-MAP server.map > > > > cat: /home/dmarchan/dpdk/examples/ethtool/lib/ABI_VERSION: No such > > > > file or directory > > > > CC rte_ethtool.o > > > > LD librte_ethtool.so.0. > > > > INSTALL-LIB librte_ethtool.so.0. > > > > gmake[3]: stat: > > > > /home/dmarchan/builds/i686-native-linux-gcc+shared+debug+default/examples/ethtool/lib/i686-native-linux-gcc/lib/librte_ethtool.so.0.: > > > > Too many levels of symbolic links > > > > == ethtool-app > > > > > > > > > > > > > > It is linking against itself, in 'examples/ethtool/lib/build/lib': > > > librte_ethtool.so -> librte_ethtool.so.0. > > > librte_ethtool.so.0. -> librte_ethtool.so.0. > > > > Yes. The issue is that this patch doesn't correct account for external libs > > using their own version numbers. The trivial fix for this, which I'll add > > in v3 is to make two small changes: > > > > 1. Use ?= rather than := when assigning to LIBABIVER in rte.lib.mk > > 2. Change the LIBABIVER in ethtool/lib to "1.0" rather than "1", since the > > code assumes that we have more than a single digit in our version numbers. > > > > Question: Do we need to officially support external libs using our build > > system? > > > > * If no (because we assume nobody uses it or otherwise), then we use the two > > one-line fixes above and job done. > > * If yes, then the makefile logic needs further work to support the case of > > having an arbitrary version number. Also, we need to look into the whole > > experimental detection logic, as that would probably not apply for external > > libs. > > > > /Bruce > > > Patch v3 now sent, on the assumption that the answer is "no", or the answer > is "yes, but we can fix that later" :-)
Yes, that's reasonnable.