On 11/23/2015 12:41 PM, Thomas Monjalon wrote: > Hi Panu, > > 2015-11-23 08:04, Panu Matilainen: >> On 11/20/2015 06:38 PM, David Marchand wrote: >>> It looks like you would skip the symbolic links while you were not before. >>> Intended ? >> >> Intended. We want to accept symlinks in the driver directory, but the >> actual drivers are always regular files. > > No we use symbolic links: > http://dpdk.org/browse/dpdk/commit/mk/rte.lib.mk?id=133b75923 > http://dpdk.org/browse/dpdk/tree/mk/rte.lib.mk#n170
Those symlinks eventually point to the actual drivers which are always regular files (and not for example directories), that is the point. Please apply. > > On the same topic, you've added a check in 9f8eb1d9: > + if (stat(solib->name, &sb) == -1) { > + RTE_LOG(ERR, EAL, "Invalid plugin specified: %s: %s\n", > + solib->name, strerror(errno)); > > It is a regression because we cannot anymore load a plugin from > LD_LIBRARY_PATH without specifying its full path. > It can be tested with scripts/test-null.sh. > How do you suggest to fix it? My first and foremost thought is regret over messing with -d at all, instead of keeping with the original plan of a new -D option for directories. Supporting directories with -d opened up all these annoying little issues that did not exist in the original plan, and lost the ability to disable/override the default plugindir. I suppose the fix is to only use a successful stat to determine if something is a directory and feed everything else to dlopen() which will then fail on its own if file is not existent. I'll send a separate patch for the regression. - Panu - > Thanks >