You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Greg Stein <gs...@gmail.com> on 2009/03/01 00:57:18 UTC

Re: [PATCH] reenable libtool options (was: svn commit: r36153 - in trunk: . build)

The solution to the first three is simply that my patch says
"-enable-shared" when it should be "--enable-shared". I threw my patch
out as a discussion point; it wasn't tested.

We should move *forward*, not backward. If we want something fixed,
then we fix it. 36153 fixed things. Reverting it will go back to the
brokenness that caused Justing to fix it in the first place. Justin's
suggested patch for a custom libtool and something along the lines of
what I came up with for the shared/static stuff should put us back on
track.

-g

On Sun, Mar 1, 2009 at 01:38, Arfrever Frehtes Taifersar Arahesis
<ar...@gmail.com> wrote:
> 2009-02-28 22:01:15 Greg Stein napisał(a):
>> Arfrever pointed out that the --(enable|disable)-(shared|static)
>> options are no longer available. Does the attached patch do the trick?
>
> No. There are 4 problems:
>
> 1. If e.g. --enable-shared was passed to `configure`, then -enable-shared is
> passed to gcc during linking of executables (e.g. svn, svnadmin, svnlook),
> which causes linker warning:
>
> cd subversion/svn && /usr/bin/libtool --tag=CC --silent --mode=link gcc -enable-static -enable-shared  -g -O2   -pthread  -L/usr/lib64  -rpath /usr/local/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/lib64/libaprutil-1.la -lldap -llber -lexpat /usr/lib64/libapr-1.la -luuid -lrt -lcrypt  -lpthread -ldl
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/bin/ld: warning: cannot find entry symbol nable-shared; defaulting to 0000000000405970
>
> If I run this command without --silent, I get this output:
>
> libtool: link: gcc -enable-static -enable-shared -g -O2 -pthread -o .libs/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  -L/usr/lib64 ../../subversion/libsvn_client/.libs/libsvn_client-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_wc/.libs/libsvn_wc-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_ra/.libs/libsvn_ra-1.so ../../subversion/libsvn_wc/.libs/libsvn_wc-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_diff/.libs/libsvn_diff-1.so ../../subversion/libsvn_ra/.libs/libsvn_ra-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_repos/.libs/libsvn_repos-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_fs/.libs/libsvn_fs-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_delta/.libs/libsvn_delta-1.so ../../subversion/libsvn_delta/.libs/libsvn_delta-1.so ../../subversion/libsvn_diff/.libs/libsvn_diff-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_subr/.libs/libsvn_subr-1.so ../../subversion/libsvn_subr/.libs/libsvn_subr-1.so /usr/lib64/libsqlite3.so /usr/lib64/libaprutil-1.so /usr/lib64/libldap.so /usr/lib64/libsasl2.so /usr/lib64/libgnutls.so /usr/lib64/libtasn1.so -lz /usr/lib64/libgcrypt.so/usr/lib64/libgpg-error.so /usr/lib64/liblber.so -lresolv /usr/lib64/libexpat.so /usr/lib64/libapr-1.so -luuid -lrt -lcrypt -lpthread -ldl -pthread -Wl,-rpath -Wl,/usr/local/lib
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/bin/ld: warning: cannot find entry symbol nable-shared; defaulting to 0000000000405970
>
> It is because "-enable-shared" is interpreted as linker option "-e" (see `man ld`) with argument "nable-shared".
>
> 2. Shared libraries are still created when --disable-shared was passed to `configure`.
> Executables (e.g. svn) are still dynamically linked against shared libraries.
>
> 3. Static libraries are still created when --disable-static was passed to `configure`.
>
> 4. enable_shared variable should be set also when --enable-shared option wasn't passed to `configure`.
> Otherwise the following error happens:
>
> $ ./configure --with-kwallet
> configure: Configuring Subversion 1.7.0
> configure: creating config.nice
> checking for gcc... gcc
> ...
> checking for bind_textdomain_codeset... yes
> checking if we are using GNU gettext... yes
> checking whether to look for KWallet... yes
> configure: error: --with-kwallet conflicts with --disable-shared
>
> This problem can be solved by the updated patch which I'm attaching.
>
> In connection with the first 3 problems I suggest to revert r36153.
>
>> On Thu, Feb 26, 2009 at 09:24, Justin Erenkrantz <je...@apache.org> wrote:
>> > For efficiency reasons, the system has converted the large body of this message into an attachment.
>> >
>> > ---------- Forwarded message ----------
>> > From: jerenkrantz@tigris.org
>> > To: svn@subversion.tigris.org
>> > Date: Thu, 26 Feb 2009 00:23:54 -0800
>> > Subject: svn commit: r36153 - in trunk: . build
>> > Author: jerenkrantz
>> > Date: Thu Feb 26 00:23:54 2009
>> > New Revision: 36153
>> >
>> > Log:
>> > Remove detection for GNU libtool and always use APR's libtool (be it GNU or
>> > jlibtool or whatever).
>> >
>> > * configure.ac: Always enable using APR's libtool.
>> > * autogen.sh, build/buildcheck.sh: Remove anything related to libtool detection.
>> > * build/
>> >  (svn:ignore): Remove config.guess and config.sub from ignore list.
>> > * build/config.guess, build/config.sub
>> >  (added): Take latest drops from FSF.
>> >
>> > Added:
>> >   trunk/build/config.guess
>> >   trunk/build/config.sub   (contents, props changed)
>> > Modified:
>> >   trunk/autogen.sh
>> >   trunk/build/   (props changed)
>> >   trunk/build/buildcheck.sh
>> >   trunk/configure.ac
>
> --
> Arfrever Frehtes Taifersar Arahesis
>

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


Re: [PATCH] reenable libtool options

Posted by Stefan Sperling <st...@elego.de>.
On Sun, Mar 01, 2009 at 05:01:48PM +0000, Philip Martin wrote:
> Justin Erenkrantz <ju...@erenkrantz.com> writes:
> 
> > On Sun, Mar 1, 2009 at 4:41 AM, Philip Martin <ph...@codematters.co.uk> wrote:
> >> Justin feels that is not acceptable, I'm not really sure why but I
> >> think it's because it creates libtool dropping in the build dir.
> >
> > I repeatedly said why - I looked at all of the other broken code that
> > was removed with it.  Almost all of the autogen.sh logic was bad and
> > would need to be reworked substantially to be 'proper'.
> 
> That bad logic didn't seem to affect me.
> 
> >  Rather than
> > continue to apply more and more band-aids on top of broken band-aids,
> > I do not feel that Subversion should be in the business of determining
> > how to build libraries.  IMO, that should be APR's job.  Our build
> > system gets tremendously simplified in the process and I feel that's a
> > *huge* win.  -- justin
> 
> A win for you, but you don't use libtool.  It's a loss for me.

[resending, this time to the current dev@ address instead of tigris]

This change has caused an issue that I've marked as a 1.7.0 blocker:
http://subversion.tigris.org/issues/show_bug.cgi?id=3930
"build system assumes that APR libtool supports C++"

Any ideas on how to resolve this?
I think this is quite release critical because it means we don't
compile on some platforms anymore where 1.6.x used to compile fine.

I am currently testing if a backout of r876227 will help.

Re: [PATCH] reenable libtool options

Posted by Philip Martin <ph...@codematters.co.uk>.
Justin Erenkrantz <ju...@erenkrantz.com> writes:

> On Sun, Mar 1, 2009 at 4:41 AM, Philip Martin <ph...@codematters.co.uk> wrote:
>> Justin feels that is not acceptable, I'm not really sure why but I
>> think it's because it creates libtool dropping in the build dir.
>
> I repeatedly said why - I looked at all of the other broken code that
> was removed with it.  Almost all of the autogen.sh logic was bad and
> would need to be reworked substantially to be 'proper'.

That bad logic didn't seem to affect me.

>  Rather than
> continue to apply more and more band-aids on top of broken band-aids,
> I do not feel that Subversion should be in the business of determining
> how to build libraries.  IMO, that should be APR's job.  Our build
> system gets tremendously simplified in the process and I feel that's a
> *huge* win.  -- justin

A win for you, but you don't use libtool.  It's a loss for me.

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

Re: [PATCH] reenable libtool options

Posted by Justin Erenkrantz <je...@apache.org>.
On Sun, Mar 1, 2009 at 4:41 AM, Philip Martin <ph...@codematters.co.uk> wrote:
> Justin feels that is not acceptable, I'm not really sure why but I
> think it's because it creates libtool dropping in the build dir.

I repeatedly said why - I looked at all of the other broken code that
was removed with it.  Almost all of the autogen.sh logic was bad and
would need to be reworked substantially to be 'proper'.  Rather than
continue to apply more and more band-aids on top of broken band-aids,
I do not feel that Subversion should be in the business of determining
how to build libraries.  IMO, that should be APR's job.  Our build
system gets tremendously simplified in the process and I feel that's a
*huge* win.  -- justin

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

Re: [PATCH] reenable libtool options

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

> We should move *forward*, not backward. If we want something fixed,
> then we fix it. 36153 fixed things. Reverting it will go back to the
> brokenness that caused Justing to fix it in the first place.

Instead of 36153 the brokenness could have been fixed with a patch
like:

Index: ../src/configure.ac
===================================================================
--- ../src/configure.ac (revision 36152)
+++ ../src/configure.ac (working copy)
@@ -173,6 +173,7 @@
   AS_HELP_STRING([--enable-experimental-libtool],[Use APR's libtool]),
   [experimental_libtool=$enableval],[experimental_libtool=no])
 
+ifdef([LT_INIT],[LT_INIT],[AC_PROG_LIBTOOL])
 if test "$experimental_libtool" = "yes"; then
   echo "using APR's libtool"
   sh_libtool="`$apr_config --apr-libtool`"
@@ -181,8 +182,6 @@
 else
   sh_libtool="$abs_builddir/libtool"
   SVN_LIBTOOL="\$(SHELL) $sh_libtool"
-  dnl libtoolize requires that the following line not be indented
-ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
 fi
 AC_SUBST(SVN_LIBTOOL)

Justin feels that is not acceptable, I'm not really sure why but I
think it's because it creates libtool dropping in the build dir.

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

Re: [PATCH] reenable libtool options (was: svn commit: r36153 - in trunk: . build)

Posted by Arfrever Frehtes Taifersar Arahesis <Ar...@GMail.Com>.
2009-03-01 01:57:18 Greg Stein napisał(a):
> The solution to the first three is simply that my patch says
> "-enable-shared" when it should be "--enable-shared". I threw my patch
> out as a discussion point; it wasn't tested.

Problems 2. and 3. still exist with the attached patch.

> We should move *forward*, not backward. If we want something fixed,
> then we fix it. 36153 fixed things. Reverting it will go back to the
> brokenness that caused Justing to fix it in the first place. Justin's
> suggested patch for a custom libtool and something along the lines of
> what I came up with for the shared/static stuff should put us back on
> track.
> 
> On Sun, Mar 1, 2009 at 01:38, Arfrever Frehtes Taifersar Arahesis
> <ar...@gmail.com> wrote:
> > 2009-02-28 22:01:15 Greg Stein napisał(a):
> >> Arfrever pointed out that the --(enable|disable)-(shared|static)
> >> options are no longer available. Does the attached patch do the trick?
> >
> > No. There are 4 problems:
> >
> > 1. If e.g. --enable-shared was passed to `configure`, then -enable-shared is
> > passed to gcc during linking of executables (e.g. svn, svnadmin, svnlook),
> > which causes linker warning:
> >
> > cd subversion/svn && /usr/bin/libtool --tag=CC --silent --mode=link gcc -enable-static -enable-shared  -g -O2   -pthread  -L/usr/lib64  -rpath /usr/local/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/lib64/libaprutil-1.la -lldap -llber -lexpat /usr/lib64/libapr-1.la -luuid -lrt -lcrypt  -lpthread -ldl
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/bin/ld: warning: cannot find entry symbol nable-shared; defaulting to 0000000000405970
> >
> > If I run this command without --silent, I get this output:
> >
> > libtool: link: gcc -enable-static -enable-shared -g -O2 -pthread -o .libs/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  -L/usr/lib64 ../../subversion/libsvn_client/.libs/libsvn_client-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_wc/.libs/libsvn_wc-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_ra/.libs/libsvn_ra-1.so ../../subversion/libsvn_wc/.libs/libsvn_wc-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_diff/.libs/libsvn_diff-1.so ../../subversion/libsvn_ra/.libs/libsvn_ra-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_repos/.libs/libsvn_repos-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_fs/.libs/libsvn_fs-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_delta/.libs/libsvn_delta-1.so ../../subversion/libsvn_delta/.libs/libsvn_delta-1.so ../../subversion/libsvn_diff/.libs/libsvn_diff-1.so /home/Arfrever/subversion_trunk/subversion/libsvn_subr/.libs/libsvn_subr-1.so ../../subversion/libsvn_subr/.libs/libsvn_subr-1.so /usr/lib64/libsqlite3.so /usr/lib64/libaprutil-1.so /usr/lib64/libldap.so /usr/lib64/libsasl2.so /usr/lib64/libgnutls.so /usr/lib64/libtasn1.so -lz /usr/lib64/libgcrypt.so/usr/lib64/libgpg-error.so /usr/lib64/liblber.so -lresolv /usr/lib64/libexpat.so /usr/lib64/libapr-1.so -luuid -lrt -lcrypt -lpthread -ldl -pthread -Wl,-rpath -Wl,/usr/local/lib
> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/bin/ld: warning: cannot find entry symbol nable-shared; defaulting to 0000000000405970
> >
> > It is because "-enable-shared" is interpreted as linker option "-e" (see `man ld`) with argument "nable-shared".
> >
> > 2. Shared libraries are still created when --disable-shared was passed to `configure`.
> > Executables (e.g. svn) are still dynamically linked against shared libraries.
> >
> > 3. Static libraries are still created when --disable-static was passed to `configure`.
> >
> > 4. enable_shared variable should be set also when --enable-shared option wasn't passed to `configure`.
> > Otherwise the following error happens:
> >
> > $ ./configure --with-kwallet
> > configure: Configuring Subversion 1.7.0
> > configure: creating config.nice
> > checking for gcc... gcc
> > ...
> > checking for bind_textdomain_codeset... yes
> > checking if we are using GNU gettext... yes
> > checking whether to look for KWallet... yes
> > configure: error: --with-kwallet conflicts with --disable-shared
> >
> > This problem can be solved by the updated patch which I'm attaching.
> >
> > In connection with the first 3 problems I suggest to revert r36153.
> >
> >> On Thu, Feb 26, 2009 at 09:24, Justin Erenkrantz <je...@apache.org> wrote:
> >> > For efficiency reasons, the system has converted the large body of this message into an attachment.
> >> >
> >> > ---------- Forwarded message ----------
> >> > From: jerenkrantz@tigris.org
> >> > To: svn@subversion.tigris.org
> >> > Date: Thu, 26 Feb 2009 00:23:54 -0800
> >> > Subject: svn commit: r36153 - in trunk: . build
> >> > Author: jerenkrantz
> >> > Date: Thu Feb 26 00:23:54 2009
> >> > New Revision: 36153
> >> >
> >> > Log:
> >> > Remove detection for GNU libtool and always use APR's libtool (be it GNU or
> >> > jlibtool or whatever).
> >> >
> >> > * configure.ac: Always enable using APR's libtool.
> >> > * autogen.sh, build/buildcheck.sh: Remove anything related to libtool detection.
> >> > * build/
> >> >  (svn:ignore): Remove config.guess and config.sub from ignore list.
> >> > * build/config.guess, build/config.sub
> >> >  (added): Take latest drops from FSF.
> >> >
> >> > Added:
> >> >   trunk/build/config.guess
> >> >   trunk/build/config.sub   (contents, props changed)
> >> > Modified:
> >> >   trunk/autogen.sh
> >> >   trunk/build/   (props changed)
> >> >   trunk/build/buildcheck.sh
> >> >   trunk/configure.ac

-- 
Arfrever Frehtes Taifersar Arahesis