On Mon, Jun 10, 2002 at 01:44:05AM -0700, David Mankin wrote:
>...
> I configured and built svn with the --enable-maintainer-mode and
> --disable-shared.
>...
> However, I think there might also be a bug (or several) in Subversion.
> I compiled with --disable-shared, and yet subversion is still trying to
> load a dynamic library. I'm trying to do an HTTP checkout, and yet it's
> trying to load a dynamic library for RA local. Both of these seem like
> they might be problems.
Not a problem, actually.
The RA layer knows that ra_dav was linked in, and that ra_local is *not*
linked in. Thus, it attempts to load it dynamically since the DSO facilities
are available in APR.
The --disable-shared switch controls whether shared libraries are *built*.
It doesn't control whether SVN will attempt to find RA modules that were not
linked into the app.
> (And even with my patch to APR, I still get a
> warning, about not being able to load libsvn_ra_local.so, every time I
> do anything with the client. Maybe my patch should throw away the error
> instead of printing it?)
Hmm? What is printing that warning? I don't see any code in ra_loader.c that
would do that.
> [A fourth thing that may be an issue: when I modified dso.c and then
> re-ran make from the top-level svn makefile, it didn't re-link the svn
> binary, even though the apr.la (?) library had changed. I had to touch
> clients/cmdline/main.c in order to force make to rebuild svn.]
Hmm. That does seem to be a problem. Could you file an issue about that?
>...
> +/*
> + * Under Darwin, we need to have a linkEdit error handler, or else if
> + * NSAddLibrary() fails, it will exit the whole program. This function prints
> + * the same message that the OS would, but does not exit the program.
> + */
> +#if defined(DSO_USE_DYLD)
> +APR_DECLARE(void) apr_dso_load_linkEdit_errorhander(NSLinkEditErrors errorClass,
> + int errorNumber,
> + const char *filename,
> + const char *errorString)
> +{
> + if (errorString != NULL) {
> + fprintf(stderr, "%s", errorString);
> + } else {
> + fprintf(stderr, "LinkEdit error! errorno = %d\n", errorNumber);
> + }
The APR library is not allowed to use stderr. The only thing you can do is
return errors.
Cheers,
-g
--
Greg Stein, http://www.lyra.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jun 11 07:33:16 2002