[cairo] [cairo-commit] src/cairo-compiler-private.h src/check-def.sh src/check-plt.sh src/compiler-supports-visibility.c src/Makefile.am

Behdad Esfahbod behdad at behdad.org
Fri Jan 11 08:50:58 PST 2008


On Fri, 2008-01-11 at 11:19 -0500, Chris Wilson wrote:
> New commits:
> commit 6d3ed950ea075ff2a5a569365b46c3cfc4152787
> Author: Chris Wilson <chris at chris-wilson.co.uk>
> Date:   Fri Jan 11 16:16:20 2008 +0000
> 
>     [check] Skip def/plt tests if the compiler doesn't support symbol hiding.
>     
>     Compile a trivial program such that it reports whether cairo is hiding
>     its internal symbols and skip the tests that depend upon it.

This doesn't work with cross-compiling.  Write it as a shell script that
just uses C preprocessor grep to test it.

>  	@status=true; for f in $(libcairo_la_base_sources); do \
> diff --git a/src/cairo-compiler-private.h b/src/cairo-compiler-private.h
> index da80b89..14aef47 100644
> --- a/src/cairo-compiler-private.h
> +++ b/src/cairo-compiler-private.h
> @@ -72,10 +72,13 @@ CAIRO_BEGIN_DECLS
>  /* slim_internal.h */
>  #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun)
>  #define cairo_private_no_warn	__attribute__((__visibility__("hidden")))
> +#define CAIRO_HAS_HIDDEN_SYMBOLS 1
>  #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
>  #define cairo_private_no_warn	__hidden
> +#define CAIRO_HAS_HIDDEN_SYMBOLS 1
>  #else /* not gcc >= 3.3 and not Sun Studio >= 8 */
>  #define cairo_private_no_warn
> +#define CAIRO_HAS_HIDDEN_SYMBOLS 0

Common practice is to #undef instead of defining to 0.

-- 
behdad
http://behdad.org/

"Those who would give up Essential Liberty to purchase a little
 Temporary Safety, deserve neither Liberty nor Safety."
        -- Benjamin Franklin, 1759



More information about the cairo mailing list