GNOME Bugzilla – Bug 673404
pango/pangocairo.def (or the makefile) makes wrong assumptions
Last modified: 2018-05-22 13:02:57 UTC
The following lines: pango_cairo_fc_font_get_type pango_cairo_fc_font_map_get_type are commented-out in pangocairo.def. My guess is that pango assumes W32 == MSVC, and (again, it's a guess; i don't have MSVC to check it) the developers think that pango can't be built with fontconfig support on W32. Which is wrong. Or maybe makefile incorrectly assumes that anything built on W32 has to be linked with -export-symbols $(srcdir)/pangocairo.def (which is not entirely correct - you can link easily without -export-symbols, although that will export everything; OTOH, i haven't seen developers on other platforms complaining about exporting everything, so maybe this is not an issue...) Anyway, these two functions are included in pango.types (again, a shortsighted assumption that gtk-doc will never be invoked on W32), and their absence in libpangocairo prevents documentation from being built (not to mention that they don't make it into binaries either!).
As of https://git.gnome.org/browse/pango/commit/?id=1147da131ad13e583e73fed956e5c944e1497bf4 the .def files no longer exist. Can this be closed?
The part about .def file is not applicable anymore indeed. The part about FC functions breaking documentation building is still applicable. For example, if i patch configure.ac to prevent it from finding fontconfig and freetype, pango itself builds just fine, but documentation fails: pango-1.0-1.40.4-1\bld\docs/pango-scan.c:45: undefined reference to `pango_cairo_fc_font_map_get_type' pango-1.0-1.40.4-1\bld\docs/pango-scan.c:56: undefined reference to `pango_fc_decoder_get_type' pango-1.0-1.40.4-1\bld\docs/pango-scan.c:57: undefined reference to `pango_fc_font_get_type' pango-1.0-1.40.4-1\bld\docs/pango-scan.c:58: undefined reference to `pango_fc_font_map_get_type' pango-1.0-1.40.4-1\bld\docs/pango-scan.c:68: undefined reference to `pango_ft2_font_map_get_type' pango-1.0-1.40.4-1\bld\docs/pango-scan.c:80: undefined reference to `pango_ot_info_get_type' pango-1.0-1.40.4-1\bld\docs/pango-scan.c:81: undefined reference to `pango_ot_ruleset_get_type' My guess is that this piece of docs makefile.am is responsible: pango.types: @echo "Rebuilding $@" @LANG=C; LIST=$$(find $(HFILE_FIND) -exec grep -H 'pango_[_a-zA-Z0-9]*_get_type' {} \; | grep -v '\(private\|atsui\|core_text\|win32\)' | sed 's/\([^:]*:\).*\(pango[_a-zA-Z0-9]*_get_type\).*/\1\2/') && \ echo "$$LIST" | sed 's/.*\/\(pango\/.*\):.*/#include <\1>/' | sort -u > $@.tmp && \ echo >> $@.tmp && \ echo "$$LIST" | cut -d : -f 2 | sort -u >> $@.tmp && \ mv $@.tmp $@ Note that at this point my interest in this is mostly academic, as i no longer build pango without fontconfig backend (in fact, as mentioned above, i have to hack pango in order to prevent FC backend from being built).
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME'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.gnome.org/GNOME/pango/issues/201.