Compiling LO 6.2.0.3 get undefined reference to `hb_graphite2_face_get_gr_face'

Alex Kempshall mcmurchy1917-libreoffice at yahoo.co.uk
Tue Feb 26 11:01:52 UTC 2019


On 25/02/2019 14:42, Michael Stahl wrote:
> On 25.02.19 15:32, Alex Kempshall wrote:
>> On 25/02/2019 14:17, Michael Stahl wrote:
>>> On 25.02.19 14:52, Alex Kempshall wrote:
>>>> On 25/02/2019 12:28, Michael Stahl wrote:
>>>>> On 25.02.19 12:10, Alex Kempshall wrote:
>>>>>> The error I get is
>>>>>>
>>>>>>> /tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/CxxObject/vcl/source/font/FeatureCollector.o: 
>>>>>>> In function `vcl::font::FeatureCollector::collectGraphite()':
>>>>>>> FeatureCollector.cxx:(.text+0x34): undefined reference to 
>>>>>>> `hb_graphite2_face_get_gr_face'
>
>>> S=/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3 && I=$S/instdir && 
>>> W=$S/workdir && /usr/bin/ccache g++ -shared -Wl,-z,noexecstack 
>>> -Wl,-z,origin '-Wl,-rpath,$ORIGIN' -Wl,-rpath-link,$I/program 
>>> -Wl,-z,defs -fstack-protector-strong -Wl,-rpath-link,/lib:/usr/lib 
>>> -Wl,-z,combreloc  -Wl,--hash-style=gnu -Wl,-Bsymbolic-functions 
>>> -L$W/LinkTarget/StaticLibrary -L$I/sdk/lib  -L$I/program 
>>> -L$I/program -Wl,-rpath,/usr/lib64/libreoffice/program/ -L/usr/lib64 
>
> ^ this -L/usr/lib64 is your problem; it is pointless (because that is 
> in the default search path anyway) and harmful (because it overrides 
> the -L$W/UnpackedTarball/harfbuzz/src/.libs that comes later:
>
>>> $W/CxxObject/vcl/opengl/x11/X11DeviceInfo.o -Wl,--start-group 
>>> $W/LinkTarget/StaticLibrary/libgraphite.a 
>>> -L$W/UnpackedTarball/libjpeg-turbo/.libs -ljpeg 
>>> $W/UnpackedTarball/libeot/.libs/libeot.a  -lgio-2.0 -lgobject-2.0 
>>> -lglib-2.0 -L$W/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz 
>>> -lharfbuzz-icu -licuuc -licuuc -L$W/UnpackedTarball/lcms2/src/.libs 
>>> -llcms2 -lcairo -lcups -ldbus-1  -lfontconfig -lfreetype -lfreetype 
>>> -lm -ldl -lpthread -lX11 -lXext  -Wl,--end-group -Wl,--no-as-needed 
>>> -lpdfiumlo -lsvllo -ltllo -lutllo -lsotlo -lucbhelper -lbasegfxlo 
>>> -lcomphelper -luno_cppuhelpergcc3 -li18nlangtag -li18nutil 
>>> -lopencllo -luno_cppu -luno_sal -luno_salhelpergcc3 -lxmlreaderlo 
>>> -ljvmaccesslo -lepoxy  -o $I/program/libvcllo.so
>
> now the question is where does that come from, try:
>  "grep /lib64[^/] config_host.mk"

grep /lib64[^/] config_host.mk

returns

> export LDFLAGS= -Wl,-rpath,/usr/lib64/libreoffice/program/ -L/usr/lib64 

I elected to remove the -L/usr/lib64 from config_host.mk and run the 
make again. This time the make completed successfully.

Then had a detailed look at my script. Bit of trial and error. Then 
changed the 64-bit section of the code below  to remove the contents 
from the SLKLDFLAGS and LIBDIRSUFFIX  as below

> case "$ARCH" in
>   i?86)      SLKCFLAGS="-march=${ARCH} -mtune=i686"
>              SLKLDFLAGS=""; LIBDIRSUFFIX=""
>              ;;
>   x86_64)    SLKCFLAGS="-fPIC"
> #             SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
>              SLKLDFLAGS=""; LIBDIRSUFFIX=""
>              ;;
>   armv7hl)   SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -std=c++98"
>              SLKLDFLAGS=""; LIBDIRSUFFIX=""
>              ;;
>   *)         SLKCFLAGS=""
>              SLKLDFLAGS=""; LIBDIRSUFFIX=""
>              ;;
> esac

I can now compile successfully.

Michael thanks for your help and suggestions. Learnt a lot.

Alex







More information about the LibreOffice mailing list