Bug 97622

Summary: poppler compilation fails with "./configure --disable-shared"
Product: poppler Reporter: Hanno Böck <hanno>
Component: generalAssignee: poppler-bugs <poppler-bugs>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: failing make output

Description Hanno Böck 2016-09-07 07:47:55 UTC
Created attachment 126269 [details]
failing make output

The --disable-shared parameter of the poppler configure script causes the build to fail later on. Seems to be some linker error.
Affects both current git and version 0.47.0.

(--disable-shared is often very useful for testing - e.g. fuzzing - because one gets the tools as a single executable without dependencies on built libraries and one doesn't have to fiddle around with LD_PRELOAD when testing builds)

Start of error message (will attach full one).

  GISCAN   Poppler-0.18.gir
poppler-action.cc:671: error: undefined reference to '__dynamic_cast'
poppler-action.cc:643: error: undefined reference to '__dynamic_cast'
poppler-action.cc:659: error: undefined reference to '__dynamic_cast'
poppler-action.cc:651: error: undefined reference to '__dynamic_cast'
poppler-action.cc:483: error: undefined reference to 'operator new(unsigned long)'
./.libs/libpoppler-glib.a(libpoppler_glib_la-poppler-action.o):poppler-action.cc:typeinfo for LinkAction: error: undefined reference to 'vtable for __cxxabiv1::__class_type_info'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/bin/ld: the vtable symbol may be undefined because the class is missing its key function
poppler-document.cc:151: error: undefined reference to 'operator new(unsigned long)'
poppler-document.cc:761: error: undefined reference to 'operator new(unsigned long)'
poppler-document.cc:2233: error: undefined reference to 'operator delete(void*)'
poppler-document.cc:2233: error: undefined reference to 'operator delete(void*)'
poppler-document.cc:2212: error: undefined reference to 'operator new(unsigned long)'
poppler-document.cc:474: error: undefined reference to 'operator delete(void*)'
poppler-document.cc:127: error: undefined reference to 'operator delete(void*)'
./.libs/libpoppler-glib.a(libpoppler_glib_la-poppler-cached-file-loader.o):poppler-cached-file-loader.cc:typeinfo for CachedFileLoader: error: undefined reference to 'vtable for __cxxabiv1::__class_type_info'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/bin/ld: the vtable symbol may be undefined because the class is missing its key function
[and many more]
Comment 1 Albert Astals Cid 2016-09-07 20:59:44 UTC
I'm personally not interested in supporting non shared library builds.

Patches welcome.
Comment 2 GitLab Migration User 2018-08-21 10:45:29 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/poppler/poppler/issues/356.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.