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? Why is this code so complicated anyway, looping over "multiple" paths, even though we will never have more than one module search path? -- 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.