diff --git a/ChangeLog b/ChangeLog index 9635064e..7d2a6a34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,7 +8,8 @@ magic number [przemyslawpluta] - much faster ismagick() [jcupitt] - better behaviour for vips_region_fetch() if request lies partly ouside image -- remove band limits [erdmann] +- remove 256 band limit in arithmetic.c [erdmann] +- disable Orc if building with CET [lovell] 21/9/18 started 8.8.0 - much faster smartcrop [lovell] diff --git a/libvips/include/vips/vector.h b/libvips/include/vips/vector.h index 88e7eb20..0bbe3504 100644 --- a/libvips/include/vips/vector.h +++ b/libvips/include/vips/vector.h @@ -34,6 +34,19 @@ #ifndef VIPS_VECTOR_H #define VIPS_VECTOR_H +/* If we are building with -fcf-protection (run-time checking of + * indirect jumps) then Orc won't work. Make sure it's off. + * + * Orc may support -fcf-protection in the future, but does not in June 2019. + * + * https://gcc.gnu.org/onlinedocs/gcc/\ + * Instrumentation-Options.html#index-fcf-protection + * https://gitlab.freedesktop.org/gstreamer/orc/issues/17 + */ +#ifdef __CET__ +#undef HAVE_ORC +#endif + #ifdef HAVE_ORC #include #endif /*HAVE_ORC*/ diff --git a/libvips/iofuncs/vector.c b/libvips/iofuncs/vector.c index 65b71889..1595b13d 100644 --- a/libvips/iofuncs/vector.c +++ b/libvips/iofuncs/vector.c @@ -71,11 +71,13 @@ gboolean vips__vector_enabled = TRUE; void vips_vector_error( VipsVector *vector ) { +#ifdef HAVE_ORC #ifdef HAVE_ORC_PROGRAM_GET_ERROR if( vector->program ) g_warning( "orc error: %s", orc_program_get_error( vector->program ) ); #endif /*HAVE_ORC_PROGRAM_GET_ERROR*/ +#endif /*HAVE_ORC*/ } void @@ -102,6 +104,7 @@ vips_vector_init( void ) if( g_getenv( "VIPS_NOVECTOR" ) || g_getenv( "IM_NOVECTOR" ) ) vips__vector_enabled = FALSE; + #endif /*HAVE_ORC*/ }