Windows linking errors after removing old Graphite code

Michael Stahl mstahl at redhat.com
Fri Nov 25 16:12:03 UTC 2016


On 24.11.2016 22:04, Khaled Hosny wrote:
> I’m getting linking after removing the old Graphite integration:
> https://gerrit.libreoffice.org/#/c/31143/
> 
> But I’m getting unexpected linking errors, complaining about almost all
> Graphite symbol used by HarfBuzz:
> libharfbuzz.lib(libharfbuzz_la-hb-graphite2.obj) : error LNK2019: unresolved external symbol __imp__gr_make_face referenced in function __hb_graphite2_shaper_face_data_create
> 
> Full build:
> http://ci.libreoffice.org/job/lo_gerrit/3105/Config=linux_clang_dbgutil_64/console
> 
> My experience with of Windows toolchain is rather primitive, so I’m lost
> here. I’m guessing that because Graphite is statically linked, after
> removing the old code the linker does not see the use of these symbols
> and drops them or something like that. But I’m not sure if I’m guessing
> right or how to fix this.

i suspect it's because you remove this file:

https://gerrit.libreoffice.org/#/c/31143/4/vcl/inc/graphite_static.hxx

presumably it was included before graphite headers previously, and would
suppress a __declspec(dllimport) from the graphite headers, so now you
get unresolved dllimport symbols like "__imp__gr_make_face referenced"

... actually no, this is implausible since the unresolved symbols aren't
in vcl objects but in the harfbuzz static library.

... figured it out now, should be fixed with commit
086631af59636cd9a6a45b747a1bc59b4b547794, no idea why this doesn't fail
on current master already.


More information about the LibreOffice mailing list