libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with "fixed" -static flag


From: Ralf Wildenhues
Subject: Re: Problem with "fixed" -static flag
Date: Fri, 13 Jan 2006 10:18:39 +0100
User-agent: Mutt/1.5.11

Hi Gary,

* Gary Kumfert wrote on Thu, Jan 12, 2006 at 09:07:52PM CET:
> 
> I'm learning that libtool 1.5.22 "fixed" the -static flag so that
> static libraries are linked in the build directory, but
> shared libraries in the install directory.  But I don't
> understand why this is considered "better" behavior.

The discussion was controversial:
http://thread.gmane.org/gmane.comp.gnu.libtool.general/6573
http://thread.gmane.org/gmane.comp.gnu.libtool.patches/5636
and references therein.

> The side-effect is that libtool behaves very
> differently between "make check" and "make installcheck"
> ...particularly in my case, since the libraries being linked
> have #ifdef PIC preprocessor directives in their source.

Yep.  Not very nice.  Matches the documentation though, and the
pre-1.5 behavior of libtool, quoting (Link mode):
| `-static'
|      If OUTPUT-FILE is a program, then do not link it against any
|      uninstalled shared libtool libraries.  If OUTPUT-FILE is a
|      library, then only create a static library.

> I thought the -all-static flag would be a solution, but it
> seems to go too far... trying to link in *every* library (even
> system libraries) statically.
> glibc (and other libs that dlopen modules internally) protest
> vociferously on the link line (how do they do that?) and
> ultimately break my build.

Yep, I see that in quite a few cases, too.  Also, link_static_flag is
not correctly determined for some systems (we have a TODO item about
that).

> I'm at the point of hacking in my own -lt-static flag to
> reproduce the old behavior of -static.... but first I wanted
> to do a sanity check.
> 
>   1. Am I the only one who prefers the older behavior?

See above.

>   2. Is there another way to make just the libtool libraries static
>      after they've been installed?

I don't understand this question.  What is the reason that prevented you
from creating just a static library for these ones in the first place?

>   3. Could there be an alternative way to structure the libraries?

I haven't yet fully grasped your needs.  A couple of questions in
return:

- Would it be sufficient if libtool implemented per-deplib
  `-Bstatic/-Bdynamic' (whatever they're called) switches?
- The former is not so easy to implement, so: as an easier measure,
  were the former 1.5.x semantics of `-static' exactly those you
  needed?  Maybe we should just implement another option to get
  those semantics again, as you suggested above.  I wouldn't name
  it `-lt-static' though.  Maybe `-static-libtool-libs' would fit
  better, but it's rather long.

Cheers,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]