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