Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


On 20 August 2011 16:33, Kohei Yoshida <kohei.yoshida@gmail.com> wrote:
So, I was looking into a mysterious build breakage in forms (on
WIndows).  It would fail at link time due to missing external symbols.
 It was expecting to find those symbols from icuin.lib, which is a
static library file generated from the icu module.

The funny thing is, when I do

cd icu
rm -rf $INPATH
build
deliver

and re-build forms afterward, it builds fine.

After many hours of hair-pulling investigation, I've come to find out
that both icu and cui modules produce a static library named
"icuin.lib", and the forms library tries to link to icuin.lib that's
produced by the cui module, not the one from icu module which has
already been overwritten, hence the link failure.

oh, this is not nice.

The question here is, how do we go about fixing this?

Well, hopefully I have fixed the problem. The cui part. No reason for
changing name on windows there I think.
But I don't know anything about icu and MSVC, and if we can also
create icui18n for windows.

And when talking about cui library. This loading is working for windows ?
http://opengrok.libreoffice.org/xref/core/sfx2/source/appl/appinit.cxx#209
aLibName seems to be expanded to cuilo.lib

Here is the name defined when compiling:
http://opengrok.libreoffice.org/xref/core/vcl/source/window/abstdlg.cxx#45

Also the reason why this won't happen on non-Windows platform is that,
when building icu, the library name becomes icui18n, not icuin, hence
no naming clashes.

The cleanest solution (to me) is to have icu produce icui18n.lib
instead of icuin.lib, but I'm guessing there is a reason why MSVC
generates icuin.lib with the '18' stripped out?

Kohei

HTH,

Matúš

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.