[poppler] cmake and static binaries

William Bader williambader at hotmail.com
Sun Sep 10 11:47:48 UTC 2017


Adrian and Albert, thanks for looking at it. I see the libjbig difference with normal dynamic builds also, at least on Fedora 25 with poppler-0.59.0.  Regards, William

________________________________
From: poppler <poppler-bounces at lists.freedesktop.org> on behalf of Albert Astals Cid <aacid at kde.org>
Sent: Sunday, September 10, 2017 5:48 AM
To: poppler at lists.freedesktop.org
Cc: Adrian Johnson
Subject: Re: [poppler] cmake and static binaries

El diumenge, 10 de setembre de 2017, a les 15:30:46 CEST, Adrian Johnson va
escriure:
> On 10/09/17 06:27, William Bader wrote:
> >> It's not a direct dependency of poppler
> >>
> > Thanks for the draw_lib_dependencies command.
> >
> > It shows that libjbig is a dependency of
> > libtiff. https://imgur.com/a/8WYfY

> >
> >
> > I did normal dynamic builds with no options 'configure;make' in one area
> > and 'cmake .;make' in another area.
> >
> > ldd shows libjbig as a dependency of the autotools libpoppler.so but not
> > the cmake libpoppler.so
> >
> > If it only happens to me, it isn't worth looking at, but if it happens
> > to anyone else, it could be a difference between the default options in
> > autotools and cmake.
>
> pkg-config has a --static option to list libraries required for a static
> build.
>
> $ pkg-config --libs libtiff-4
> -ltiff
>
> $ pkg-config --static --libs libtiff-4
> -ltiff -llzma -ljbig -ljpeg -lz -lm
>
> You can try grepping the CMakeCache.txt. eg
>
> $ grep -i cairo CMakeCache.txt  | grep -i static
>
> shows a variable with static link flags
>
> _pc_cairo_STATIC_LDFLAGS:INTERNAL=-lcairo;-lz;-lgobject-2.0;-lffi;-lglib-2.0
> ;-pthread;-lpcre;-pthread;-lpixman-1;-lfontconfig;-lexpat;-lfreetype;-lexpat
> ;-lfreetype;-lz;-lpng16;-lm;-lz;-lm;-lpng16;-lm;-lz;-lm;-lxcb-shm;-lxcb-rend
> er;-lXrender;-lXext;-lX11;-lpthread;-lxcb;-lXau;-lXdmcp
>
> but
>
> $ grep -i tiff CMakeCache.txt  | grep -i static
>
> does not show any static link flags. For some reason cmake is not
> finding the libtiff static link flags.

Because the only thing we are doing is create a static version of libpoppler,
not static linking the whole world, i.e. pdftotext will not depend of
libpoppler but it'll still link to the other libs).

Cheers,
  Albert

>
> > Since libjbig is a dependency of libtiff and not directly of libpoppler,
> > the difference might be what libpoppler uses in libtiff.
> >
> > The config.h files set different options.
> >
> >
> > $ diff <(grep define auto/poppler-0.59.0/config.h | sort) <(grep define
> > cmake/poppler-0.59.0/config.h | sort)
> > 1,3d0
> > < #  define WORDS_BIGENDIAN 1
> > < # define _DARWIN_USE_64_BIT_INODE 1
> > < # if defined __BIG_ENDIAN__
> > 21a19
> >
> >> #define HAVE_LIBZ 1
> >
> > 30d27
> > < #define HAVE_PTHREAD_PRIO_INHERIT 1
> > 36a34
> >
> >> #define HAVE_SYS_DIR_H 1
> >
> > 40d37
> > < #define HAVE_TIFFIO_H 1
> > 43d39
> > < #define HAVE_ZLIB_H 1
> > 45d40
> > < #define LT_OBJDIR ".libs/"
> > 56d50
> > < #define POPPLER_VERSION "0.59.0"
> > 60d53
> > < #define USE_OPENJPEG1 1
> > 63,64c56,57
> > < #define WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG 1
> > < #if defined AC_APPLE_UNIVERSAL_BUILD
> > ---
> >
> >> #define snprintf _snprintf
> >> #if defined(_MSC_VER) && _MSC_VER < 1900
> >
> > 68a62
> >
> >> /* MS defined snprintf as deprecated but then added it in Visual
> >
> > Studio 2015. */
> >
> > poppler-config.h is different also.
> >
> >
> > $ diff <(grep define auto/poppler-0.59.0/poppler/poppler-config.h | sort
> > -u) <(grep define cmake/poppler-0.59.0/poppler/poppler-config.h | sort -u)
> > 4a5
> >
> >> #define ENABLE_ZLIB 1
> >
> > 9a11
> >
> >> #define HAVE_SYS_DIR_H 1
> >
> > Regards, William

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/poppler/attachments/20170910/02121eeb/attachment.html>


More information about the poppler mailing list