On Sun, May 31, 2009 at 5:57 AM, Stephen Leake
<stephen_le...@stephe-leake.org> >>
>>> How do you accomplish this? The monotone Makefile builds a dynamically
>>> linked executable.
>>
>> Simply by building the libraries with --disable-shared, and (in case
>> of libidn which doesn't care about user wishes) moving the dll (and
>> .dll.a) aside. The build automatically picks up the static
>> libraries.
>
> configure doesn't take option --disable-shared. Or at least, it
> accepts that option, but it has no effect (I only tested this on
> Debian; my Windows system needs to be rebuilt).

I think he means building all the *libraries* with --disable-shared,
so that there aren't shared libraries for the system to pick up.

> So it would be useful if configure (or the Makefile) supported a
> --disable-shared option.

This is a little harder than it looks because nowadays pkg-config goes
to some length to not list recursive dependencies in its --libs output
(these are harmful for shared linkage, but required for static
linkage, for stupid historical reasons both ways).  It could be done
but it would require modifying the autoconf scriptage around
pkg-config as well as the ultimate link line.

Also, there's a very real question of exactly how static you want your
binary to be.  If I were doing it I would probably preserve shared
linkage against everything that the compiler implicitly includes
(libstdc++, libgcc_s, libc, and possibly one or two others) because
staticly linking those can cause bizarre problems, but if you have
libstdc++ version skew to deal with that may not be good for you
either...

zw


_______________________________________________
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel

Reply via email to