[poppler] Fontconfig issue whilst building Poppler 0.62.0

suzuki toshiya mpsuzuki at hiroshima-u.ac.jp
Thu Mar 22 07:30:36 UTC 2018


Dear Simon,

Could you try the patch on this ?
https://github.com/mpsuzuki/poppler/commit/3f944ed5dee3496e7a7c661eabc3b16448316d13

this patch checks whether libfontconfig to be linked has the suffix for archive
library,
and if it has, invoke pkg-config --libs --static to collect all dependency.

If you dislike to download the diff and apply it by yourself,
you can also try "for-travis" branch which is working branch for Jeroen's issue
+ your issue.

I don't think this is specific issue for fontconfig, it would be generic issue
for the libraries with indirect dependency
(like libtiff depending with liblzma, libjbig, libjpeg, libz, libm).
If this works well for you, I would define some user-defined macro to care for
other libraries.

Regards,
mpsuzuki


Simon Shugar wrote:
> Dear Suzuki,
> 
> 
> No problem at all I will continue to look into it on my end in the mean time, once again thank you for your assistance.
> 
> libfreetype is part of our environment so there was no need to build a static version.
> 
> Let me know if there is any more information I can provide to help in the investigation.
> 
> 
> Kind regards,
> Simon Lee Shugar
> 
> --
> 
> [Veeva Systems - Zinc Team]
> 
> Simon Shugar
> Software Engineer
> Veeva Systems
> simon.shugar at veeva.com<mailto:simon.shugar at veeva.com>
> www.veeva.com<http://www.veeva.com>
> 
> This email and the information it contains are intended for the intended recipient only, are confidential and may be privileged information exempt from disclosure by law.
> If you have received this email in error, please notify us immediately by reply email and delete this message from your computer.
> Please do not retain, copy or distribute this email.
> 
> On Tue, Mar 20, 2018 at 8:08 PM, suzuki toshiya <mpsuzuki at hiroshima-u.ac.jp<mailto:mpsuzuki at hiroshima-u.ac.jp>> wrote:
> Dear Simon,
> 
> Thank you for detailed log.
> Could I ask why libfreetype is shared libary in your development but others like
> libfontconfig, libjpeg, libpng, libcms2 are archive libraries?
> 
> I'm afraid there is a similarity with the missing dependency issue reported by
> Jeroen,
> so please let me try to resolve this issue as a part of it.
> I apologize that I cannot help your immediately and I'm looking like as if I
> help the issue posted after yours.
> 
> Regards,
> mpsuzuki
> 
> Simon Shugar wrote:
>> Dear Suziki,
>>
>> Thank you for your assistance. This is the verbose log for the specific error I am running into. Let me know if you'd need more (the log gets pretty big). I tried researching ways to ensure uuid is linked to the build but I wasn't confident on any solution. We build to /usr/local/ by default with the VM I'm running so fontconfig and all the libraries seem to build fine from that location. I install fontconfig myself as part of Poppler's dependencies.
>>
>> Verbose Log
>>
>> Scanning dependencies of target pdftoppm
>> make[2]: Leaving directory `/root/Poppler_Update/poppler-0.62.0/build'
>> make -f utils/CMakeFiles/pdftoppm.dir/build.make utils/CMakeFiles/pdftoppm.dir/build
>> make[2]: Entering directory `/root/Poppler_Update/poppler-0.62.0/build'
>> [ 60%] Building CXX object utils/CMakeFiles/pdftoppm.dir/parseargs.cc.o
>> cd /root/Poppler_Update/poppler-0.62.0/build/utils && /usr/bin/c++ -I/root/Poppler_Update/poppler-0.62.0 -I/root/Poppler_Update/poppler-0.62.0/fofi -I/root/Poppler_Update/poppler-0.62.0/goo -I/root/Poppler_Update/poppler-0.62.0/poppler -I/root/Poppler_Update/poppler-0.62.0/build -I/root/Poppler_Update/poppler-0.62.0/build/poppler -I/usr/local/include -I/usr/local/include/freetype2 -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-missing-field-initializers -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wlogical-op -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -DNDEBUG -std=c++11 -o CMakeFiles/pdftoppm.dir/parseargs.cc.o -c /root/Poppler_Update/poppler-0.62.0/utils/parseargs.cc
>> [ 61%] Building CXX object utils/CMakeFiles/pdftoppm.dir/Win32Console.cc.o
>> cd /root/Poppler_Update/poppler-0.62.0/build/utils && /usr/bin/c++ -I/root/Poppler_Update/poppler-0.62.0 -I/root/Poppler_Update/poppler-0.62.0/fofi -I/root/Poppler_Update/poppler-0.62.0/goo -I/root/Poppler_Update/poppler-0.62.0/poppler -I/root/Poppler_Update/poppler-0.62.0/build -I/root/Poppler_Update/poppler-0.62.0/build/poppler -I/usr/local/include -I/usr/local/include/freetype2 -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-missing-field-initializers -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wlogical-op -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -DNDEBUG -std=c++11 -o CMakeFiles/pdftoppm.dir/Win32Console.cc.o -c /root/Poppler_Update/poppler-0.62.0/utils/Win32Console.cc
>> [ 61%] Building CXX object utils/CMakeFiles/pdftoppm.dir/pdftoppm.cc.o
>> cd /root/Poppler_Update/poppler-0.62.0/build/utils && /usr/bin/c++ -I/root/Poppler_Update/poppler-0.62.0 -I/root/Poppler_Update/poppler-0.62.0/fofi -I/root/Poppler_Update/poppler-0.62.0/goo -I/root/Poppler_Update/poppler-0.62.0/poppler -I/root/Poppler_Update/poppler-0.62.0/build -I/root/Poppler_Update/poppler-0.62.0/build/poppler -I/usr/local/include -I/usr/local/include/freetype2 -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-missing-field-initializers -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wlogical-op -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -DNDEBUG -std=c++11 -o CMakeFiles/pdftoppm.dir/pdftoppm.cc.o -c /root/Poppler_Update/poppler-0.62.0/utils/pdftoppm.cc
>> [ 62%] Linking CXX executable pdftoppm
>> cd /root/Poppler_Update/poppler-0.62.0/build/utils && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/pdftoppm.dir/link.txt --verbose=1
>> /usr/bin/c++ -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-missing-field-initializers -Wcast-align -Wformat-security -Wframe-larger-than=65536 -Wlogical-op -Wmissing-format-attribute -Wnon-virtual-dtor -Woverloaded-virtual -Wmissing-declarations -Wundef -fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE -O2 -DNDEBUG -Wl,--as-needed -rdynamic CMakeFiles/pdftoppm.dir/parseargs.cc.o CMakeFiles/pdftoppm.dir/Win32Console.cc.o CMakeFiles/pdftoppm.dir/pdftoppm.cc.o -o pdftoppm -Wl,-rpath,/usr/local/lib: ../libpoppler.a /usr/local/lib/libfreetype.so /usr/local/lib/libfontconfig.a /usr/local/lib/libjpeg.a -lz /usr/local/lib/liblcms2.a /usr/local/lib/libpng.a -lz /usr/local/lib/liblcms2.a /usr/local/lib/libpng.a -pthread
>> /usr/local/lib/libfontconfig.a(fchash.o): In function `FcHashUuidCopy':
>> fchash.c:(.text+0x6e): undefined reference to `uuid_copy'
>> /usr/local/lib/libfontconfig.a(fcxml.o): In function `FcConfigMessage':
>> fcxml.c:(.text+0x760): undefined reference to `xmlSAX2GetLineNumber'
>> fcxml.c:(.text+0x7a5): undefined reference to `xmlSAX2GetLineNumber'
>> /usr/local/lib/libfontconfig.a(fcxml.o): In function `FcConfigParseAndLoadFromMemoryInternal':
>> fcxml.c:(.text+0x55ce): undefined reference to `xmlCreatePushParserCtxt'
>> fcxml.c:(.text+0x5635): undefined reference to `xmlParseChunk'
>> fcxml.c:(.text+0x5645): undefined reference to `xmlCtxtGetLastError'
>> fcxml.c:(.text+0x57bc): undefined reference to `xmlFreeParserCtxt'
>> /usr/local/lib/libfontconfig.a(fccache.o): In function `IA__FcDirCacheCreateUUID':
>> fccache.c:(.text+0x20b): undefined reference to `uuid_generate_random'
>> fccache.c:(.text+0x26b): undefined reference to `uuid_unparse'
>> /usr/local/lib/libfontconfig.a(fccache.o): In function `FcDirCacheReadUUID':
>> fccache.c:(.text+0x484): undefined reference to `uuid_parse'
>> /usr/local/lib/libfontconfig.a(fccache.o): In function `FcDirCacheBasenameUUID':
>> fccache.c:(.text+0x780): undefined reference to `uuid_unparse'
>> collect2: error: ld returned 1 exit status
>> make[2]: *** [utils/pdftoppm] Error 1
>> make[2]: Leaving directory `/root/Poppler_Update/poppler-0.62.0/build'
>> make[1]: *** [utils/CMakeFiles/pdftoppm.dir/all] Error 2
>> make[1]: Leaving directory `/root/Poppler_Update/poppler-0.62.0/build'
>> make: *** [all] Error 2
>>
>>
>>
>> Kind regards,
>> Simon Lee Shugar
>>
>> --
>>
>> [Veeva Systems - Zinc Team]
>>
>> Simon Shugar
>> Software Engineer
>> Veeva Systems
>> simon.shugar at veeva.com<mailto:simon.shugar at veeva.com><mailto:simon.shugar at veeva.com<mailto:simon.shugar at veeva.com>>
>> www.veeva.com<http://www.veeva.com><http://www.veeva.com>
>>
>> This email and the information it contains are intended for the intended recipient only, are confidential and may be privileged information exempt from disclosure by law.
>> If you have received this email in error, please notify us immediately by reply email and delete this message from your computer.
>> Please do not retain, copy or distribute this email.
>>
>> On Mon, Mar 19, 2018 at 7:05 PM, suzuki toshiya <mpsuzuki at hiroshima-u.ac.jp<mailto:mpsuzuki at hiroshima-u.ac.jp><mailto:mpsuzuki at hiroshima-u.ac.jp<mailto:mpsuzuki at hiroshima-u.ac.jp>>> wrote:
>> Dear Simon,
>>
>> could you upload the verbose log (by "make VERBOSE=1") to somewhere
>> and post the link there? we cannot see the detailed commandline
>> options to the compiler/linker and it's hard to guess what's going
>> on.
>>
>> In my impression, it seems that the linker slipped to add several
>> external libraries required by libfontconfig (and caused unresolved
>> symbols for libuuid and libxml2). The point looking strange for me
>> is "why libfontconfig.a is placed under /usr/local/lib?". I think,
>> fontconfig is quite widely used libraries, even on the systems without
>> GUI environment, so it could be found in /usr tree...
>>
>> Regards,
>> mpsuzuki
>>
>> Simon Shugar wrote:
>>> Hi,
>>>
>>> I'm trying to build Poppler 0.62.0 and running into the following error when using CMake. I've not much experience with CMake or building libraries on linux. Has anyone seen the following issue and would be able to point me in the right direction?
>>>
>>> I am roughly following instructions from http://www.linuxfromscratch.org/blfs/view/svn/general/poppler.html I'm building everything statically as our we are using an old OS.
>>>
>>> I've already installed all dependencies and using pkg-config as my dependency management tool.
>>>
>>> I originally had an issue with UUID when building fontconfig but got round it by installing util-linux.
>>>
>>> Command
>>> This is the command(s) I am using.
>>>
>>> "mkdir -v build &&
>>> cd       build
>>>
>>>
>>> cmake  -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_QT5=OFF -DENABLE_LIBOPENJPEG=none .. && make
>>> make install"
>>>
>>> Output
>>> This is the error I am receiving.
>>>
>>> "Scanning dependencies of target pdftoppm
>>> [ 60%] Building CXX object utils/CMakeFiles/pdftoppm.dir/parseargs.cc.o
>>> [ 61%] Building CXX object utils/CMakeFiles/pdftoppm.dir/Win32Console.cc.o
>>> [ 61%] Building CXX object utils/CMakeFiles/pdftoppm.dir/pdftoppm.cc.o
>>> [ 62%] Linking CXX executable pdftoppm
>>> /usr/local/lib/libfontconfig.a(fchash.o): In function `FcHashUuidCopy':
>>> fchash.c:(.text+0x6e): undefined reference to `uuid_copy'
>>> /usr/local/lib/libfontconfig.a(fcxml.o): In function `FcConfigMessage':
>>> fcxml.c:(.text+0x760): undefined reference to `xmlSAX2GetLineNumber'
>>> fcxml.c:(.text+0x7a5): undefined reference to `xmlSAX2GetLineNumber'
>>> /usr/local/lib/libfontconfig.a(fcxml.o): In function `FcConfigParseAndLoadFromMemoryInternal':
>>> fcxml.c:(.text+0x55ce): undefined reference to `xmlCreatePushParserCtxt'
>>> fcxml.c:(.text+0x5635): undefined reference to `xmlParseChunk'
>>> fcxml.c:(.text+0x5645): undefined reference to `xmlCtxtGetLastError'
>>> fcxml.c:(.text+0x57bc): undefined reference to `xmlFreeParserCtxt'
>>> /usr/local/lib/libfontconfig.a(fccache.o): In function `IA__FcDirCacheCreateUUID':
>>> fccache.c:(.text+0x20b): undefined reference to `uuid_generate_random'
>>> fccache.c:(.text+0x26b): undefined reference to `uuid_unparse'
>>> /usr/local/lib/libfontconfig.a(fccache.o): In function `FcDirCacheReadUUID':
>>> fccache.c:(.text+0x484): undefined reference to `uuid_parse'
>>> /usr/local/lib/libfontconfig.a(fccache.o): In function `FcDirCacheBasenameUUID':
>>> fccache.c:(.text+0x780): undefined reference to `uuid_unparse'
>>> collect2: error: ld returned 1 exit status
>>> make[2]: *** [utils/pdftoppm] Error 1
>>> make[1]: *** [utils/CMakeFiles/pdftoppm.dir/all] Error 2
>>> make: *** [all] Error 2
>>> "
>>>
>>> Kind regards,
>>> Simon Lee Shugar
>>>
>>> --
>>>
>>> [Veeva Systems - Zinc Team]
>>>
>>> Simon Shugar
>>> Software Engineer
>>> Veeva Systems
>>> simon.shugar at veeva.com<mailto:simon.shugar at veeva.com><mailto:simon.shugar at veeva.com<mailto:simon.shugar at veeva.com>><mailto:simon.shugar at veeva.com<mailto:simon.shugar at veeva.com><mailto:simon.shugar at veeva.com<mailto:simon.shugar at veeva.com>>>
>>> www.veeva.com<http://www.veeva.com><http://www.veeva.com><http://www.veeva.com>
>>>
>>> This email and the information it contains are intended for the intended recipient only, are confidential and may be privileged information exempt from disclosure by law.
>>> If you have received this email in error, please notify us immediately by reply email and delete this message from your computer.
>>> Please do not retain, copy or distribute this email.
>>>
>>>
>>
>>
> 
> 
> 



More information about the poppler mailing list