On Mon, 2013-04-22 at 12:41 +0300, Tanu Kaskinen wrote: > On Sat, 2013-04-20 at 10:14 +0530, Arun Raghavan wrote: > > It appears that, libltdl will find the .la file in the builddir and > > figure out where the real .so is. > > > > This also requires .ifexists to be fixed up to correspondingly search in > > <dlsearchpath>/.libs. > > --- > > src/daemon/daemon-conf.c | 2 +- > > src/pulsecore/cli-command.c | 12 +++++++++++- > > 2 files changed, 12 insertions(+), 2 deletions(-) > > > > diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c > > index 2c43cf9..f1e5476 100644 > > --- a/src/daemon/daemon-conf.c > > +++ b/src/daemon/daemon-conf.c > > @@ -156,7 +156,7 @@ pa_daemon_conf *pa_daemon_conf_new(void) { > > #else > > if (pa_run_from_build_tree()) { > > pa_log_notice("Detected that we are run from the build tree, fixing search path."); > > - c->dl_search_path = pa_xstrdup(PA_BUILDDIR "/.libs/"); > > + c->dl_search_path = pa_xstrdup(PA_BUILDDIR); > > } else > > c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH); > > #endif > > diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c > > index 1ec8054..f5489d6 100644 > > --- a/src/pulsecore/cli-command.c > > +++ b/src/pulsecore/cli-command.c > > @@ -2062,11 +2062,21 @@ int pa_cli_command_execute_line_stateful(pa_core *c, const char *s, pa_strbuf *b > > char *pathname; > > > > pathname = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", p, filename); > > - pa_xfree(p); > > > > *ifstate = access(pathname, F_OK) == 0 ? IFSTATE_TRUE : IFSTATE_FALSE; > > pa_log_debug("Checking for existence of '%s': %s", pathname, *ifstate == IFSTATE_TRUE ? "success" : "failure"); > > > > + if (PA_UNLIKELY(pa_run_from_build_tree())) { > > + /* If run from the build tree, search in <path>/.libs as well */ > > + char *ltpathname = pa_sprintf_malloc("%s" PA_PATH_SEP ".libs" PA_PATH_SEP "%s", p, filename); > > + > > + *ifstate = access(ltpathname, F_OK) == 0 ? IFSTATE_TRUE : IFSTATE_FALSE; > > + pa_log_debug("Checking for existence of '%s': %s", ltpathname, *ifstate == IFSTATE_TRUE ? "success" : "failure"); > > + > > + pa_xfree(ltpathname); > > + } > > Why do we search in two places if we're running from build tree? Answering myself: if the --dl-search-path command line option is being used, appending .libs doesn't necessarily work. This code would need to know whether --dl-search-path was given or not in order to avoid trying two locations. Arun, you have my ack for this patch. Peter's concern about relying on libtool implementation details is valid, but I think it's acceptable in this case, because it's not a disaster if this code suddenly stops working some day. -- Tanu --------------------------------------------------------------------- Intel Finland Oy Registered Address: PL 281, 00181 Helsinki Business Identity Code: 0357606 - 4 Domiciled in Helsinki This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.