[libvoikko] Libreoffice-voikko build broken on MacOSX

Sjur Moshagen sjurnm at mac.com
Thu May 30 15:38:31 EEST 2013


29. mai 2013 kl. 23:33 skrev Harri Pitkänen <hatapitk at iki.fi>:

> Something like this would hopefully do (I can't test this so check for typos 
> and correct line breaks etc.):

It didn't make a difference.

What it seems to boil down to is that both the dynamic libraries extended linking AND a regular -l linking flag is needed.

That is, with the following makefile:



        -luno_cppuhelpergcc3 -luno_cppu -luno_sal \
        -Wl,-dylib_file, at loader_path/libuno_cppuhelpergcc3.dylib.3:'/Applications/LibreOffice.app/Contents/ure-link/lib/libuno_cppuhelpergcc3.dylib' \
        -Wl,-dylib_file, at loader_path/libuno_cppu.dylib.3:'/Applications/LibreOffice.app/Contents/ure-link/lib/libuno_cppu.dylib' \
        -Wl,-dylib_file, at loader_path/libuno_sal.dylib.3:'/Applications/LibreOffice.app/Contents/ure-link/lib/libuno_sal.dylib' \
        -lvoikko \
        -lhfstospell \
etc.


I get the following linking messages:


ld: warning can't open dynamic library: /Applications/LibreOffice.app/Contents/ure-link/lib/libuno_cppu.dylib referenced from: /Users/adminis//macosx/lib/libuno_cppuhelpergcc3.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
...
__ZN9salhelper21SimpleReferenceObjectD2Ev referenced from @__________________________________________________URELIB/libuno_cppuhelpergcc3.dylib.3 expected to be defined in @loader_path/libuno_salhelpergcc3.dylib.3
__ZN9salhelper21SimpleReferenceObjectdlEPv referenced from @__________________________________________________URELIB/libuno_cppuhelpergcc3.dylib.3 expected to be defined in @loader_path/libuno_salhelpergcc3.dylib.3
...


whereas if I remove the line:

        -luno_cppuhelpergcc3 -luno_cppu -luno_sal \

from the make file all symbol references become unknown:


ld: Undefined symbols:
__ZN4cppu25component_writeInfoHelperEPvS0_PKNS_19ImplementationEntryE
__ZN4cppu26component_getFactoryHelperEPKcPvS2_PKNS_19ImplementationEntryE
__ZN4cppu28createSingleComponentFactoryEPFN3com3sun4star3uno9ReferenceINS3_10XInterfaceEEERKNS4_INS3_17XComponentContextEEEERKN3rtl8OUStringERKNS3_8SequenceISE_EEP16_rtl_ModuleCount
_rtl_allocateMemory
_rtl_freeMemory
_rtl_uString_assign
...



This got me thinking: all the messages of the inability to open dynamic libraries and symbol X referenced from dylib Y could probably be ignored, and I should only concentrate on fixing the missing symbols from the static libraries that hfst-ospell depend on.

Is it possible that the whole thing will work despite the dylib messages, as long as I can fix the other linking issues (they are (hopefully) manageable)?


> Not necessarily. But you will likely need to add some compiler switches. 
> Googling for this suggests the following:
> 
>  -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5

Yes, thanks for the reminder, I used those when building both hfst-ospell and libvoikko.

Sjur




More information about the Libvoikko mailing list