[cairo-commit] 4 commits - pixman/src RELEASING src/cairo.c src/cairo-font.c src/cairo-font-options.c src/cairo-ft-font.c src/cairo-ft-private.h src/cairo-image-surface.c src/cairoint.h src/cairo-matrix.c src/cairo-pattern.c src/cairo-png.c src/cairo-scaled-font.c src/cairo-surface.c src/cairo-xlib-private.h src/cairo-xlib-surface.c src/test-fallback-surface.c

Carl Worth cworth at kemper.freedesktop.org
Tue Sep 5 17:22:41 PDT 2006


 RELEASING                   |   30 +++++++++++
 pixman/src/fbmmx.h          |   21 +++++++
 pixman/src/icimage.h        |    2 
 pixman/src/pixman.h         |  108 ++++++++++++++++++++++------------------
 pixman/src/renderedge.h     |   10 +--
 src/cairo-font-options.c    |    9 +++
 src/cairo-font.c            |    2 
 src/cairo-ft-font.c         |    3 +
 src/cairo-ft-private.h      |    7 +-
 src/cairo-image-surface.c   |    4 +
 src/cairo-matrix.c          |    1 
 src/cairo-pattern.c         |    8 +++
 src/cairo-png.c             |    1 
 src/cairo-scaled-font.c     |    9 +++
 src/cairo-surface.c         |   10 +++
 src/cairo-xlib-private.h    |    7 ++
 src/cairo-xlib-surface.c    |    1 
 src/cairo.c                 |   12 ++++
 src/cairoint.h              |  116 ++++++++++++++++++++++++++++++++------------
 src/test-fallback-surface.c |    3 +
 20 files changed, 276 insertions(+), 88 deletions(-)

New commits:
diff-tree 4620b929ae84dfa08c1c9a4072e114f6b38e1bd9 (from 60c4add26abe6b624d7569f35fa846d529ccea18)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Sep 5 17:12:43 2006 -0700

    RELEASING: Add note on checking for local symbol PLT entries.

diff --git a/RELEASING b/RELEASING
index b46a64a..3190072 100644
--- a/RELEASING
+++ b/RELEASING
@@ -18,6 +18,36 @@ Here are the steps to follow to create a
 	(But the tar file isn't actually ready yet, as we still have
 	some more steps to follow).
 
+2.a) Verify that there are no local symbol PLT entries.
+
+	XXX: Currently this is a manual step, but it would be nice to
+	get all the support for this integrated automatically into
+	make distcheck. (An alternative approach would automate the
+	generation of the aliases such as is done for fontconfig
+	rather than maintaining these manually with the slim_hidden
+	macros).
+
+	For now, here's what you need:
+
+	1. The elfutils package for your distribution
+	2. The relinfo.pl scritp available here:
+
+		http://people.freedesktop.org/~keithp/relinfo.pl
+
+	Then run the following command:
+
+		relinfo.pl src/.libs/libcairo.so
+
+	And ensure that it reports "0 for local syms". If not, then
+	run the following:
+
+		eu-readelf -r src/.libs/libcairo.so
+
+	And look for the symbols related to cairo in the relocation
+	section. For each of these, a call to slim_hidden_def and
+	slim_hidden_proto is needed in the cairo implementation in the
+	style of other similar calls.
+
 3) Fill out an entry in the NEWS file
 
 	Sift through the logs since the last release. This is most
diff-tree 60c4add26abe6b624d7569f35fa846d529ccea18 (from d7f08794ef194d0b86a749381472bfeb0a32d993)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Sep 5 16:52:34 2006 -0700

    slim_hidden_proto: Move smeicolon from definition to use for consistency and legibility

diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
index 5457e3b..3e28f5e 100644
--- a/src/cairo-ft-private.h
+++ b/src/cairo-ft-private.h
@@ -67,9 +67,9 @@ _cairo_ft_unscaled_font_unlock_face (cai
 cairo_private cairo_bool_t
 _cairo_ft_scaled_font_is_vertical (cairo_scaled_font_t *scaled_font);
 
-slim_hidden_proto(cairo_ft_font_options_substitute)
-slim_hidden_proto(cairo_ft_scaled_font_lock_face)
-slim_hidden_proto(cairo_ft_scaled_font_unlock_face)
+slim_hidden_proto (cairo_ft_font_options_substitute);
+slim_hidden_proto (cairo_ft_scaled_font_lock_face);
+slim_hidden_proto (cairo_ft_scaled_font_unlock_face);
 
 CAIRO_END_DECLS
 
diff --git a/src/cairo-xlib-private.h b/src/cairo-xlib-private.h
index 053cae7..ddac05a 100644
--- a/src/cairo-xlib-private.h
+++ b/src/cairo-xlib-private.h
@@ -54,7 +54,7 @@ _cairo_xlib_screen_info_get (Display *di
 #if CAIRO_HAS_XLIB_XRENDER_SURFACE
 
 #include "cairo-xlib-xrender.h"
-slim_hidden_proto (cairo_xlib_surface_create_with_xrender_format)
+slim_hidden_proto (cairo_xlib_surface_create_with_xrender_format);
 
 #endif
 
diff --git a/src/cairoint.h b/src/cairoint.h
index 0de43a9..bf7d288 100644
--- a/src/cairoint.h
+++ b/src/cairoint.h
@@ -73,7 +73,7 @@ CAIRO_BEGIN_DECLS
 # define slim_hidden_proto1(name, internal)				\
   extern __typeof (name) name						\
 	__asm__ (slim_hidden_asmname (internal))			\
-	cairo_private;
+	cairo_private
 # define slim_hidden_def1(name, internal)				\
   extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name))	\
 	__attribute__((__alias__(slim_hidden_asmname(internal))))
@@ -2308,88 +2308,88 @@ cairo_private int
 _cairo_dtostr (char *buffer, size_t size, double d);
 
 /* Avoid unnecessary PLT entries.  */
-slim_hidden_proto(cairo_clip_preserve)
-slim_hidden_proto(cairo_close_path)
-slim_hidden_proto(cairo_create)
-slim_hidden_proto(cairo_curve_to)
-slim_hidden_proto(cairo_destroy)
-slim_hidden_proto(cairo_fill_preserve)
-slim_hidden_proto(cairo_font_face_destroy)
-slim_hidden_proto(cairo_font_face_reference)
-slim_hidden_proto(cairo_font_options_create)
-slim_hidden_proto(cairo_font_options_destroy)
-slim_hidden_proto(cairo_font_options_equal)
-slim_hidden_proto(cairo_font_options_hash)
-slim_hidden_proto(cairo_font_options_merge)
-slim_hidden_proto(cairo_font_options_set_antialias)
-slim_hidden_proto(cairo_font_options_set_hint_metrics)
-slim_hidden_proto(cairo_font_options_set_hint_style)
-slim_hidden_proto(cairo_font_options_set_subpixel_order)
-slim_hidden_proto(cairo_get_current_point)
-slim_hidden_proto(cairo_get_matrix)
-slim_hidden_proto(cairo_get_tolerance)
-slim_hidden_proto(cairo_image_surface_create)
-slim_hidden_proto(cairo_image_surface_create_for_data)
-slim_hidden_proto(cairo_image_surface_get_height)
-slim_hidden_proto(cairo_image_surface_get_width)
-slim_hidden_proto(cairo_line_to)
-slim_hidden_proto(cairo_mask)
-slim_hidden_proto(cairo_matrix_init)
-slim_hidden_proto(cairo_matrix_init_identity)
-slim_hidden_proto(cairo_matrix_init_rotate)
-slim_hidden_proto(cairo_matrix_init_scale)
-slim_hidden_proto(cairo_matrix_init_translate)
-slim_hidden_proto(cairo_matrix_invert)
-slim_hidden_proto(cairo_matrix_multiply)
-slim_hidden_proto(cairo_matrix_scale)
-slim_hidden_proto(cairo_matrix_transform_distance)
-slim_hidden_proto(cairo_matrix_transform_point)
-slim_hidden_proto(cairo_matrix_translate)
-slim_hidden_proto(cairo_move_to)
-slim_hidden_proto(cairo_new_path)
-slim_hidden_proto(cairo_paint)
-slim_hidden_proto(cairo_pattern_create_for_surface)
-slim_hidden_proto(cairo_pattern_create_rgb)
-slim_hidden_proto(cairo_pattern_create_rgba)
-slim_hidden_proto(cairo_pattern_destroy)
-slim_hidden_proto(cairo_pattern_get_extend)
-slim_hidden_proto(cairo_pattern_get_type)
-slim_hidden_proto(cairo_pattern_reference)
-slim_hidden_proto(cairo_pattern_set_matrix)
-slim_hidden_proto(cairo_pop_group)
-slim_hidden_proto(cairo_pop_group_to_source)
-slim_hidden_proto(cairo_push_group)
-slim_hidden_proto(cairo_push_group_with_content)
-slim_hidden_proto(cairo_rel_line_to)
-slim_hidden_proto(cairo_restore)
-slim_hidden_proto(cairo_save)
-slim_hidden_proto(cairo_scaled_font_create)
-slim_hidden_proto(cairo_scaled_font_destroy)
-slim_hidden_proto(cairo_scaled_font_extents)
-slim_hidden_proto(cairo_scaled_font_get_ctm)
-slim_hidden_proto(cairo_scaled_font_get_font_face)
-slim_hidden_proto(cairo_scaled_font_get_font_matrix)
-slim_hidden_proto(cairo_scaled_font_get_font_options)
-slim_hidden_proto(cairo_scaled_font_glyph_extents)
-slim_hidden_proto(cairo_scaled_font_reference)
-slim_hidden_proto(cairo_set_operator)
-slim_hidden_proto(cairo_set_source)
-slim_hidden_proto(cairo_set_source_surface)
-slim_hidden_proto(cairo_status)
-slim_hidden_proto(cairo_stroke_preserve)
-slim_hidden_proto(cairo_surface_create_similar)
-slim_hidden_proto(cairo_surface_destroy)
-slim_hidden_proto(cairo_surface_finish)
-slim_hidden_proto(cairo_surface_get_content)
-slim_hidden_proto(cairo_surface_get_device_offset)
-slim_hidden_proto(cairo_surface_get_font_options)
-slim_hidden_proto(cairo_surface_get_type)
-slim_hidden_proto(cairo_surface_mark_dirty_rectangle)
-slim_hidden_proto(cairo_surface_reference)
-slim_hidden_proto(cairo_surface_set_device_offset)
-slim_hidden_proto(cairo_surface_set_fallback_resolution)
-slim_hidden_proto(cairo_surface_status)
-slim_hidden_proto(cairo_surface_write_to_png_stream)
+slim_hidden_proto (cairo_clip_preserve);
+slim_hidden_proto (cairo_close_path);
+slim_hidden_proto (cairo_create);
+slim_hidden_proto (cairo_curve_to);
+slim_hidden_proto (cairo_destroy);
+slim_hidden_proto (cairo_fill_preserve);
+slim_hidden_proto (cairo_font_face_destroy);
+slim_hidden_proto (cairo_font_face_reference);
+slim_hidden_proto (cairo_font_options_create);
+slim_hidden_proto (cairo_font_options_destroy);
+slim_hidden_proto (cairo_font_options_equal);
+slim_hidden_proto (cairo_font_options_hash);
+slim_hidden_proto (cairo_font_options_merge);
+slim_hidden_proto (cairo_font_options_set_antialias);
+slim_hidden_proto (cairo_font_options_set_hint_metrics);
+slim_hidden_proto (cairo_font_options_set_hint_style);
+slim_hidden_proto (cairo_font_options_set_subpixel_order);
+slim_hidden_proto (cairo_get_current_point);
+slim_hidden_proto (cairo_get_matrix);
+slim_hidden_proto (cairo_get_tolerance);
+slim_hidden_proto (cairo_image_surface_create);
+slim_hidden_proto (cairo_image_surface_create_for_data);
+slim_hidden_proto (cairo_image_surface_get_height);
+slim_hidden_proto (cairo_image_surface_get_width);
+slim_hidden_proto (cairo_line_to);
+slim_hidden_proto (cairo_mask);
+slim_hidden_proto (cairo_matrix_init);
+slim_hidden_proto (cairo_matrix_init_identity);
+slim_hidden_proto (cairo_matrix_init_rotate);
+slim_hidden_proto (cairo_matrix_init_scale);
+slim_hidden_proto (cairo_matrix_init_translate);
+slim_hidden_proto (cairo_matrix_invert);
+slim_hidden_proto (cairo_matrix_multiply);
+slim_hidden_proto (cairo_matrix_scale);
+slim_hidden_proto (cairo_matrix_transform_distance);
+slim_hidden_proto (cairo_matrix_transform_point);
+slim_hidden_proto (cairo_matrix_translate);
+slim_hidden_proto (cairo_move_to);
+slim_hidden_proto (cairo_new_path);
+slim_hidden_proto (cairo_paint);
+slim_hidden_proto (cairo_pattern_create_for_surface);
+slim_hidden_proto (cairo_pattern_create_rgb);
+slim_hidden_proto (cairo_pattern_create_rgba);
+slim_hidden_proto (cairo_pattern_destroy);
+slim_hidden_proto (cairo_pattern_get_extend);
+slim_hidden_proto (cairo_pattern_get_type);
+slim_hidden_proto (cairo_pattern_reference);
+slim_hidden_proto (cairo_pattern_set_matrix);
+slim_hidden_proto (cairo_pop_group);
+slim_hidden_proto (cairo_pop_group_to_source);
+slim_hidden_proto (cairo_push_group);
+slim_hidden_proto (cairo_push_group_with_content);
+slim_hidden_proto (cairo_rel_line_to);
+slim_hidden_proto (cairo_restore);
+slim_hidden_proto (cairo_save);
+slim_hidden_proto (cairo_scaled_font_create);
+slim_hidden_proto (cairo_scaled_font_destroy);
+slim_hidden_proto (cairo_scaled_font_extents);
+slim_hidden_proto (cairo_scaled_font_get_ctm);
+slim_hidden_proto (cairo_scaled_font_get_font_face);
+slim_hidden_proto (cairo_scaled_font_get_font_matrix);
+slim_hidden_proto (cairo_scaled_font_get_font_options);
+slim_hidden_proto (cairo_scaled_font_glyph_extents);
+slim_hidden_proto (cairo_scaled_font_reference);
+slim_hidden_proto (cairo_set_operator);
+slim_hidden_proto (cairo_set_source);
+slim_hidden_proto (cairo_set_source_surface);
+slim_hidden_proto (cairo_status);
+slim_hidden_proto (cairo_stroke_preserve);
+slim_hidden_proto (cairo_surface_create_similar);
+slim_hidden_proto (cairo_surface_destroy);
+slim_hidden_proto (cairo_surface_finish);
+slim_hidden_proto (cairo_surface_get_content);
+slim_hidden_proto (cairo_surface_get_device_offset);
+slim_hidden_proto (cairo_surface_get_font_options);
+slim_hidden_proto (cairo_surface_get_type);
+slim_hidden_proto (cairo_surface_mark_dirty_rectangle);
+slim_hidden_proto (cairo_surface_reference);
+slim_hidden_proto (cairo_surface_set_device_offset);
+slim_hidden_proto (cairo_surface_set_fallback_resolution);
+slim_hidden_proto (cairo_surface_status);
+slim_hidden_proto (cairo_surface_write_to_png_stream);
 
 CAIRO_END_DECLS
 
diff --git a/src/test-fallback-surface.c b/src/test-fallback-surface.c
index 8d3ebda..479c8ef 100644
--- a/src/test-fallback-surface.c
+++ b/src/test-fallback-surface.c
@@ -64,7 +64,7 @@ typedef struct _test_fallback_surface {
 
 const cairo_private cairo_surface_backend_t test_fallback_surface_backend;
 
-slim_hidden_proto (_test_fallback_surface_create)
+slim_hidden_proto (_test_fallback_surface_create);
 
 cairo_surface_t *
 _test_fallback_surface_create (cairo_content_t	content,
diff-tree d7f08794ef194d0b86a749381472bfeb0a32d993 (from e06246b9b1015eb89112f628d5820fcb350a7335)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Sep 5 16:48:49 2006 -0700

    Add many missing slim_hidden calls to bypass PLT entries for local use of public functions

diff --git a/src/cairo-font-options.c b/src/cairo-font-options.c
index e3a5f75..2b0cd98 100644
--- a/src/cairo-font-options.c
+++ b/src/cairo-font-options.c
@@ -95,6 +95,7 @@ cairo_font_options_create (void)
 
     return options;
 }
+slim_hidden_def (cairo_font_options_create);
 
 /**
  * cairo_font_options_copy:
@@ -137,6 +138,7 @@ cairo_font_options_destroy (cairo_font_o
 
     free (options);
 }
+slim_hidden_def (cairo_font_options_destroy);
 
 /**
  * cairo_font_options_status:
@@ -182,6 +184,7 @@ cairo_font_options_merge (cairo_font_opt
     if (other->hint_metrics != CAIRO_HINT_METRICS_DEFAULT)
 	options->hint_metrics = other->hint_metrics;
 }
+slim_hidden_def (cairo_font_options_merge);
 
 /**
  * cairo_font_options_equal:
@@ -201,6 +204,7 @@ cairo_font_options_equal (const cairo_fo
 	    options->hint_style == other->hint_style &&
 	    options->hint_metrics == other->hint_metrics);
 }
+slim_hidden_def (cairo_font_options_equal);
 
 /**
  * cairo_font_options_hash:
@@ -222,6 +226,7 @@ cairo_font_options_hash (const cairo_fon
 	    (options->hint_style << 8) |
 	    (options->hint_metrics << 16));
 }
+slim_hidden_def (cairo_font_options_hash);
 
 /**
  * cairo_font_options_set_antialias:
@@ -240,6 +245,7 @@ cairo_font_options_set_antialias (cairo_
 
     options->antialias = antialias;
 }
+slim_hidden_def (cairo_font_options_set_antialias);
 
 /**
  * cairo_font_options_get_antialias:
@@ -275,6 +281,7 @@ cairo_font_options_set_subpixel_order (c
 
     options->subpixel_order = subpixel_order;
 }
+slim_hidden_def (cairo_font_options_set_subpixel_order);
 
 /**
  * cairo_font_options_get_subpixel_order:
@@ -310,6 +317,7 @@ cairo_font_options_set_hint_style (cairo
 
     options->hint_style = hint_style;
 }
+slim_hidden_def (cairo_font_options_set_hint_style);
 
 /**
  * cairo_font_options_get_hint_style:
@@ -345,6 +353,7 @@ cairo_font_options_set_hint_metrics (cai
 
     options->hint_metrics = hint_metrics;
 }
+slim_hidden_def (cairo_font_options_set_hint_metrics);
 
 /**
  * cairo_font_options_get_hint_metrics:
diff --git a/src/cairo-font.c b/src/cairo-font.c
index fc68aff..3730686 100644
--- a/src/cairo-font.c
+++ b/src/cairo-font.c
@@ -93,6 +93,7 @@ cairo_font_face_reference (cairo_font_fa
 
     return font_face;
 }
+slim_hidden_def (cairo_font_face_reference);
 
 /**
  * cairo_font_face_destroy:
@@ -129,6 +130,7 @@ cairo_font_face_destroy (cairo_font_face
 
     free (font_face);
 }
+slim_hidden_def (cairo_font_face_destroy);
 
 /**
  * cairo_font_face_get_type:
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
index 38897a8..25fabc9 100644
--- a/src/cairo-ft-font.c
+++ b/src/cairo-ft-font.c
@@ -552,6 +552,7 @@ _cairo_ft_unscaled_font_lock_face (cairo
 
     return face;
 }
+slim_hidden_def (cairo_ft_scaled_font_lock_face);
 
 /* Unlock unscaled font locked with _cairo_ft_unscaled_font_lock_face
  */
@@ -562,6 +563,7 @@ _cairo_ft_unscaled_font_unlock_face (cai
 
     unscaled->lock--;
 }
+slim_hidden_def (cairo_ft_scaled_font_unlock_face);
 
 static void
 _compute_transform (cairo_ft_font_transform_t *sf,
@@ -2268,6 +2270,7 @@ cairo_ft_font_options_substitute (const 
 #endif
     }
 }
+slim_hidden_def (cairo_ft_font_options_substitute);
 
 /**
  * cairo_ft_font_face_create_for_pattern:
diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
index 34c5d9c..5457e3b 100644
--- a/src/cairo-ft-private.h
+++ b/src/cairo-ft-private.h
@@ -64,11 +64,14 @@ _cairo_ft_unscaled_font_lock_face (cairo
 cairo_private void
 _cairo_ft_unscaled_font_unlock_face (cairo_ft_unscaled_font_t *unscaled);
 
-cairo_bool_t
+cairo_private cairo_bool_t
 _cairo_ft_scaled_font_is_vertical (cairo_scaled_font_t *scaled_font);
 
+slim_hidden_proto(cairo_ft_font_options_substitute)
+slim_hidden_proto(cairo_ft_scaled_font_lock_face)
+slim_hidden_proto(cairo_ft_scaled_font_unlock_face)
+
 CAIRO_END_DECLS
 
 #endif /* CAIRO_HAS_FT_FONT */
-
 #endif /* CAIRO_FT_PRIVATE_H */
diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c
index 86562b9..49a4638 100644
--- a/src/cairo-image-surface.c
+++ b/src/cairo-image-surface.c
@@ -275,6 +275,7 @@ cairo_image_surface_create (cairo_format
 
     return surface;
 }
+slim_hidden_def (cairo_image_surface_create);
 
 cairo_surface_t *
 _cairo_image_surface_create_with_content (cairo_content_t	content,
@@ -354,6 +355,7 @@ cairo_image_surface_create_for_data (uns
 
     return surface;
 }
+slim_hidden_def (cairo_image_surface_create_for_data);
 
 cairo_surface_t *
 _cairo_image_surface_create_for_data_with_content (unsigned char	*data,
@@ -440,6 +442,7 @@ cairo_image_surface_get_width (cairo_sur
 
     return image_surface->width;
 }
+slim_hidden_def (cairo_image_surface_get_width);
 
 /**
  * cairo_image_surface_get_height:
@@ -461,6 +464,7 @@ cairo_image_surface_get_height (cairo_su
 
     return image_surface->height;
 }
+slim_hidden_def (cairo_image_surface_get_height);
 
 /**
  * cairo_image_surface_get_stride:
diff --git a/src/cairo-matrix.c b/src/cairo-matrix.c
index e418ef3..60cdca3 100644
--- a/src/cairo-matrix.c
+++ b/src/cairo-matrix.c
@@ -170,6 +170,7 @@ cairo_matrix_translate (cairo_matrix_t *
 
     cairo_matrix_multiply (matrix, &tmp, matrix);
 }
+slim_hidden_def (cairo_matrix_translate);
 
 /**
  * cairo_matrix_init_scale:
diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
index ebdb136..a859e52 100644
--- a/src/cairo-pattern.c
+++ b/src/cairo-pattern.c
@@ -331,6 +331,7 @@ cairo_pattern_create_rgb (double red, do
 
     return pattern;
 }
+slim_hidden_def (cairo_pattern_create_rgb);
 
 /**
  * cairo_pattern_create_rgba:
@@ -373,6 +374,7 @@ cairo_pattern_create_rgba (double red, d
 
     return pattern;
 }
+slim_hidden_def (cairo_pattern_create_rgba);
 
 /**
  * cairo_pattern_create_for_surface:
@@ -410,6 +412,7 @@ cairo_pattern_create_for_surface (cairo_
 
     return &pattern->base;
 }
+slim_hidden_def (cairo_pattern_create_for_surface);
 
 /**
  * cairo_pattern_create_linear:
@@ -523,6 +526,7 @@ cairo_pattern_reference (cairo_pattern_t
 
     return pattern;
 }
+slim_hidden_def (cairo_pattern_reference);
 
 /**
  * cairo_pattern_get_type:
@@ -540,6 +544,7 @@ cairo_pattern_get_type (cairo_pattern_t 
 {
     return pattern->type;
 }
+slim_hidden_def (cairo_pattern_get_type);
 
 /**
  * cairo_pattern_status:
@@ -583,6 +588,7 @@ cairo_pattern_destroy (cairo_pattern_t *
     _cairo_pattern_fini (pattern);
     free (pattern);
 }
+slim_hidden_def (cairo_pattern_destroy);
 
 static void
 _cairo_pattern_add_color_stop (cairo_gradient_pattern_t *pattern,
@@ -764,6 +770,7 @@ cairo_pattern_set_matrix (cairo_pattern_
 
     pattern->matrix = *matrix;
 }
+slim_hidden_def (cairo_pattern_set_matrix);
 
 /**
  * cairo_pattern_get_matrix:
@@ -827,6 +834,7 @@ cairo_pattern_get_extend (cairo_pattern_
 {
     return pattern->extend;
 }
+slim_hidden_def (cairo_pattern_get_extend);
 
 void
 _cairo_pattern_transform (cairo_pattern_t	*pattern,
diff --git a/src/cairo-png.c b/src/cairo-png.c
index 3155cad..3b33b54 100644
--- a/src/cairo-png.c
+++ b/src/cairo-png.c
@@ -287,6 +287,7 @@ cairo_surface_write_to_png_stream (cairo
 
     return write_png (surface, stream_write_func, &png_closure);
 }
+slim_hidden_def (cairo_surface_write_to_png_stream);
 
 static INLINE int
 multiply_alpha (int alpha, int color)
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
index 9a13fb7..3f028db 100644
--- a/src/cairo-scaled-font.c
+++ b/src/cairo-scaled-font.c
@@ -493,6 +493,7 @@ UNWIND_FONT_MAP_LOCK:
 UNWIND:
     return NULL;
 }
+slim_hidden_def (cairo_scaled_font_create);
 
 /**
  * cairo_scaled_font_reference:
@@ -551,6 +552,7 @@ cairo_scaled_font_reference (cairo_scale
 
     return scaled_font;
 }
+slim_hidden_def (cairo_scaled_font_reference);
 
 /**
  * cairo_scaled_font_destroy:
@@ -611,6 +613,7 @@ cairo_scaled_font_destroy (cairo_scaled_
     }
     _cairo_scaled_font_map_unlock ();
 }
+slim_hidden_def (cairo_scaled_font_destroy);
 
 /* Public font API follows. */
 
@@ -627,6 +630,7 @@ cairo_scaled_font_extents (cairo_scaled_
 {
     *extents = scaled_font->extents;
 }
+slim_hidden_def (cairo_scaled_font_extents);
 
 /**
  * cairo_scaled_font_text_extents:
@@ -752,6 +756,7 @@ cairo_scaled_font_glyph_extents (cairo_s
     extents->x_advance = x_pos - glyphs[0].x;
     extents->y_advance = y_pos - glyphs[0].y;
 }
+slim_hidden_def (cairo_scaled_font_glyph_extents);
 
 cairo_status_t
 _cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font,
@@ -1408,6 +1413,7 @@ cairo_scaled_font_get_font_face (cairo_s
 
     return scaled_font->font_face;
 }
+slim_hidden_def (cairo_scaled_font_get_font_face);
 
 /**
  * cairo_scaled_font_get_font_matrix:
@@ -1430,6 +1436,7 @@ cairo_scaled_font_get_font_matrix (cairo
 
     *font_matrix = scaled_font->font_matrix;
 }
+slim_hidden_def (cairo_scaled_font_get_font_matrix);
 
 /**
  * cairo_scaled_font_get_ctm:
@@ -1451,6 +1458,7 @@ cairo_scaled_font_get_ctm (cairo_scaled_
 
     *ctm = scaled_font->ctm;
 }
+slim_hidden_def (cairo_scaled_font_get_ctm);
 
 /**
  * cairo_scaled_font_get_font_options:
@@ -1473,3 +1481,4 @@ cairo_scaled_font_get_font_options (cair
 
     _cairo_font_options_init_copy (options, &scaled_font->options);
 }
+slim_hidden_def (cairo_scaled_font_get_font_options);
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 0468ca2..cbbe89a 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -197,6 +197,7 @@ cairo_surface_get_type (cairo_surface_t 
      * surface. */
     return surface->type;
 }
+slim_hidden_def (cairo_surface_get_type);
 
 /**
  * cairo_surface_get_content:
@@ -232,6 +233,7 @@ cairo_surface_status (cairo_surface_t *s
 {
     return surface->status;
 }
+slim_hidden_def (cairo_surface_status);
 
 void
 _cairo_surface_init (cairo_surface_t			*surface,
@@ -338,6 +340,7 @@ cairo_surface_create_similar (cairo_surf
 						width, height,
 						CAIRO_COLOR_TRANSPARENT);
 }
+slim_hidden_def (cairo_surface_create_similar);
 
 cairo_surface_t *
 _cairo_surface_create_similar_solid (cairo_surface_t	 *other,
@@ -416,6 +419,7 @@ cairo_surface_reference (cairo_surface_t
 
     return surface;
 }
+slim_hidden_def (cairo_surface_reference);
 
 /**
  * cairo_surface_destroy:
@@ -497,6 +501,7 @@ cairo_surface_finish (cairo_surface_t *s
 
     surface->finished = TRUE;
 }
+slim_hidden_def (cairo_surface_finish);
 
 /**
  * cairo_surface_get_user_data:
@@ -602,6 +607,7 @@ cairo_surface_get_font_options (cairo_su
 
     _cairo_font_options_init_copy (options, &surface->font_options);
 }
+slim_hidden_def (cairo_surface_get_font_options);
 
 /**
  * cairo_surface_flush:
@@ -708,6 +714,7 @@ cairo_surface_mark_dirty_rectangle (cair
 	    _cairo_surface_set_error (surface, status);
     }
 }
+slim_hidden_def (cairo_surface_mark_dirty_rectangle);
 
 /**
  * _cairo_surface_set_device_scale:
@@ -790,6 +797,7 @@ cairo_surface_set_device_offset (cairo_s
     surface->device_transform_inverse.x0 = - x_offset;
     surface->device_transform_inverse.y0 = - y_offset;
 }
+slim_hidden_def (cairo_surface_set_device_offset);
 
 /**
  * cairo_surface_get_device_offset:
@@ -810,6 +818,7 @@ cairo_surface_get_device_offset (cairo_s
     *x_offset = surface->device_transform.x0;
     *y_offset = surface->device_transform.y0;
 }
+slim_hidden_def (cairo_surface_get_device_offset);
 
 /**
  * cairo_surface_set_fallback_resolution:
@@ -849,6 +858,7 @@ cairo_surface_set_fallback_resolution (c
     surface->x_fallback_resolution = x_pixels_per_inch;
     surface->y_fallback_resolution = y_pixels_per_inch;
 }
+slim_hidden_def (cairo_surface_set_fallback_resolution);
 
 cairo_bool_t
 _cairo_surface_has_device_transform (cairo_surface_t *surface)
diff --git a/src/cairo-xlib-private.h b/src/cairo-xlib-private.h
index f319dcc..053cae7 100644
--- a/src/cairo-xlib-private.h
+++ b/src/cairo-xlib-private.h
@@ -51,4 +51,11 @@ struct _cairo_xlib_screen_info {
 cairo_private cairo_xlib_screen_info_t *
 _cairo_xlib_screen_info_get (Display *display, Screen *screen);
 
+#if CAIRO_HAS_XLIB_XRENDER_SURFACE
+
+#include "cairo-xlib-xrender.h"
+slim_hidden_proto (cairo_xlib_surface_create_with_xrender_format)
+
+#endif
+
 #endif /* CAIRO_XLIB_PRIVATE_H */
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 55f95e8..365e40d 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -2010,6 +2010,7 @@ cairo_xlib_surface_create_with_xrender_f
     return _cairo_xlib_surface_create_internal (dpy, drawable, screen,
 						NULL, format, width, height, 0);
 }
+slim_hidden_def (cairo_xlib_surface_create_with_xrender_format);
 
 /**
  * cairo_xlib_surface_set_size:
diff --git a/src/cairo.c b/src/cairo.c
index 928ebca..425a717 100644
--- a/src/cairo.c
+++ b/src/cairo.c
@@ -206,6 +206,7 @@ cairo_create (cairo_surface_t *target)
 
     return cr;
 }
+slim_hidden_def (cairo_create);
 
 /**
  * cairo_reference:
@@ -267,6 +268,7 @@ cairo_destroy (cairo_t *cr)
 
     free (cr);
 }
+slim_hidden_def (cairo_destroy);
 
 /**
  * cairo_save:
@@ -571,6 +573,7 @@ cairo_set_operator (cairo_t *cr, cairo_o
     if (cr->status)
 	_cairo_set_error (cr, cr->status);
 }
+slim_hidden_def (cairo_set_operator);
 
 /**
  * cairo_set_source_rgb
@@ -674,6 +677,7 @@ cairo_set_source_surface (cairo_t	  *cr,
     cairo_set_source (cr, pattern);
     cairo_pattern_destroy (pattern);
 }
+slim_hidden_def (cairo_set_source_surface);
 
 /**
  * cairo_set_source
@@ -714,6 +718,7 @@ cairo_set_source (cairo_t *cr, cairo_pat
     if (cr->status)
 	_cairo_set_error (cr, cr->status);
 }
+slim_hidden_def (cairo_set_source);
 
 /**
  * cairo_get_source:
@@ -1268,6 +1273,7 @@ cairo_line_to (cairo_t *cr, double x, do
     if (cr->status)
 	_cairo_set_error (cr, cr->status);
 }
+slim_hidden_def (cairo_line_to);
 
 /**
  * cairo_curve_to:
@@ -1321,6 +1327,7 @@ cairo_curve_to (cairo_t *cr,
     if (cr->status)
 	_cairo_set_error (cr, cr->status);
 }
+slim_hidden_def (cairo_curve_to);
 
 /**
  * cairo_arc:
@@ -1683,6 +1690,7 @@ cairo_paint (cairo_t *cr)
     if (cr->status)
 	_cairo_set_error (cr, cr->status);
 }
+slim_hidden_def (cairo_paint);
 
 /**
  * cairo_paint_with_alpha:
@@ -1754,6 +1762,7 @@ cairo_mask (cairo_t         *cr,
     if (cr->status)
 	_cairo_set_error (cr, cr->status);
 }
+slim_hidden_def (cairo_mask);
 
 /**
  * cairo_mask_surface:
@@ -2614,6 +2623,7 @@ cairo_get_tolerance (cairo_t *cr)
 {
     return _cairo_gstate_get_tolerance (cr->gstate);
 }
+slim_hidden_def (cairo_get_tolerance);
 
 /**
  * cairo_get_antialias:
@@ -2757,6 +2767,7 @@ cairo_get_matrix (cairo_t *cr, cairo_mat
 {
     _cairo_gstate_get_matrix (cr->gstate, matrix);
 }
+slim_hidden_def (cairo_get_matrix);
 
 /**
  * cairo_get_target:
@@ -2942,6 +2953,7 @@ cairo_status (cairo_t *cr)
 {
     return cr->status;
 }
+slim_hidden_def (cairo_status);
 
 /**
  * cairo_status_to_string:
diff --git a/src/cairoint.h b/src/cairoint.h
index 119ee26..0de43a9 100644
--- a/src/cairoint.h
+++ b/src/cairoint.h
@@ -1720,7 +1720,7 @@ _cairo_surface_init (cairo_surface_t			*
 		     const cairo_surface_backend_t	*backend,
 		     cairo_content_t			 content);
 
-void
+cairo_private void
 _cairo_surface_set_font_options (cairo_surface_t       *surface,
 				 cairo_font_options_t  *options);
 
@@ -2025,7 +2025,7 @@ cairo_private cairo_int_status_t
 _cairo_image_surface_set_clip_region (void *abstract_surface,
 				      pixman_region16_t *region);
 
-cairo_image_surface_t *
+cairo_private cairo_image_surface_t *
 _cairo_image_surface_clone (cairo_image_surface_t	*surface,
 			    cairo_format_t		 format);
 
@@ -2234,7 +2234,7 @@ _cairo_pattern_transform (cairo_pattern_
 cairo_private cairo_bool_t
 _cairo_pattern_is_opaque_solid (const cairo_pattern_t *pattern);
 
-cairo_bool_t
+cairo_private cairo_bool_t
 _cairo_pattern_is_opaque (const cairo_pattern_t *abstract_pattern);
 
 cairo_private cairo_int_status_t
@@ -2308,32 +2308,88 @@ cairo_private int
 _cairo_dtostr (char *buffer, size_t size, double d);
 
 /* Avoid unnecessary PLT entries.  */
-slim_hidden_proto(cairo_get_current_point)
-slim_hidden_proto(cairo_fill_preserve)
 slim_hidden_proto(cairo_clip_preserve)
 slim_hidden_proto(cairo_close_path)
-slim_hidden_proto(cairo_matrix_invert)
-slim_hidden_proto(cairo_matrix_multiply)
-slim_hidden_proto(cairo_matrix_scale)
+slim_hidden_proto(cairo_create)
+slim_hidden_proto(cairo_curve_to)
+slim_hidden_proto(cairo_destroy)
+slim_hidden_proto(cairo_fill_preserve)
+slim_hidden_proto(cairo_font_face_destroy)
+slim_hidden_proto(cairo_font_face_reference)
+slim_hidden_proto(cairo_font_options_create)
+slim_hidden_proto(cairo_font_options_destroy)
+slim_hidden_proto(cairo_font_options_equal)
+slim_hidden_proto(cairo_font_options_hash)
+slim_hidden_proto(cairo_font_options_merge)
+slim_hidden_proto(cairo_font_options_set_antialias)
+slim_hidden_proto(cairo_font_options_set_hint_metrics)
+slim_hidden_proto(cairo_font_options_set_hint_style)
+slim_hidden_proto(cairo_font_options_set_subpixel_order)
+slim_hidden_proto(cairo_get_current_point)
+slim_hidden_proto(cairo_get_matrix)
+slim_hidden_proto(cairo_get_tolerance)
+slim_hidden_proto(cairo_image_surface_create)
+slim_hidden_proto(cairo_image_surface_create_for_data)
+slim_hidden_proto(cairo_image_surface_get_height)
+slim_hidden_proto(cairo_image_surface_get_width)
+slim_hidden_proto(cairo_line_to)
+slim_hidden_proto(cairo_mask)
 slim_hidden_proto(cairo_matrix_init)
 slim_hidden_proto(cairo_matrix_init_identity)
-slim_hidden_proto(cairo_matrix_init_translate)
-slim_hidden_proto(cairo_matrix_init_scale)
 slim_hidden_proto(cairo_matrix_init_rotate)
+slim_hidden_proto(cairo_matrix_init_scale)
+slim_hidden_proto(cairo_matrix_init_translate)
+slim_hidden_proto(cairo_matrix_invert)
+slim_hidden_proto(cairo_matrix_multiply)
+slim_hidden_proto(cairo_matrix_scale)
 slim_hidden_proto(cairo_matrix_transform_distance)
 slim_hidden_proto(cairo_matrix_transform_point)
+slim_hidden_proto(cairo_matrix_translate)
 slim_hidden_proto(cairo_move_to)
 slim_hidden_proto(cairo_new_path)
+slim_hidden_proto(cairo_paint)
+slim_hidden_proto(cairo_pattern_create_for_surface)
+slim_hidden_proto(cairo_pattern_create_rgb)
+slim_hidden_proto(cairo_pattern_create_rgba)
+slim_hidden_proto(cairo_pattern_destroy)
+slim_hidden_proto(cairo_pattern_get_extend)
+slim_hidden_proto(cairo_pattern_get_type)
+slim_hidden_proto(cairo_pattern_reference)
+slim_hidden_proto(cairo_pattern_set_matrix)
+slim_hidden_proto(cairo_pop_group)
+slim_hidden_proto(cairo_pop_group_to_source)
+slim_hidden_proto(cairo_push_group)
+slim_hidden_proto(cairo_push_group_with_content)
 slim_hidden_proto(cairo_rel_line_to)
 slim_hidden_proto(cairo_restore)
 slim_hidden_proto(cairo_save)
+slim_hidden_proto(cairo_scaled_font_create)
+slim_hidden_proto(cairo_scaled_font_destroy)
+slim_hidden_proto(cairo_scaled_font_extents)
+slim_hidden_proto(cairo_scaled_font_get_ctm)
+slim_hidden_proto(cairo_scaled_font_get_font_face)
+slim_hidden_proto(cairo_scaled_font_get_font_matrix)
+slim_hidden_proto(cairo_scaled_font_get_font_options)
+slim_hidden_proto(cairo_scaled_font_glyph_extents)
+slim_hidden_proto(cairo_scaled_font_reference)
+slim_hidden_proto(cairo_set_operator)
+slim_hidden_proto(cairo_set_source)
+slim_hidden_proto(cairo_set_source_surface)
+slim_hidden_proto(cairo_status)
 slim_hidden_proto(cairo_stroke_preserve)
+slim_hidden_proto(cairo_surface_create_similar)
 slim_hidden_proto(cairo_surface_destroy)
+slim_hidden_proto(cairo_surface_finish)
 slim_hidden_proto(cairo_surface_get_content)
-slim_hidden_proto(cairo_push_group)
-slim_hidden_proto(cairo_push_group_with_content)
-slim_hidden_proto(cairo_pop_group)
-slim_hidden_proto(cairo_pop_group_to_source)
+slim_hidden_proto(cairo_surface_get_device_offset)
+slim_hidden_proto(cairo_surface_get_font_options)
+slim_hidden_proto(cairo_surface_get_type)
+slim_hidden_proto(cairo_surface_mark_dirty_rectangle)
+slim_hidden_proto(cairo_surface_reference)
+slim_hidden_proto(cairo_surface_set_device_offset)
+slim_hidden_proto(cairo_surface_set_fallback_resolution)
+slim_hidden_proto(cairo_surface_status)
+slim_hidden_proto(cairo_surface_write_to_png_stream)
 
 CAIRO_END_DECLS
 
diff --git a/src/test-fallback-surface.c b/src/test-fallback-surface.c
index 5c3c08c..8d3ebda 100644
--- a/src/test-fallback-surface.c
+++ b/src/test-fallback-surface.c
@@ -64,6 +64,8 @@ typedef struct _test_fallback_surface {
 
 const cairo_private cairo_surface_backend_t test_fallback_surface_backend;
 
+slim_hidden_proto (_test_fallback_surface_create)
+
 cairo_surface_t *
 _test_fallback_surface_create (cairo_content_t	content,
 			       int		width,
@@ -89,6 +91,7 @@ _test_fallback_surface_create (cairo_con
 
     return &surface->base;
 }
+slim_hidden_def (_test_fallback_surface_create);
 
 static cairo_surface_t *
 _test_fallback_surface_create_similar (void		*abstract_surface,
diff-tree e06246b9b1015eb89112f628d5820fcb350a7335 (from d716020db272839717ff71d91534f3125029b47a)
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Sep 5 16:45:01 2006 -0700

    pixman: Add pixman_private decorations to hide pixman symbols from public interface

diff --git a/pixman/src/fbmmx.h b/pixman/src/fbmmx.h
index 1a6a27d..531bcba 100644
--- a/pixman/src/fbmmx.h
+++ b/pixman/src/fbmmx.h
@@ -29,6 +29,7 @@
 #ifdef USE_MMX
 
 #if !defined(__amd64__) && !defined(__x86_64__)
+pixman_private
 Bool fbHaveMMX(void);
 #else
 #define fbHaveMMX() TRUE
@@ -40,8 +41,10 @@ Bool fbHaveMMX(void);
 
 #ifdef USE_MMX
 
+pixman_private
 void fbComposeSetupMMX(void);
 
+pixman_private
 void fbCompositeSolidMask_nx8888x0565Cmmx (pixman_operator_t      op,
 					   PicturePtr pSrc,
 					   PicturePtr pMask,
@@ -54,6 +57,7 @@ void fbCompositeSolidMask_nx8888x0565Cmm
 					   INT16      yDst,
 					   CARD16     width,
 					   CARD16     height);
+pixman_private
 void fbCompositeSrcAdd_8888x8888mmx (pixman_operator_t	op,
 				     PicturePtr	pSrc,
 				     PicturePtr	pMask,
@@ -66,6 +70,7 @@ void fbCompositeSrcAdd_8888x8888mmx (pix
 				     INT16      yDst,
 				     CARD16     width,
 				     CARD16     height);
+pixman_private
 void fbCompositeSolidMask_nx8888x8888Cmmx (pixman_operator_t	op,
 					   PicturePtr	pSrc,
 					   PicturePtr	pMask,
@@ -78,6 +83,7 @@ void fbCompositeSolidMask_nx8888x8888Cmm
 					   INT16	yDst,
 					   CARD16	width,
 					   CARD16	height);
+pixman_private
 void fbCompositeSolidMask_nx8x8888mmx (pixman_operator_t      op,
 				       PicturePtr pSrc,
 				       PicturePtr pMask,
@@ -90,6 +96,7 @@ void fbCompositeSolidMask_nx8x8888mmx (p
 				       INT16      yDst,
 				       CARD16     width,
 				       CARD16     height);
+pixman_private
 void fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_operator_t      op,
 					  PicturePtr pSrc,
 					  PicturePtr pMask,
@@ -102,6 +109,7 @@ void fbCompositeSolidMaskSrc_nx8x8888mmx
 					  INT16      yDst,
 					  CARD16     width,
 					  CARD16     height);
+pixman_private
 void fbCompositeSrcAdd_8000x8000mmx (pixman_operator_t	op,
 				     PicturePtr pSrc,
 				     PicturePtr pMask,
@@ -114,6 +122,7 @@ void fbCompositeSrcAdd_8000x8000mmx (pix
 				     INT16      yDst,
 				     CARD16     width,
 				     CARD16     height);
+pixman_private
 void fbCompositeSrc_8888RevNPx8888mmx (pixman_operator_t      op,
 				       PicturePtr pSrc,
 				       PicturePtr pMask,
@@ -126,6 +135,7 @@ void fbCompositeSrc_8888RevNPx8888mmx (p
 				       INT16      yDst,
 				       CARD16     width,
 				       CARD16     height);
+pixman_private
 void fbCompositeSrc_8888RevNPx0565mmx (pixman_operator_t      op,
 				       PicturePtr pSrc,
 				       PicturePtr pMask,
@@ -138,6 +148,7 @@ void fbCompositeSrc_8888RevNPx0565mmx (p
 				       INT16      yDst,
 				       CARD16     width,
 				       CARD16     height);
+pixman_private
 void fbCompositeSolid_nx8888mmx (pixman_operator_t		op,
 				 PicturePtr	pSrc,
 				 PicturePtr	pMask,
@@ -150,6 +161,7 @@ void fbCompositeSolid_nx8888mmx (pixman_
 				 INT16		yDst,
 				 CARD16		width,
 				 CARD16		height);
+pixman_private
 void fbCompositeSolid_nx0565mmx (pixman_operator_t		op,
 				 PicturePtr	pSrc,
 				 PicturePtr	pMask,
@@ -162,6 +174,7 @@ void fbCompositeSolid_nx0565mmx (pixman_
 				 INT16		yDst,
 				 CARD16		width,
 				 CARD16		height);
+pixman_private
 void fbCompositeSolidMask_nx8x0565mmx (pixman_operator_t      op,
 				       PicturePtr pSrc,
 				       PicturePtr pMask,
@@ -174,6 +187,7 @@ void fbCompositeSolidMask_nx8x0565mmx (p
 				       INT16      yDst,
 				       CARD16     width,
 				       CARD16     height);
+pixman_private
 void fbCompositeSrc_x888x8x8888mmx (pixman_operator_t	op,
 				    PicturePtr  pSrc,
 				    PicturePtr  pMask,
@@ -186,6 +200,7 @@ void fbCompositeSrc_x888x8x8888mmx (pixm
 				    INT16       yDst,
 				    CARD16      width,
 				    CARD16      height);
+pixman_private
 void fbCompositeSrc_8888x8x8888mmx (pixman_operator_t	op,
 				    PicturePtr  pSrc,
 				    PicturePtr  pMask,
@@ -198,6 +213,7 @@ void fbCompositeSrc_8888x8x8888mmx (pixm
 				    INT16       yDst,
 				    CARD16      width,
 				    CARD16      height);
+pixman_private
 void fbCompositeSrc_8888x8888mmx (pixman_operator_t      op,
 				  PicturePtr pSrc,
 				  PicturePtr pMask,
@@ -210,6 +226,7 @@ void fbCompositeSrc_8888x8888mmx (pixman
 				  INT16      yDst,
 				  CARD16     width,
 				  CARD16     height);
+pixman_private
 Bool fbCopyAreammx (FbPixels	*pSrc,
 		    FbPixels	*pDst,
 		    int		src_x,
@@ -218,6 +235,8 @@ Bool fbCopyAreammx (FbPixels	*pSrc,
 		    int		dst_y,
 		    int		width,
 		    int		height);
+
+pixman_private
 void fbCompositeCopyAreammx (pixman_operator_t	op,
 			     PicturePtr	pSrc,
 			     PicturePtr	pMask,
@@ -230,6 +249,8 @@ void fbCompositeCopyAreammx (pixman_oper
 			     INT16      yDst,
 			     CARD16     width,
 			     CARD16     height);
+
+pixman_private
 Bool fbSolidFillmmx (FbPixels	*pDraw,
 		     int		x,
 		     int		y,
diff --git a/pixman/src/icimage.h b/pixman/src/icimage.h
index eff1be2..82202a7 100644
--- a/pixman/src/icimage.h
+++ b/pixman/src/icimage.h
@@ -243,7 +243,7 @@ FbComputeCompositeRegion (pixman_region1
 			  uint16_t	width,
 			  uint16_t	height);
 
-int
+pixman_private int
 miIsSolidAlpha (pixman_image_t *src);
 
 /*
diff --git a/pixman/src/pixman.h b/pixman/src/pixman.h
index 57b317a..309e5e6 100644
--- a/pixman/src/pixman.h
+++ b/pixman/src/pixman.h
@@ -99,6 +99,14 @@ SOFTWARE.
 
 #include "pixman-remap.h"
 
+#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__)
+#define pixman_private		__attribute__((__visibility__("hidden")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+#define pixman_private		__hidden
+#else /* not gcc >= 3.3 and not Sun Studio >= 8 */
+#define pixman_private
+#endif
+
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
@@ -118,37 +126,37 @@ typedef enum {
 
 /* creation/destruction */
 
-pixman_region16_t *
+pixman_private pixman_region16_t *
 pixman_region_create (void);
 
-pixman_region16_t *
+pixman_private pixman_region16_t *
 pixman_region_create_simple (pixman_box16_t *extents);
 
-void
+pixman_private void
 pixman_region_destroy (pixman_region16_t *region);
 
 /* manipulation */
 
-void
+pixman_private void
 pixman_region_translate (pixman_region16_t *region, int x, int y);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_copy (pixman_region16_t *dest, pixman_region16_t *source);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_intersect (pixman_region16_t *newReg, pixman_region16_t *reg1, pixman_region16_t *reg2);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_union (pixman_region16_t *newReg, pixman_region16_t *reg1, pixman_region16_t *reg2);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_union_rect(pixman_region16_t *dest, pixman_region16_t *source,
 			 int x, int y, unsigned int width, unsigned int height);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_subtract (pixman_region16_t *regD, pixman_region16_t *regM, pixman_region16_t *regS);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_inverse (pixman_region16_t *newReg, pixman_region16_t *reg1, pixman_box16_t *invRect);
 
 /* XXX: Need to fix this so it doesn't depend on an X data structure
@@ -159,10 +167,10 @@ RectsTopixman_region16_t (int nrects, xR
 /* querying */
 
 /* XXX: These should proably be combined: pixman_region_get_rects? */
-int
+pixman_private int
 pixman_region_num_rects (pixman_region16_t *region);
 
-pixman_box16_t *
+pixman_private pixman_box16_t *
 pixman_region_rects (pixman_region16_t *region);
 
 /* XXX: Change to an enum */
@@ -170,36 +178,36 @@ pixman_region_rects (pixman_region16_t *
 #define rgnIN  1
 #define rgnPART 2
 
-int
+pixman_private int
 pixman_region_contains_point (pixman_region16_t *region, int x, int y, pixman_box16_t *box);
 
-int
+pixman_private int
 pixman_region_contains_rectangle (pixman_region16_t *pixman_region16_t, pixman_box16_t *prect);
 
-int
+pixman_private int
 pixman_region_not_empty (pixman_region16_t *region);
 
-pixman_box16_t *
+pixman_private pixman_box16_t *
 pixman_region_extents (pixman_region16_t *region);
 
 /* mucking around */
 
 /* WARNING: calling pixman_region_append may leave dest as an invalid
    region. Follow-up with pixman_region_validate to fix it up. */
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_append (pixman_region16_t *dest, pixman_region16_t *region);
 
-pixman_region_status_t
+pixman_private pixman_region_status_t
 pixman_region_validate (pixman_region16_t *badreg, int *pOverlap);
 
 /* Unclassified functionality
  * XXX: Do all of these need to be exported?
  */
 
-void
+pixman_private void
 pixman_region_reset (pixman_region16_t *region, pixman_box16_t *pBox);
 
-void
+pixman_private void
 pixman_region_empty (pixman_region16_t *region);
 
 /* ic.h */
@@ -234,20 +242,20 @@ typedef enum pixman_format_name {
 
 typedef struct pixman_format pixman_format_t;
 
-pixman_format_t *
+pixman_private pixman_format_t *
 pixman_format_create (pixman_format_name_t name);
 
-pixman_format_t *
+pixman_private pixman_format_t *
 pixman_format_create_masks (int bpp,
 			    int alpha_mask,
 			    int red_mask,
 			    int green_mask,
 			    int blue_mask);
 
-void
+pixman_private void
 pixman_format_destroy (pixman_format_t *format);
 
-void
+pixman_private void
 pixman_format_get_masks (pixman_format_t *format,
                          unsigned int *bpp,
                          unsigned int *alpha_mask,
@@ -259,7 +267,7 @@ pixman_format_get_masks (pixman_format_t
 
 typedef struct pixman_image pixman_image_t;
 
-pixman_image_t *
+pixman_private pixman_image_t *
 pixman_image_create (pixman_format_t	*format,
 		     int	width,
 		     int	height);
@@ -284,16 +292,16 @@ pixman_image_create (pixman_format_t	*fo
 typedef uint32_t pixman_bits_t;
 #endif
 
-pixman_image_t *
+pixman_private pixman_image_t *
 pixman_image_create_for_data (pixman_bits_t *data,
 			      pixman_format_t *format,
 			      int width, int height,
 			      int bpp, int stride);
 
-void
+pixman_private void
 pixman_image_destroy (pixman_image_t *image);
 
-int
+pixman_private int
 pixman_image_set_clip_region (pixman_image_t	*image,
 			      pixman_region16_t	*region);
 
@@ -368,11 +376,11 @@ typedef enum {
     PIXMAN_FILTER_BILINEAR
 } pixman_filter_t;
 
-void
+pixman_private void
 pixman_image_set_component_alpha (pixman_image_t *image,
 				  int		 component_alpha);
 
-int
+pixman_private int
 pixman_image_set_transform (pixman_image_t	*image,
 			    pixman_transform_t	*transform);
 
@@ -384,57 +392,57 @@ typedef enum {
     PIXMAN_REPEAT_REFLECT
 } pixman_repeat_t;
 
-void
+pixman_private void
 pixman_image_set_repeat (pixman_image_t		*image,
 			 pixman_repeat_t	repeat);
 
-void
+pixman_private void
 pixman_image_set_filter (pixman_image_t		*image,
 			 pixman_filter_t	filter);
 
-int
+pixman_private int
 pixman_image_get_width (pixman_image_t	*image);
 
-int
+pixman_private int
 pixman_image_get_height (pixman_image_t	*image);
 
-int
+pixman_private int
 pixman_image_get_stride (pixman_image_t	*image);
 
-int
+pixman_private int
 pixman_image_get_depth (pixman_image_t	*image);
 
-pixman_format_t *
+pixman_private pixman_format_t *
 pixman_image_get_format (pixman_image_t	*image);
 
-pixman_bits_t *
+pixman_private pixman_bits_t *
 pixman_image_get_data (pixman_image_t	*image);
 
-pixman_image_t *
+pixman_private pixman_image_t *
 pixman_image_create_linear_gradient (const pixman_linear_gradient_t *gradient,
 				     const pixman_gradient_stop_t   *stops,
 				     int			    n_stops);
 
-pixman_image_t *
+pixman_private pixman_image_t *
 pixman_image_create_radial_gradient (const pixman_radial_gradient_t *gradient,
 				     const pixman_gradient_stop_t   *stops,
 				     int			    n_stops);
 
 /* iccolor.c */
 
-void
+pixman_private void
 pixman_color_to_pixel (const pixman_format_t	*format,
 		       const pixman_color_t	*color,
 		       pixman_bits_t		*pixel);
 
-void
+pixman_private void
 pixman_pixel_to_color (const pixman_format_t	*format,
 		       pixman_bits_t		pixel,
 		       pixman_color_t		*color);
 
 /* icrect.c */
 
-void
+pixman_private void
 pixman_fill_rectangle (pixman_operator_t	op,
 		       pixman_image_t		*dst,
 		       const pixman_color_t	*color,
@@ -443,7 +451,7 @@ pixman_fill_rectangle (pixman_operator_t
 		       unsigned int		width,
 		       unsigned int		height);
 
-void
+pixman_private void
 pixman_fill_rectangles (pixman_operator_t		op,
 			pixman_image_t			*dst,
 			const pixman_color_t		*color,
@@ -452,7 +460,7 @@ pixman_fill_rectangles (pixman_operator_
 
 /* ictrap.c */
 
-void
+pixman_private void
 pixman_composite_trapezoids (pixman_operator_t		op,
 			     pixman_image_t		*src,
 			     pixman_image_t		*dst,
@@ -461,7 +469,7 @@ pixman_composite_trapezoids (pixman_oper
 			     const pixman_trapezoid_t *traps,
 			     int			ntrap);
 
-void
+pixman_private void
 pixman_add_trapezoids (pixman_image_t		*dst,
 		       int			x_off,
 		       int			y_off,
@@ -470,7 +478,7 @@ pixman_add_trapezoids (pixman_image_t		*
 
 /* ictri.c */
 
-void
+pixman_private void
 pixman_composite_triangles (pixman_operator_t		op,
 			    pixman_image_t		*src,
 			    pixman_image_t		*dst,
@@ -479,7 +487,7 @@ pixman_composite_triangles (pixman_opera
 			    const pixman_triangle_t	*tris,
 			    int				ntris);
 
-void
+pixman_private void
 pixman_composite_tri_strip (pixman_operator_t		op,
 			    pixman_image_t		*src,
 			    pixman_image_t		*dst,
@@ -488,7 +496,7 @@ pixman_composite_tri_strip (pixman_opera
 			    const pixman_point_fixed_t	*points,
 			    int				npoints);
 
-void
+pixman_private void
 pixman_composite_tri_fan (pixman_operator_t		op,
 			  pixman_image_t		*src,
 			  pixman_image_t		*dst,
@@ -499,7 +507,7 @@ pixman_composite_tri_fan (pixman_operato
 
 /* ic.c */
 
-void
+pixman_private void
 pixman_composite (pixman_operator_t	op,
 		  pixman_image_t	*iSrc,
 		  pixman_image_t	*iMask,
diff --git a/pixman/src/renderedge.h b/pixman/src/renderedge.h
index 522e503..55561ea 100644
--- a/pixman/src/renderedge.h
+++ b/pixman/src/renderedge.h
@@ -128,16 +128,16 @@ typedef struct {
     }				    \
 }
 
-xFixed
+pixman_private xFixed
 RenderSampleCeilY (xFixed y, int bpp);
 
-xFixed
+pixman_private xFixed
 RenderSampleFloorY (xFixed y, int bpp);
 
-void
+pixman_private void
 RenderEdgeStep (RenderEdge *e, int n);
 
-void
+pixman_private void
 RenderEdgeInit (RenderEdge	*e,
 		int		bpp,
 		xFixed		y_start,
@@ -146,7 +146,7 @@ RenderEdgeInit (RenderEdge	*e,
 		xFixed		x_bot,
 		xFixed		y_bot);
 
-void
+pixman_private void
 RenderLineFixedEdgeInit (RenderEdge *e,
 			 int	    bpp,
 			 xFixed	    y,


More information about the cairo-commit mailing list