Re: annoying build environment

2005-09-26 Thread Ralf Wildenhues
Hi Tim,

* Tim Rice wrote:
> 
> CVS HEAD
> 
> Is there any reason not to have ltmain.in in the source tree
> at configure time and generate ltmain.sh (from ltmain.in) in
> the build tree?

Please try the patch from
http://lists.gnu.org/archive/html/bug-libtool/2005-08/msg00039.html

> I'd like to be able to make a change in the source tree, run bootstrap,
> then cd /some/build/dir, configure, make and not have it try to generate
> some file in the source tree. We can't do this now. But is this possible
> with the current design of CVS HEAD?

I'm sorry for the inconvenience.  I'll apply that patch very soon if I
don't find a way of not having to distribute another almost-identical
copy of ltmain.

Cheers, and thanks for reporting,
Ralf

-- 
5 GB Mailbox, 50 FreeSMS http://www.gmx.net/de/go/promail
+++ GMX - die erste Adresse für Mail, Message, More +++


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: postdeps empty on OpenBSD

2005-09-26 Thread Olly Betts
On 2005-09-23, Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
> [ By the way, I don't think everyone in this discussion has subscribed
> this list; if in doubt, speak up, or even better, set Mail-Followup-To:
> next time ]

I'm following it on gmane, but an explicit Cc: isn't a problem.

> * Jacob Meuser wrote on Fri, Sep 23, 2005 at 04:10:36AM CEST:
>> just add -lstdc++ manually.  trust me, that works fine.  I really don't
>> see why libtool should be adding this automatically.

I did wonder about getting my project's configure to always specifying
"-lstdc++" if the compiler if GCC (with: test "$GXX" = yes).

But I worry that I could end up trying to link in two incompatible
versions of libstdc++ on a machine with multiple GCC installations.
I don't really want to risk breaking other platforms to get OpenBSD to
work, especially as I can document a workaround for OpenBSD users:

make LDFLAGS=-lstdc++

I could write configure code to detect OpenBSD and add -lstdc++ for
OpenBSD.  But such system specific tests are generally the wrong
approach - what if an older or newer version of OpenBSD behaves
differently?  Writing a configure test which builds a C++ module and C
client and tries to dlopen the former from the latter would at least fix
this more generally, but wouldn't work when cross-compiling, and besides
seems a bit ridiculous when libtool is meant to hide shared library
portability issues.

>> is it _always_ needed?  what about -lsupc++?
>
> Ahh, very good question.  Here we have an issue: it should be possible
> to _override_ the decision of libtool to add -lstdc++ on OpenBSD in all
> cases.  But those cases, in my opinion, would be the exception rather
> than the rule: they are usually the cause when your package makes use of
> some system-specifics anyway.  (Maybe there is even a way to detect
> whether supc++ is preferable over stdc++; I don't know of one, though,
> and in this case guessing is probably worse than allowing an override.)
>
> Can we agree on this somehow?  What other issues, if any, are you
> experiencing?

The obvious override mechanism is probably to see if the user specifies
"-lsupc++" explicitly and not to add -lstdc++ if they have.

Cheers,
Olly



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: postdeps empty on OpenBSD

2005-09-26 Thread Olly Betts
On 2005-09-22, Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
> * Olly Betts wrote on Wed, Sep 21, 2005 at 11:00:30PM CEST:
>> The bottom line for me is that if I explicitly add "-lstdc++" when
>> linking _xapian.so, it all works.  If I don't, it doesn't.  So I
>> kind of feel that ideally libtool should be doing that for me...
>
> ACK.  I hate to break libtool on systems I cannot test, when the
> maintainers may have had good reasons to do something slightly
> differently than the default way, though.

I've kindly been given temporary access to on an OpenBSD machine by the
user who reported this issue to me.  If one of the libtool maintainers
would find it useful to be able to test fixes, I can ask if he'd be
willing to give them temporary access too.  Alternatively I can test
fixes.  Or I can work on a fix myself, if there's consensus on what
should be done (I suspect I'll need some help and advice though...)

Cheers,
Olly



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: postdeps empty on OpenBSD

2005-09-26 Thread Olly Betts
On 2005-09-23, Peter O'Gorman <[EMAIL PROTECTED]> wrote:
> I have no statistics for how many shared libraries are written in c++ but do
> not take advantage of the standard c++ library, at a guess I'd say that the
> majority use some libstdc++ features.

It's perhaps worth noting that not linking libstdc++ to a library that
requires it means it fails to dlopen() - a fatal error.  Whereas linking
libstdc++ to a library which only needs libsupc++ just means that it is
linked to a shared library containing more than it needs (AIUI,
libsupc++ is just a very cut down version of libstdc++).

Linking to libstdc++ when you could get away with libsupc++ is
essentially irrelevant if you're running any other dynamically linked
C++ programs.  In fact it's probably slightly better if everything uses
libstdc++ than some use libsupc++!

To me defaulting to C++ pulling in libstdc++ makes most sense, probably
with an ability to override for the minority who don't require it and
care.

Cheers,
Olly



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: annoying build environment

2005-09-26 Thread Ralf Wildenhues
Sorry for the self-followup.

* Ralf Wildenhues wrote on Mon, Sep 26, 2005 at 09:02:03AM CEST:
> * Tim Rice wrote:
> > 
> > CVS HEAD
> > 
> > Is there any reason not to have ltmain.in in the source tree
> > at configure time and generate ltmain.sh (from ltmain.in) in
> > the build tree?
> 
> Please try the patch from
> http://lists.gnu.org/archive/html/bug-libtool/2005-08/msg00039.html
> 
> > I'd like to be able to make a change in the source tree, run bootstrap,
> > then cd /some/build/dir, configure, make and not have it try to generate
> > some file in the source tree. We can't do this now. But is this possible
> > with the current design of CVS HEAD?

D'oh.  Said patch is not sufficient, because of the `touch' at the end
of bootstrap.  I'll see if we can get rid of that, it's ugly anyway.

Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


static vs. dynamic linking

2005-09-26 Thread Enrico Weigelt

Hi folks,


how does libtool decide whether to link against an .la library 
dynamically vs. statically ?

I'm currently working on my own implementation, since libtool 
doesn't suit my needs (ie. sysroot'ed building), but I didn't
find any clear specification for libtool's behaviour.


cu
-- 
-
 Enrico Weigelt==   metux IT service

  phone: +49 36207 519931 www:   http://www.metux.de/
  fax:   +49 36207 519932 email: [EMAIL PROTECTED]
  cellphone: +49 174 7066481
-
 -- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops --
-


___
http://lists.gnu.org/mailman/listinfo/libtool


libtool generated for tests

2005-09-26 Thread Tim Rice

branch-1-5

Could someone explain why the libtool generated in the test dirs
are different than the one in the build dir?

Or more importanbtly, why a software package using ltmain.sh from 1.5.21a
would build a libtool that didn't work but copying libtool from
my libtool build dir would work. The differences looked similar 
to the ones below.

--- depdemo/libtool 2005-09-26 16:03:23.949817104 -0700
+++ libtool 2005-09-26 15:57:57.144777437 -0700
@@ -1,7 +1,7 @@
 #! /bin/ksh
 
 # libtoolT - Provide generalized library-building support services.
-# Generated automatically by  (GNU depdemo 0.1)
+# Generated automatically by  (GNU libtool 1.5.21a (1.1220.2.300 2005/09/25 
07:37:09))
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
@@ -53,7 +53,7 @@
 build_libtool_libs=yes
 
 # Whether or not to build static libraries.
-build_old_libs=no
+build_old_libs=yes
 
 # Whether or not to add -lc for building shared libraries.
 build_libtool_need_lc=no
@@ -70,7 +70,7 @@
 host_os=sysv5UnixWare7.1.4
 
 # The build system.
-build_alias=i686-unknown-sysv5UnixWare7.1.4
+build_alias=
 build=i686-unknown-sysv5UnixWare7.1.4
 build_os=sysv5UnixWare7.1.4
 
@@ -159,10 +159,10 @@
 need_version=no
 
 # Whether dlopen is supported.
-dlopen_support=unknown
+dlopen_support=yes
 
 # Whether dlopen of programs is supported.
-dlopen_self=unknown
+dlopen_self=no
 
 # Whether dlopen of statically linked programs is supported.
 dlopen_self_static=unknown
@@ -6896,7 +6896,7 @@
 build_libtool_libs=yes
 
 # Whether or not to build static libraries.
-build_old_libs=no
+build_old_libs=yes
 
 # Whether or not to add -lc for building shared libraries.
 build_libtool_need_lc=no
@@ -6913,7 +6913,7 @@
 host_os=sysv5UnixWare7.1.4
 
 # The build system.
-build_alias=i686-unknown-sysv5UnixWare7.1.4
+build_alias=
 build=i686-unknown-sysv5UnixWare7.1.4
 build_os=sysv5UnixWare7.1.4
 
@@ -7002,10 +7002,10 @@
 need_version=no
 
 # Whether dlopen is supported.
-dlopen_support=unknown
+dlopen_support=yes
 
 # Whether dlopen of programs is supported.
-dlopen_self=unknown
+dlopen_self=no
 
 # Whether dlopen of statically linked programs is supported.
 dlopen_self_static=unknown


-- 
Tim RiceMultitalents(707) 887-1469
[EMAIL PROTECTED]




___
http://lists.gnu.org/mailman/listinfo/libtool


Re: postdeps empty on OpenBSD

2005-09-26 Thread Jacob Meuser
On Mon, Sep 26, 2005 at 04:15:11PM +, Olly Betts wrote:
> On 2005-09-23, Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
> > [ By the way, I don't think everyone in this discussion has subscribed
> > this list; if in doubt, speak up, or even better, set Mail-Followup-To:
> > next time ]
> 
> I'm following it on gmane, but an explicit Cc: isn't a problem.
> 
> > * Jacob Meuser wrote on Fri, Sep 23, 2005 at 04:10:36AM CEST:
> >> just add -lstdc++ manually.  trust me, that works fine.  I really don't
> >> see why libtool should be adding this automatically.
> 
> I did wonder about getting my project's configure to always specifying
> "-lstdc++" if the compiler if GCC (with: test "$GXX" = yes).
> 
> But I worry that I could end up trying to link in two incompatible
> versions of libstdc++ on a machine with multiple GCC installations.

are you saying that on some platforms, you actually get
-L/path/to -lstdc++?  I don't think I've seen that one yet.  certainly
don't see that in the `g++ -shared -v' output you posted before.
so how is libtool going to help with this?

> I don't really want to risk breaking other platforms to get OpenBSD to
> work, especially as I can document a workaround for OpenBSD users:
> 
> make LDFLAGS=-lstdc++
> 
> I could write configure code to detect OpenBSD and add -lstdc++ for
> OpenBSD.  But such system specific tests are generally the wrong
> approach - what if an older or newer version of OpenBSD behaves
> differently?  Writing a configure test which builds a C++ module and C
> client and tries to dlopen the former from the latter would at least fix
> this more generally, but wouldn't work when cross-compiling, and besides
> seems a bit ridiculous when libtool is meant to hide shared library
> portability issues.
> 
> >> is it _always_ needed?  what about -lsupc++?
> >
> > Ahh, very good question.  Here we have an issue: it should be possible
> > to _override_ the decision of libtool to add -lstdc++ on OpenBSD in all
> > cases.  But those cases, in my opinion, would be the exception rather
> > than the rule: they are usually the cause when your package makes use of
> > some system-specifics anyway.  (Maybe there is even a way to detect
> > whether supc++ is preferable over stdc++; I don't know of one, though,
> > and in this case guessing is probably worse than allowing an override.)
> >
> > Can we agree on this somehow?  What other issues, if any, are you
> > experiencing?
> 
> The obvious override mechanism is probably to see if the user specifies
> "-lsupc++" explicitly and not to add -lstdc++ if they have.

what I don't get, is that at one point, libtool assumes the linker
knows what it's doing, and copies it.  but then maybe what it's doing
is not right?

I think perhaps you should ask [EMAIL PROTECTED] about this.  he might
be able to explain why -lstdc++ is not implicitly used in `g++ -shared',
which could give you a good starting point on how to "fix" the
"problem".

-- 
<[EMAIL PROTECTED]>


___
http://lists.gnu.org/mailman/listinfo/libtool