[cairo] bug trying to upgrade cairo from cairo-1.8.10_1, 1 to cairo-1.10.0_3, 1 on FreeBSD 6.3

M Joonas Pihlaja jpihlaja at cc.helsinki.fi
Thu Nov 25 05:01:45 PST 2010


Hi Ben,

On Thu, 25 Nov 2010, ben ward wrote:

>   CC     cairo-bentley-ottmann.lo
> cairo-bentley-ottmann.c: In function `edges_compare_x_for_y_general':
> cairo-bentley-ottmann.c:425: internal compiler error: in expand_mult, at
> expmed.c:2653
> Please submit a full bug report,
> with preprocessed source if appropriate.

This looks like flaky __uint128_t support in gcc 3.4.  Could you try
the patch below to see if it fixes the problem for you?

Joonas

diff --git a/src/cairo-wideint-type-private.h b/src/cairo-wideint-type-private.h
index 4c910ed..2d23d17 100644
--- a/src/cairo-wideint-type-private.h
+++ b/src/cairo-wideint-type-private.h
@@ -121,6 +121,11 @@ typedef struct _cairo_quorem64 {
     cairo_int64_t      rem;
 } cairo_quorem64_t;

+/* Intrinsic __uint128_t support is broken on gcc 3.4/sparc. */
+#if __GNUC__ == 3 && __GNUC_MINOR__ == 4
+#undef HAVE___UINT128_T
+#endif
+
 /* gcc has a non-standard name. */
 #if HAVE___UINT128_T && !HAVE_UINT128_T
 typedef __uint128_t uint128_t;



More information about the cairo mailing list