You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Philip Martin <ph...@codematters.co.uk> on 2009/03/02 18:26:11 UTC

Re: svn commit: r36222 - trunk

Justin Erenkrantz <je...@apache.org> writes:

> Author: jerenkrantz
> Date: Sun Mar  1 10:58:40 2009
> New Revision: 36222
>
> Log:
> More 'fun' with GNU libtool: allow specifying an alternative path to libtool
> and add back in --enable-{shared,static} flags.

This does restore most of the behaviour, thanks!  There are a few problems.

> --- trunk/configure.ac Sun Mar 1 09:53:10 2009 (r36221)
> +++ trunk/configure.ac	Sun Mar  1 10:58:40 2009	(r36222)

>  dnl Check for libtool -- we'll definitely need it for all our shared libs!
> -echo "using APR's libtool"
> -sh_libtool="`$apr_config --apr-libtool`"
> +AC_ARG_WITH(custom-libtool,
> +AS_HELP_STRING([--with-custom-libtool=PATH],
> +               [Specify the command to run libtool]),
> +               [ AC_MSG_NOTICE([using $withval as libtool])
> +                 sh_libtool="$withval" ],
> +               [ AC_MSG_NOTICE([using APR's libtool])
> +                 sh_libtool="`$apr_config --apr-libtool`" ])
>  LIBTOOL="$sh_libtool"
>  SVN_LIBTOOL="$sh_libtool"
>  AC_SUBST(SVN_LIBTOOL)

In the past this was:

   SVN_LIBTOOL="\$(SHELL) $sh_libtool"

and it seems that on my box I need to use

   --with-custom-libtool='/bin/bash /usr/bin/libtool'

because /usr/bin/libtool starts #!/bin/sh which on my box is dash and
that doesn't support the += construct.  Can we put the $SHELL back in?


Another problem is I now get lots of warning like:

   libtool: link: warning: `/usr/lib//libsqlite3.la' seems to be moved

Note the double slash.  This problem propogates into the final
Subversion .la files so in libsvn_client-1.la, for example, the
dependency_libs line contains /usr/lib//libsqlite3.la with a double
slash whereas in the past it was a single slash.  I guess this may
introduce link warnings for people using the Subversion libraries.  If
I configure to use APR's libtool the warnings change to things like:

   libtool: link: warning: `/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib//libsqlite3.la' seems to be moved

The old system didn't produce these warnings.


Finally if I configure with --disable-static and I don't use
--with-custom-libtool then the build fails.  It seems to compile and
link both shared and non-shared libraries, but linking executables
fails with:

   cd subversion/svn && /usr/share/apr-1.0/build/libtool --tag=CC --silent --mode=link gcc -shared  -g -DAPR_POOL_DEBUG -std=c89 -Wpointer-arith -Wdeclaration-after-statement -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wwrite-strings -Wbad-function-cast -pthread   -DSVN_DEBUG -DAP_DEBUG   -rpath /usr/local/subversion/lib -o svn  add-cmd.o blame-cmd.o cat-cmd.o changelist-cmd.o checkout-cmd.o cleanup-cmd.o commit-cmd.o conflict-callbacks.o copy-cmd.o delete-cmd.o diff-cmd.o export-cmd.o help-cmd.o import-cmd.o info-cmd.o list-cmd.o lock-cmd.o log-cmd.o main.o merge-cmd.o mergeinfo-cmd.o mkdir-cmd.o move-cmd.o notify.o propdel-cmd.o propedit-cmd.o propget-cmd.o proplist-cmd.o props.o propset-cmd.o resolve-cmd.o resolved-cmd.o revert-cmd.o status-cmd.o status.o switch-cmd.o tree-conflicts.o unlock-cmd.o update-cmd.o util.o ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /usr/lib/libaprutil-1.la  /usr/lib/libapr-1.la -luuid -lrt -lcrypt  -lpthread -ldl -lneon 
   /usr/bin/ld: add-cmd.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
add-cmd.o: could not read symbols: Bad value
   collect2: ld returned 1 exit status

Is that supposed to work?  If not can we make --enable-{shared,static}
depend on --with-custom-libtool?

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1257581


Re: svn commit: r36222 - trunk

Posted by Philip Martin <ph...@codematters.co.uk>.
Greg Stein <gs...@gmail.com> writes:

>> Another problem is I now get lots of warning like:
>>
>>   libtool: link: warning: `/usr/lib//libsqlite3.la' seems to be moved

>> The old system didn't produce these warnings.
>
> Actually... it does/did. I've been getting these for a couple months
> now. I haven't switched over to this new libtool stuff (last ran
> ./configure two weeks ago), so I don't know what impact it has on my
> system.

I know some people get them; Google for the error and it shows up all
for all sorts of people in all sorts of projects.  But I didn't get
any of these in the past, it seems that Subversion is now making the
problem worse.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1257756


Re: svn commit: r36222 - trunk

Posted by Greg Stein <gs...@gmail.com>.
On Mon, Mar 2, 2009 at 19:26, Philip Martin <ph...@codematters.co.uk> wrote:
>...
> Another problem is I now get lots of warning like:
>
>   libtool: link: warning: `/usr/lib//libsqlite3.la' seems to be moved
>
> Note the double slash.  This problem propogates into the final
> Subversion .la files so in libsvn_client-1.la, for example, the
> dependency_libs line contains /usr/lib//libsqlite3.la with a double
> slash whereas in the past it was a single slash.  I guess this may
> introduce link warnings for people using the Subversion libraries.  If
> I configure to use APR's libtool the warnings change to things like:
>
>   libtool: link: warning: `/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib//libsqlite3.la' seems to be moved
>
> The old system didn't produce these warnings.

Actually... it does/did. I've been getting these for a couple months
now. I haven't switched over to this new libtool stuff (last ran
./configure two weeks ago), so I don't know what impact it has on my
system.

In my case, it is coming from some APR stuffs. libexpat and libiconv.
It crept in when I monkeyed around with switching out to a different
APR. Probably need to do an extraclean followed by a fresh build.
*shrug* ... I've just been ignoring them as stupid libtool'isms.

Cheers,
-g

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1257720


Re: svn commit: r36222 - trunk

Posted by Justin Erenkrantz <je...@apache.org>.
On Mon, Mar 2, 2009 at 10:26 AM, Philip Martin <ph...@codematters.co.uk> wrote:
> In the past this was:
>
>   SVN_LIBTOOL="\$(SHELL) $sh_libtool"
>
> and it seems that on my box I need to use
>
>   --with-custom-libtool='/bin/bash /usr/bin/libtool'
>
> because /usr/bin/libtool starts #!/bin/sh which on my box is dash and
> that doesn't support the += construct.  Can we put the $SHELL back in?

Well, it shouldn't be unconditional as jlibtool is a binary and
supposedly future versions of GNU libtool are supposed to be
binary-only too.  *sigh*  This seems like a really bad bug in GNU
libtool.  (Die libtool die.)

I'm open to suggestions, but I'm just not sure how to proceed here...

> Another problem is I now get lots of warning like:
>
>   libtool: link: warning: `/usr/lib//libsqlite3.la' seems to be moved
>
> Note the double slash.  This problem propogates into the final
> Subversion .la files so in libsvn_client-1.la, for example, the
> dependency_libs line contains /usr/lib//libsqlite3.la with a double
> slash whereas in the past it was a single slash.  I guess this may
> introduce link warnings for people using the Subversion libraries.  If
> I configure to use APR's libtool the warnings change to things like:
>
>   libtool: link: warning: `/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib//libsqlite3.la' seems to be moved
>
> The old system didn't produce these warnings.

How does the build refer to libsqlite3.la?  But, I don't think this is
directly caused by my changes - but rather some other bug is now
rearing its ugly head.  *sigh*  As Greg has said, this has been around
for *years*.

> Finally if I configure with --disable-static and I don't use
> --with-custom-libtool then the build fails.  It seems to compile and
> link both shared and non-shared libraries, but linking executables
> fails with:
>
>   cd subversion/svn && /usr/share/apr-1.0/build/libtool --tag=CC --silent --mode=link gcc -shared  -g -DAPR_POOL_DEBUG -std=c89 -Wpointer-arith -Wdeclaration-after-statement -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wwrite-strings -Wbad-function-cast -pthread   -DSVN_DEBUG -DAP_DEBUG   -rpath /usr/local/subversion/lib -o svn  add-cmd.o blame-cmd.o cat-cmd.o changelist-cmd.o checkout-cmd.o cleanup-cmd.o commit-cmd.o conflict-callbacks.o copy-cmd.o delete-cmd.o diff-cmd.o export-cmd.o help-cmd.o import-cmd.o info-cmd.o list-cmd.o lock-cmd.o log-cmd.o main.o merge-cmd.o mergeinfo-cmd.o mkdir-cmd.o move-cmd.o notify.o propdel-cmd.o propedit-cmd.o propget-cmd.o proplist-cmd.o props.o propset-cmd.o resolve-cmd.o resolved-cmd.o revert-cmd.o status-cmd.o status.o switch-cmd.o tree-conflicts.o unlock-cmd.o update-cmd.o util.o ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /usr/lib/libaprutil-1.la  /usr/lib/libapr-1.la -luuid -lrt -lcrypt  -lpthread -ldl -lneon
>   /usr/bin/ld: add-cmd.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
> add-cmd.o: could not read symbols: Bad value
>   collect2: ld returned 1 exit status
>
> Is that supposed to work?  If not can we make --enable-{shared,static}
> depend on --with-custom-libtool?

What flags were passed when compiling add-cmd.o?  -prefer-pic (if
/usr/share/apr-1.0/build/libtool is 1.5.x) or -shared (if 2.x)?  Both
should be setting -fPIC at compile time as long as libtool isn't
further brain-damaged.  If you can please emit the compile line (ie
remove --silent) when add-cmd.o is compiled, that could be helpful.
(I'm assuming of course that you did a make clean of everything in
between switching shared/static builds.)  -- justin

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1258672