You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ben Collins-Sussman <su...@newton.ch.collab.net> on 2001/03/23 23:36:37 UTC

FYI: svn talk

By the way, for people on this list who don't already know:  Greg
Stein and Karl Fogel will be giving a talk on Subversion to the
Silicon Valley Linux Users Group (SVLUG) on Wednesday, April 4th.

A number of us midwesterners will be visiting the valley that week,
and you'll see us cheering in the audience... (me, Jim, Mike, Fitz...)

:)

Re: Libtool error in current CVS.

Posted by Mo DeJong <md...@cygnus.com>.
On Wed, 28 Mar 2001, Greg Stein wrote:

> > make[1]: Entering directory 
> > `/usr/local/project/build/subversion/subversion/client'
> > /bin/sh ../../libtool --mode=link gcc  -pthread -g
> > -Wall   -o svn  main.o  status ...
> > ...
> > gcc: /usr/local/project/build/subversion/neon/src/.libs/.libs/libneon.a: 
> > No such
> >  file or directory
> > gcc: 
> > /usr/local/project/build/subversion/subversion/libsvn_fs/.libs/.libs/libsvn
> > _fs.a: No such file or directory
> > 
> > 
> > 
> > I got rid of the --quiet argument to libtool, it seems
> > that somewhere along the way, libtool adds a second .libs
> > dir to the relative path it is looking up.
> > 
> > ../../neon/src/libneon.la -> /usr/local/project/build/subversion/neon/src/.libs/.libs/libneon.a
> > 
> > This one has me stumped. Anyone have any ideas what might
> > have changed to cause this?
> 
> There was a recent change to libsvn_ra_{dav,local}/Makefile.am to deal with
> cross-linking between shared libs. It's a hack cuz libtool is dumb, but I
> haven't found an alternative yet. Maybe this is causing your problem?
> 
> Cheers,
> -g

It might be. I poked around a bit. It seems that some subdirs work
while others do not (libsvn_ra_dav good, libsvn_subr bad).

In libsvn_subr/Makefile.am, there is a sed that changes
the contents of libsvn_subr.la but only when --disable-shared
is passed to configure (which is how I build).

## copy files into Apache for static-linking
if IS_STATIC_APACHE

APLIB = libsvn_subr

## create a .la file with no shared library names (eg. force static lib 
usage)
$(APLIB).la-a: $(APLIB).la
        sed "/library_names/s/'.*'/''/" $< > $@


This has got to be it, but I am not really sure what
to do about it. I know that libtool is really dumb with
respect to mixing static and shared libs (and it is
even worse under Windows). Would an upgrade to a newer
version of libtool fix this? Autoconf 2.49 is almost
out, perhaps it would be a good time to upgrade
autoconf, automake, and libtool. That is kind of killing
a bug with a tank, but libtool problems have a way
of making you feel powerless. If libtool is not a
perfect example of why the test harness should not
be written with /bin/sh scripts, I don't know what
is.

Mo DeJong
Red Hat Inc

Re: Libtool error in current CVS.

Posted by Greg Stein <gs...@lyra.org>.
On Wed, Mar 28, 2001 at 12:46:05AM -0800, Mo DeJong wrote:
> On Tue, 27 Mar 2001, Greg Stein wrote:
>...
> > Did you try to build libsvn_ra_local before libsvn_fs? Maybe on your system,
> > libsvn_fs and libsvn_ra_local aren't being built (due to missing -ldb), yet
> > you went into a directory and tried to build one?
> 
> 
> Looks like a little build order problem, this patch
> fixes it (for me anyway).
> 
> Index: subversion/Makefile.am
> ===================================================================
> RCS file: /cvs/subversion/subversion/Makefile.am,v
> retrieving revision 1.25
> diff -u -r1.25 Makefile.am
> --- subversion/Makefile.am      2001/03/09 17:53:41     1.25
> +++ subversion/Makefile.am      2001/03/28 08:40:37
> @@ -8,9 +8,9 @@
>            libsvn_wc                  \
>            libsvn_ra                  \
>            libsvn_ra_dav              \
> -          libsvn_ra_local            \
>            libsvn_client              \
>            @FS_BASED_DIRS@            \
> +          libsvn_ra_local            \
>            client                     \
>            @APACHE_MODULES@           \
>            tests

Ah. I remember this.

Ben's fault. He put libsvn_ra_local in there, and I replied to his checkin
saying that was wrong. FS_BASED_DIRS contains libsvn_ra_local *if* the FS is
being built (e.g. -ldb is available). I guess he didn't read my reply, or
simply forgot to change it. I'll do it now... (done)

IOW, libsvn_ra_local should not always be built. It is conditional.

>...
> make[1]: Entering directory 
> `/usr/local/project/build/subversion/subversion/client'
> /bin/sh ../../libtool --mode=link gcc  -pthread -g
> -Wall   -o svn  main.o  status ...
> ...
> gcc: /usr/local/project/build/subversion/neon/src/.libs/.libs/libneon.a: 
> No such
>  file or directory
> gcc: 
> /usr/local/project/build/subversion/subversion/libsvn_fs/.libs/.libs/libsvn
> _fs.a: No such file or directory
> 
> 
> 
> I got rid of the --quiet argument to libtool, it seems
> that somewhere along the way, libtool adds a second .libs
> dir to the relative path it is looking up.
> 
> ../../neon/src/libneon.la -> /usr/local/project/build/subversion/neon/src/.libs/.libs/libneon.a
> 
> This one has me stumped. Anyone have any ideas what might
> have changed to cause this?

There was a recent change to libsvn_ra_{dav,local}/Makefile.am to deal with
cross-linking between shared libs. It's a hack cuz libtool is dumb, but I
haven't found an alternative yet. Maybe this is causing your problem?

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Re: Libtool error in current CVS.

Posted by Mo DeJong <md...@cygnus.com>.
On Tue, 27 Mar 2001, Greg Stein wrote:

> On Tue, Mar 27, 2001 at 10:14:05PM -0800, Mo DeJong wrote:
> > Is anyone else seeing this?
> 
> Nope :-)
> 
> > /bin/sh ../../libtool --silent --mode=link gcc  -pthread   -o 
> > libsvn_ra_local.la -rpath /usr/local/lib  ra_plugin.lo split_url.lo 
> > checkout.lo update.lo -L../../subversion/libsvn_fs/.libs -lsvn_fs 
> > -L../../subversion/libsvn_delta/.libs -lsvn_delta 
> > -L../../subversion/libsvn_subr/.libs -lsvn_subr -lm -lcrypt -lnsl  -ldl 
> > -L/home/mo/project/build/subversion/db/dist -ldb
> > ../../libtool: ../../subversion/libsvn_fs/.libs: No such file or directory
> > libtool: link: cannot determine absolute directory name of 
> > `../../subversion/libsvn_fs/.libs'
> > make[3]: *** [libsvn_ra_local.la] Error 1
> > make[3]: Leaving directory 
> > `/usr/local/project/build/subversion/subversion/libsvn_ra_local'
> > make[2]: *** [all-recursive] Error 1
> 
> Did you try to build libsvn_ra_local before libsvn_fs? Maybe on your system,
> libsvn_fs and libsvn_ra_local aren't being built (due to missing -ldb), yet
> you went into a directory and tried to build one?


Looks like a little build order problem, this patch
fixes it (for me anyway).

Index: subversion/Makefile.am
===================================================================
RCS file: /cvs/subversion/subversion/Makefile.am,v
retrieving revision 1.25
diff -u -r1.25 Makefile.am
--- subversion/Makefile.am      2001/03/09 17:53:41     1.25
+++ subversion/Makefile.am      2001/03/28 08:40:37
@@ -8,9 +8,9 @@
           libsvn_wc                  \
           libsvn_ra                  \
           libsvn_ra_dav              \
-          libsvn_ra_local            \
           libsvn_client              \
           @FS_BASED_DIRS@            \
+          libsvn_ra_local            \
           client                     \
           @APACHE_MODULES@           \
           tests


Now the reall strange part. When I try
to build that, it goes into the client
subdir and spits out and error like:

make[1]: Entering directory 
`/usr/local/project/build/subversion/subversion/client'
/bin/sh ../../libtool --mode=link gcc  -pthread -g
-Wall   -o svn  main.o  status ...
...
gcc: /usr/local/project/build/subversion/neon/src/.libs/.libs/libneon.a: 
No such
 file or directory
gcc: 
/usr/local/project/build/subversion/subversion/libsvn_fs/.libs/.libs/libsvn
_fs.a: No such file or directory



I got rid of the --quiet argument to libtool, it seems
that somewhere along the way, libtool adds a second .libs
dir to the relative path it is looking up.

../../neon/src/libneon.la -> /usr/local/project/build/subversion/neon/src/.libs/.libs/libneon.a

This one has me stumped. Anyone have any ideas what might
have changed to cause this?

Mo DeJong
Red Hat Inc

Re: Libtool error in current CVS.

Posted by Greg Stein <gs...@lyra.org>.
On Tue, Mar 27, 2001 at 10:14:05PM -0800, Mo DeJong wrote:
> Is anyone else seeing this?

Nope :-)

> /bin/sh ../../libtool --silent --mode=link gcc  -pthread   -o 
> libsvn_ra_local.la -rpath /usr/local/lib  ra_plugin.lo split_url.lo 
> checkout.lo update.lo -L../../subversion/libsvn_fs/.libs -lsvn_fs 
> -L../../subversion/libsvn_delta/.libs -lsvn_delta 
> -L../../subversion/libsvn_subr/.libs -lsvn_subr -lm -lcrypt -lnsl  -ldl 
> -L/home/mo/project/build/subversion/db/dist -ldb
> ../../libtool: ../../subversion/libsvn_fs/.libs: No such file or directory
> libtool: link: cannot determine absolute directory name of 
> `../../subversion/libsvn_fs/.libs'
> make[3]: *** [libsvn_ra_local.la] Error 1
> make[3]: Leaving directory 
> `/usr/local/project/build/subversion/subversion/libsvn_ra_local'
> make[2]: *** [all-recursive] Error 1

Did you try to build libsvn_ra_local before libsvn_fs? Maybe on your system,
libsvn_fs and libsvn_ra_local aren't being built (due to missing -ldb), yet
you went into a directory and tried to build one?

The indicator here is the missing .libs subdir of libsvn_fs. That would
imply that libsvn_fs hasn't been built.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Libtool error in current CVS.

Posted by Mo DeJong <md...@cygnus.com>.
Is anyone else seeing this?

/bin/sh ../../libtool --silent --mode=link gcc  -pthread   -o 
libsvn_ra_local.la -rpath /usr/local/lib  ra_plugin.lo split_url.lo 
checkout.lo update.lo -L../../subversion/libsvn_fs/.libs -lsvn_fs 
-L../../subversion/libsvn_delta/.libs -lsvn_delta 
-L../../subversion/libsvn_subr/.libs -lsvn_subr -lm -lcrypt -lnsl  -ldl 
-L/home/mo/project/build/subversion/db/dist -ldb
../../libtool: ../../subversion/libsvn_fs/.libs: No such file or directory
libtool: link: cannot determine absolute directory name of 
`../../subversion/libsvn_fs/.libs'
make[3]: *** [libsvn_ra_local.la] Error 1
make[3]: Leaving directory 
`/usr/local/project/build/subversion/subversion/libsvn_ra_local'
make[2]: *** [all-recursive] Error 1

Mo DeJong
Red Hat Inc