Bug 27058

Summary: Build without xrender broken
Product: cairo Reporter: Marc-Andre Lureau <marcandre.lureau>
Component: xlib backendAssignee: Carl Worth <cworth>
Status: RESOLVED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium    
Version: 1.9.7   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Marc-Andre Lureau 2010-03-13 05:36:08 UTC
cairo (version 1.9.7 [git]) will be compiled with:

The following surface backends:
  Image:         yes (always builtin)
  Meta:          yes (always builtin)
  Tee:           yes (always builtin)
  XML:           yes
  Skia:          no (disabled, use --enable-skia to enable)
  Xlib:          yes
  Xlib Xrender:  no (requires  http://freedesktop.org/Software/xlibs)
  Qt:            no (disabled, use --enable-qt to enable)
  Quartz:        no (requires CoreGraphics framework)
  Quartz-image:  no (disabled, use --enable-quartz-image to enable)
  XCB:           no (disabled, use --enable-xcb to enable)
  Win32:         no (requires a Win32 platform)
  OS2:           no (disabled, use --enable-os2 to enable)
  CairoScript:   no (disabled, use --enable-script to enable)
  PostScript:    yes
  PDF:           yes
  SVG:           yes
  OpenGL:        no (disabled, use --enable-gl to enable)
  BeOS:          no (disabled, use --enable-beos to enable)
  DirectFB:      no (disabled, use --enable-directfb to enable)
  OpenVG:        no (disabled, use --enable-vg to enable)
  DRM:           no (disabled, use --enable-drm to enable)

The following font backends:
  User:          yes (always builtin)
  FreeType:      yes
  Fontconfig:    yes
  Win32:         no (requires a Win32 platform)
  Quartz:        no (requires CoreGraphics framework)

The following functions:
  PNG functions:   yes
  GLEW functions:  no (not required by any backend)
  GLX functions:   no (not required by any backend)
  EGL functions:   no (not required by any backend)
  X11-xcb functions: no (disabled, use --enable-xlib-xcb to enable)
  XCB-drm functions: no (disabled, use --enable-xcb-drm to enable)
  XCB-shm functions: yes

The following features and utilies:
  cairo-trace:                yes
  cairo-script-interpreter:   yes

And the following internal features:
  pthread:       yes
  gtk-doc:       no
  gcov support:  no
  symbol-lookup: yes
  test surfaces: yes
  ps testing:    no (requires libspectre)
  pdf testing:   no (requires poppler-glib >= 0.9.2)
  svg testing:   no (requires librsvg-2.0 >= 2.15.0)

[...]

  CC    cairo-ft-font.o
cairo-xlib-screen.c: In function ‘_cairo_xlib_screen_get’:
cairo-xlib-screen.c:366: error: implicit declaration of function ‘_int_consume’
cairo-xlib-screen.c:366: warning: nested extern declaration of ‘_int_consume’
cairo-xlib-screen.c:367: error: implicit declaration of function ‘_voidp_consume’
cairo-xlib-screen.c:367: warning: nested extern declaration of ‘_voidp_consume’
make[3]: *** [cairo-xlib-screen.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
  CC    cairo-ps-surface.o
cairo-xlib-surface.c:151: error: ‘_voidp_consume’ undeclared here (not in a function)
cairo-xlib-surface.c:151: warning: type defaults to ‘int’ in declaration of ‘_voidp_consume’
cairo-xlib-surface.c: In function ‘_cairo_xlib_surface_finish’:
cairo-xlib-surface.c:382: error: ‘_void_consume_free’ undeclared (first use in this function)
cairo-xlib-surface.c:382: error: (Each undeclared identifier is reported only once
cairo-xlib-surface.c:382: error: for each function it appears in.)
cairo-xlib-surface.c:403: error: implicit declaration of function ‘_void_consume_free’
cairo-xlib-surface.c:403: warning: nested extern declaration of ‘_void_consume_free’
cairo-xlib-surface.c: In function ‘_cairo_xlib_surface_ensure_src_picture’:
cairo-xlib-surface.c:944: error: implicit declaration of function ‘_int_consume’
cairo-xlib-surface.c:944: warning: nested extern declaration of ‘_int_consume’
cairo-xlib-surface.c: In function ‘_cairo_xlib_surface_set_picture_clip_rects’:
cairo-xlib-surface.c:955: error: implicit declaration of function ‘_void_consume’
cairo-xlib-surface.c:955: warning: nested extern declaration of ‘_void_consume’
cairo-xlib-surface.c: In function ‘_cairo_xlib_surface_is_similar’:
cairo-xlib-surface.c:2775: error: called object ‘_voidp_consume’ is not a function
cairo-xlib-surface.c: In function ‘_cairo_xlib_surface_create_internal’:
cairo-xlib-surface.c:2939: error: called object ‘_voidp_consume’ is not a function
cairo-xlib-surface.c: In function ‘cairo_xlib_surface_set_drawable’:
cairo-xlib-surface.c:3325: error: ‘_void_consume_free’ undeclared (first use in this function)
cairo-xlib-surface.c: In function ‘_cairo_xlib_surface_scaled_font_fini’:
cairo-xlib-surface.c:3654: error: ‘_void_consume_free’ undeclared (first use in this function)
cairo-xlib-surface.c: In function ‘_emit_glyphs_chunk’:
cairo-xlib-surface.c:4113: error: ‘_void_consume’ undeclared (first use in this function)
make[3]: *** [cairo-xlib-surface.lo] Error 1
cairo-xlib-display.c: In function ‘_cairo_xlib_display_get’:
cairo-xlib-display.c:286: error: implicit declaration of function ‘_int_consume’
cairo-xlib-display.c:286: warning: nested extern declaration of ‘_int_consume’
cairo-xlib-display.c: In function ‘_cairo_xlib_display_get_xrender_format’:
cairo-xlib-display.c:600: error: implicit declaration of function ‘_voidp_consume’
cairo-xlib-display.c:600: warning: nested extern declaration of ‘_voidp_consume’
cairo-xlib-display.c:601: warning: assignment makes pointer from integer without a cast
make[3]: *** [cairo-xlib-display.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

It looks like it's defined only in xrender includes:

src/cairo-xlib-xrender-private.h:__attribute__((__unused__)) static int    _int_consume         (void *p, ...)   { return 0; }

thanks
Comment 1 Andrea Canciani 2010-10-30 08:09:27 UTC
This commit fixed the compilation.

commit d209b40c64bddeb0d830678bc2f84e1016fed879
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 1 20:36:15 2010 +0100

    xlib: Rearrange xrender stubs to restore compilation without xrender.h

Thank you for your report!

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.