RFD: gettext, iconv, packaging...
Mon Jun 24 06:06:00 GMT 2002
Charles Wilson wrote:
> Corinna Vinschen wrote:
>> If only these two tools are using cyggettext*.dll and the other one,
>> why not linking statically against them? I don't see a reason to
>> have dlls hanging around for that purpose.
> No, you got it backwards. There are only two programs -- the two MAIN
> programs "gettext.exe" and "ngettext.exe" -- that DON'T use the
> cyggettext*.dll code. There are 6 or so "development" oriented programs
> that DO use the code. Why include duplicate code in all those programs
> if it can all be stored in a shared library?
Answer: because it doesn't work. :-(
I have been able to build a new gettext suite based on 0.11.2 and it
passes the expected tests (and fails others for good and known reasons).
However, make install fails miserably -- because libtool (even
20020502) has problems:
(1) *EVERY* time you do another 'make' invocation, libtool relinks the
.exe's. This is because 'make' is looking for foo.exe in <working dir>,
but foo.exe is in <working dir>/.libs/. The only thing in <working dir>
is the libtool wrapper script, foo. So, we relink. again and again and
(2) When doing a 'make install', libtool insists on relinking the
libraries. But, it doesn't understand DESTDIR -- so even though I *HAD*
a perfectly good 'cyggettextlib-0.11.2.dll' which depended on the new
cygintl-2.dll -- the NEW relinked one gets linked against -L/usr/lib and
picks up cygintl-1.dll. (libtool thinks that libintl.la has already
been installed into /usr/lib, and assumes that -L/usr/lib is the right
thing to do. But libintl.la was installed into $(DESTDIR)/usr/lib.)
IMO, this is a cross-platform libtool bug: libtool doesn't understand
$(DESTDIR), and relinks against the wrong library. (This of course begs
the question: why is libtool relinking the DLLs? There's no need to do
that on windows; we have no -rpath.)
Rather than delay a release of gettext-0.11.2 and libiconv for Yet
Another Round of Libtool Fixing, I'm going to go with Corinna's
suggestion: just make libgettextlib and libgettextsrc static libs
(libtool convenience libraries). Nobody but gettext's own tools are
allowed to use them anyway, so they might as well be.
The damage: the utility programs are, taken all together, a few hundred
kb bigger than they would otherwise be. Big **** deal.
More information about the Cygwin-apps