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