[cairo] cairo is not able to compile with latest commits

Bryce Harrington bryce at osg.samsung.com
Wed Jan 10 01:10:27 UTC 2018


[Adding Behdad and Matthias on CC]

On Fri, Jan 05, 2018 at 05:05:51PM +0000, Perez Rodriguez, Humberto I wrote:
> 
> Hi :
> 
> I am having issues trying to compiling cairo with latest commit,
> someone can help please :)

The error message points at FT_Get_Var_Design_Coordinates as undefined,
which is documented as being introduced at 2.7.1, but Cairo appears to
be requiring 2.1.9.  Looks like a18c0dec and c32a5c74 added this
freetype API, and I also notice FT_Set_Var_Design_Coordinates is used
(and maybe others) - I'm not sure what freetype version provides that,
possibly 2.8.1??

Am I interpreting this error correctly?

If so, easy workaround for you might be to install newer freetype.

However, for Cairo I wonder if this dependency change might be a touch
too aggressive?  Looking at LTS supported versions, Ubuntu 14.04 has
only freetype 2.5.2, and 16.04 has 2.6.1.  I could see maybe dropping
14.04 support (if we haven't already), but we're gonna need to support
16.04 for a few more years.

It happens that I plan to release Cairo 1.16.0 some time this year,
maybe in a few months.  What would folks think if we increase the
freetype requirement to just 2.5 or 2.6 for that release
(conditionalizing the use of the newer APIs), then when 1.17 opens move
to freetype 2.7 or 2.8 (and drop the conditionals)?

Bryce

> make
> Makefile:1502: warning: overriding recipe for target 'recheck'
> Makefile:1140: warning: ignoring old recipe for target 'recheck'
> make  all-recursive
> make[1]: Entering directory '/home/gfx/cairo'
> Makefile:1502: warning: overriding recipe for target 'recheck'
> Makefile:1140: warning: ignoring old recipe for target 'recheck'
> Making all in src
> make[2]: Entering directory '/home/gfx/cairo/src'
>  cd .. && /bin/bash /home/gfx/cairo/build/missing automake-1.15 --
> foreign src/Makefile
> build/configure.ac.system:114: warning: AC_LANG_CONFTEST: no
> AC_LANG_SOURCE call detected in body
> ../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
> ../../lib/autoconf/general.m4:2601: _AC_COMPILE_IFELSE is expanded
> from...
> ../../lib/autoconf/general.m4:2617: AC_COMPILE_IFELSE is expanded
> from...
> build/configure.ac.system:114: the top level
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-
> debug.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> automake-1.15: warning: possible forward-incompatibility.
> automake-1.15: At least a source file is in a subdirectory, but the
> 'subdir-objects'
> automake-1.15: automake option hasn't been enabled.  For now, the
> corresponding output
> automake-1.15: object file(s) will be placed in the top-level
> directory.  However,
> automake-1.15: this behaviour will change in future Automake versions:
> they will
> automake-1.15: unconditionally cause object files to be placed in the
> same subdirectory
> automake-1.15: of the corresponding sources.
> automake-1.15: You are advised to start using 'subdir-objects' option
> throughout your
> automake-1.15: project, to avoid future incompatibilities.
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-
> device.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-gdi-
> compositor.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-
> system.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-
> surface.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-
> display-surface.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:365: warning: source file 'win32/cairo-win32-
> printing-surface.c' is in a subdirectory,
> src/Makefile.sources:365: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:374: warning: source file 'win32/cairo-win32-
> font.c' is in a subdirectory,
> src/Makefile.sources:374: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm.c' is in
> a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-bo.c' is
> in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-
> surface.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-intel.c'
> is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-intel-
> debug.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-intel-
> surface.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i915-
> surface.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i915-
> glyphs.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i915-
> shader.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i915-
> spans.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i965-
> surface.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i965-
> glyphs.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i965-
> shader.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-i965-
> spans.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-intel-
> brw-eu.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-intel-
> brw-eu-emit.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-intel-
> brw-eu-util.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-radeon.c' 
> is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:440: warning: source file 'drm/cairo-drm-radeon-
> surface.c' is in a subdirectory,
> src/Makefile.sources:440: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:459: warning: source file 'drm/cairo-drm-gallium-
> surface.c' is in a subdirectory,
> src/Makefile.sources:459: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:380: warning: source file 'skia/cairo-skia-
> context.cpp' is in a subdirectory,
> src/Makefile.sources:380: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
> src/Makefile.sources:380: warning: source file 'skia/cairo-skia-
> surface.cpp' is in a subdirectory,
> src/Makefile.sources:380: but option 'subdir-objects' is disabled
> src/Makefile.am:4:   'src/Makefile.am.features' included from here
> src/Makefile.am.features:3:   'src/Makefile.sources' included from here
>  cd .. && /bin/bash ./config.status src/Makefile depfiles
> config.status: creating src/Makefile
> config.status: executing depfiles commands
> make  all-am
> make[3]: Entering directory '/home/gfx/cairo/src'
>   CC       cairo-analysis-surface.lo
>   CC       cairo-arc.lo
>   CC       cairo-array.lo
>   CC       cairo-atomic.lo
>   CC       cairo-base64-stream.lo
>   CC       cairo-base85-stream.lo
>   CC       cairo-bentley-ottmann-rectangular.lo
>   CC       cairo-bentley-ottmann-rectilinear.lo
>   CC       cairo-bentley-ottmann.lo
>   CC       cairo-botor-scan-converter.lo
> cairo-bentley-ottmann-rectangular.c: In function
> ‘_cairo_bentley_ottmann_tessellate_rectangular’:
> cairo-bentley-ottmann-rectangular.c:606:18: warning: variable ‘update’
> might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
>      cairo_bool_t update = FALSE;
>                   ^~~~~~
>   CC       cairo-boxes-intersect.lo
>   CC       cairo-boxes.lo
>   CC       cairo-cache.lo
>   CC       cairo-clip-boxes.lo
>   CC       cairo-clip-polygon.lo
>   CC       cairo-clip-region.lo
>   CC       cairo-clip-surface.lo
>   CC       cairo-clip-tor-scan-converter.lo
>   CC       cairo-clip.lo
>   CC       cairo-color.lo
>   CC       cairo-composite-rectangles.lo
>   CC       cairo-compositor.lo
>   CC       cairo-contour.lo
>   CC       cairo-damage.lo
>   CC       cairo-debug.lo
>   CC       cairo-default-context.lo
>   CC       cairo-device.lo
>   CC       cairo-error.lo
>   CC       cairo-fallback-compositor.lo
>   CC       cairo-fixed.lo
>   CC       cairo-font-face-twin-data.lo
>   CC       cairo-font-face-twin.lo
>   CC       cairo-font-face.lo
>   CC       cairo-font-options.lo
>   CC       cairo-freed-pool.lo
>   CC       cairo-freelist.lo
>   CC       cairo-gstate.lo
>   CC       cairo-hash.lo
>   CC       cairo-hull.lo
>   CC       cairo-image-compositor.lo
>   CC       cairo-image-info.lo
>   CC       cairo-image-source.lo
>   CC       cairo-image-surface.lo
>   CC       cairo-line.lo
>   CC       cairo-lzw.lo
>   CC       cairo-mask-compositor.lo
>   CC       cairo-matrix.lo
>   CC       cairo-mempool.lo
>   CC       cairo-mesh-pattern-rasterizer.lo
>   CC       cairo-misc.lo
>   CC       cairo-mono-scan-converter.lo
> cairo-misc.c: In function ‘get_C_locale’:
> cairo-misc.c:806:43: warning: passing argument 1 of
> ‘_cairo_atomic_ptr_get’ from incompatible pointer type [-Wincompatible-
> pointer-types]
>      C = (locale_t) _cairo_atomic_ptr_get (&C_locale);
>                                            ^
> In file included from cairo-reference-count-private.h:40:0,
>                  from cairo-types-private.h:45,
>                  from cairo-error-private.h:43,
>                  from cairoint.h:74,
>                  from cairo-misc.c:41:
> cairo-atomic-private.h:93:1: note: expected ‘void **’ but argument is
> of type ‘struct __locale_struct **’
>  _cairo_atomic_ptr_get (void **x)
>  ^~~~~~~~~~~~~~~~~~~~~
> cairo-misc.c:811:41: warning: passing argument 1 of
> ‘_cairo_atomic_ptr_cmpxchg_impl’ from incompatible pointer type [-
> Wincompatible-pointer-types]
>          if (!_cairo_atomic_ptr_cmpxchg (&C_locale, NULL, C)) {
>                                          ^
> cairo-atomic-private.h:145:34: note: in definition of macro
> ‘_cairo_atomic_ptr_cmpxchg’
>    _cairo_atomic_ptr_cmpxchg_impl(x, oldv, newv)
>                                   ^
> cairo-atomic-private.h:138:1: note: expected ‘void **’ but argument is
> of type ‘struct __locale_struct **’
>  _cairo_atomic_ptr_cmpxchg_impl(void **x, void *oldv, void *newv)
>  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   CC       cairo-mutex.lo
>   CC       cairo-no-compositor.lo
>   CC       cairo-observer.lo
>   CC       cairo-output-stream.lo
>   CC       cairo-paginated-surface.lo
>   CC       cairo-path-bounds.lo
>   CC       cairo-path-fill.lo
>   CC       cairo-path-fixed.lo
>   CC       cairo-path-in-fill.lo
>   CC       cairo-path-stroke-boxes.lo
>   CC       cairo-path-stroke-polygon.lo
>   CC       cairo-path-stroke-traps.lo
>   CC       cairo-path-stroke-tristrip.lo
>   CC       cairo-path-stroke.lo
>   CC       cairo-path.lo
>   CC       cairo-pattern.lo
>   CC       cairo-pen.lo
>   CC       cairo-polygon-intersect.lo
>   CC       cairo-polygon-reduce.lo
>   CC       cairo-polygon.lo
>   CC       cairo-raster-source-pattern.lo
>   CC       cairo-recording-surface.lo
>   CC       cairo-rectangle.lo
>   CC       cairo-rectangular-scan-converter.lo
>   CC       cairo-region.lo
>   CC       cairo-rtree.lo
>   CC       cairo-scaled-font.lo
>   CC       cairo-shape-mask-compositor.lo
>   CC       cairo-slope.lo
>   CC       cairo-spans-compositor.lo
>   CC       cairo-spans.lo
>   CC       cairo-spline.lo
>   CC       cairo-stroke-dash.lo
>   CC       cairo-stroke-style.lo
>   CC       cairo-surface-clipper.lo
>   CC       cairo-surface-fallback.lo
>   CC       cairo-surface-observer.lo
>   CC       cairo-surface-offset.lo
>   CC       cairo-surface-snapshot.lo
>   CC       cairo-surface-subsurface.lo
>   CC       cairo-surface-wrapper.lo
>   CC       cairo-surface.lo
>   CC       cairo-time.lo
>   CC       cairo-tor-scan-converter.lo
>   CC       cairo-tor22-scan-converter.lo
>   CC       cairo-toy-font-face.lo
>   CC       cairo-traps-compositor.lo
>   CC       cairo-traps.lo
>   CC       cairo-tristrip.lo
>   CC       cairo-unicode.lo
>   CC       cairo-user-font.lo
>   CC       cairo-version.lo
>   CC       cairo-wideint.lo
>   CC       cairo.lo
>   CC       cairo-cff-subset.lo
>   CC       cairo-scaled-font-subsets.lo
>   CC       cairo-truetype-subset.lo
>   CC       cairo-type1-fallback.lo
>   CC       cairo-type1-glyph-names.lo
>   CC       cairo-type1-subset.lo
>   CC       cairo-type3-glyph-surface.lo
>   CC       cairo-pdf-operators.lo
>   CC       cairo-pdf-shading.lo
>   CC       cairo-tag-attributes.lo
>   CC       cairo-deflate-stream.lo
>   CC       cairo-xlib-display.lo
>   CC       cairo-xlib-core-compositor.lo
>   CC       cairo-xlib-fallback-compositor.lo
>   CC       cairo-xlib-render-compositor.lo
>   CC       cairo-xlib-screen.lo
>   CC       cairo-xlib-source.lo
>   CC       cairo-xlib-surface.lo
>   CC       cairo-xlib-surface-shm.lo
>   CC       cairo-xlib-visual.lo
>   CC       cairo-xlib-xcb-surface.lo
>   CC       cairo-xcb-connection.lo
>   CC       cairo-xcb-connection-core.lo
>   CC       cairo-xcb-connection-render.lo
>   CC       cairo-xcb-connection-shm.lo
>   CC       cairo-xcb-screen.lo
>   CC       cairo-xcb-shm.lo
>   CC       cairo-xcb-surface.lo
>   CC       cairo-xcb-surface-core.lo
>   CC       cairo-xcb-surface-render.lo
>   CC       cairo-xcb-resources.lo
>   CC       cairo-png.lo
>   CC       cairo-script-surface.lo
>   CC       cairo-ft-font.lo
> cairo-png.c: In function ‘read_png’:
> cairo-png.c:550:15: warning: variable ‘data’ might be clobbered by
> ‘longjmp’ or ‘vfork’ [-Wclobbered]
>      png_byte *data = NULL;
>                ^~~~
> cairo-png.c:551:16: warning: variable ‘row_pointers’ might be clobbered
> by ‘longjmp’ or ‘vfork’ [-Wclobbered]
>      png_byte **row_pointers = NULL;
>                 ^~~~~~~~~~~~
> cairo-ft-font.c: In function ‘_cairo_ft_unscaled_font_init’:
> cairo-ft-font.c:460:7: error: implicit declaration of function
> ‘FT_Get_Var_Design_Coordinates’ [-Werror=implicit-function-declaration]
>        FT_Get_Var_Design_Coordinates (face, ft_mm_var->num_axis,
> unscaled->variations);
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cairo-ft-font.c: In function ‘_cairo_ft_has_color_glyphs’:
> cairo-ft-font.c:3003:9: warning: ignoring return value of
> ‘_cairo_ft_unscaled_font_lock_face’, declared with attribute
> warn_unused_result [-Wunused-result]
>          _cairo_ft_unscaled_font_lock_face (unscaled);
>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   CC       cairo-ps-surface.lo
> cc1: some warnings being treated as errors
> Makefile:2376: recipe for target 'cairo-ft-font.lo' failed
> make[3]: *** [cairo-ft-font.lo] Error 1
> make[3]: *** Waiting for unfinished jobs....
> make[3]: Leaving directory '/home/gfx/cairo/src'
> Makefile:1973: recipe for target 'all' failed
> make[2]: *** [all] Error 2
> make[2]: Leaving directory '/home/gfx/cairo/src'
> Makefile:910: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/home/gfx/cairo'
> Makefile:759: recipe for target 'all' failed
> make: *** [all] Error 2
> 
> 
> 
> Cheers



> -- 
> cairo mailing list
> cairo at cairographics.org
> https://lists.cairographics.org/mailman/listinfo/cairo



More information about the cairo mailing list