diff --git a/ChangeLog b/ChangeLog index 7a3a46536..2aefedd54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2021-07-17 David Turner + + * src/smooth/ftgrays.c: Fix compilation if `FT_LONG64` is undefined. + + The code assumed that if `__SSE2__` is defined, then 64-bit integer + types are available. This is not the case apparently for certain + multilib compiler targets like 'x86_32.x86' used by Gentoo. + + This patch fixes the issue by disabling the special code path when + 64-bit integer types are not available. + + Fixes #1071. + 2021-07-16 Alex Richardson [tests] Allow arbitrary build directories. @@ -10,7 +23,7 @@ * tests/meson.build: Updated. -2021-07-15 Alex Richardson +2021-07-16 Alex Richardson * tests/issue-1063/main.c (main): Fix uninitialized variable. diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index e5f36a054..86118fb36 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -1018,6 +1018,16 @@ typedef ptrdiff_t FT_PtrDist; # define BEZIER_USE_DDA 0 #endif + /* + * For now, the code that depends on `BEZIER_USE_DDA` requires `FT_Int64` + * to be defined. If `FT_LONG64` is not defined, meaning there is no + * 64-bit type available, disable it to avoid compilation errors. See for + * example https://gitlab.freedesktop.org/freetype/freetype/-/issues/1071. + */ +#if !defined( FT_LONG64 ) +# undef BEZIER_USE_DDA +# define BEZIER_USE_DDA 0 +#endif #if BEZIER_USE_DDA